mirror of
git://jb55.com/damus
synced 2024-09-30 00:40:45 +00:00
6e0af0ba10
Signed-off-by: Daniel D’Aquino <daniel@daquino.me> Reviewed-by: William Casarin <jb55@jb55.com> Signed-off-by: William Casarin <jb55@jb55.com>
118 lines
3.6 KiB
Swift
118 lines
3.6 KiB
Swift
//
|
|
// NostrScriptTests.swift
|
|
// damusTests
|
|
//
|
|
// Created by William Casarin on 2023-06-02.
|
|
//
|
|
|
|
import XCTest
|
|
@testable import damus
|
|
|
|
final class NostrScriptTests: XCTestCase {
|
|
|
|
override func setUpWithError() throws {
|
|
// Put setup code here. This method is called before the invocation of each test method in the class.
|
|
}
|
|
|
|
override func tearDownWithError() throws {
|
|
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
|
}
|
|
|
|
func read_bundle_file(name: String, ext: String) throws -> Data {
|
|
let bundle = Bundle(for: type(of: self))
|
|
guard let fileURL = bundle.url(forResource: name, withExtension: ext) else {
|
|
throw CocoaError(.fileReadNoSuchFile)
|
|
}
|
|
|
|
return try Data(contentsOf: fileURL)
|
|
}
|
|
|
|
func loadTestWasm() throws -> Data {
|
|
return try read_bundle_file(name: "primal", ext: "wasm")
|
|
}
|
|
|
|
func load_bool_set_test_wasm() throws -> Data {
|
|
return try read_bundle_file(name: "bool_setting", ext: "wasm")
|
|
}
|
|
|
|
func test_bool_set() throws {
|
|
// FIXME: https://github.com/damus-io/damus/issues/1835
|
|
// let data = try load_bool_set_test_wasm().bytes
|
|
// let pool = RelayPool(ndb: .empty)
|
|
// let script = NostrScript(pool: pool, data: data)
|
|
// let pk = Pubkey(hex: "32e1827635450ebb3c5a7d12c1f8e7b2b514439ac10a67eef3d9fd9c5c68e245")!
|
|
// UserSettingsStore.pubkey = pk
|
|
// let key = pk_setting_key(pk, key: "nozaps")
|
|
// UserDefaults.standard.set(true, forKey: key)
|
|
//
|
|
// let load_err = script.load()
|
|
// XCTAssertNil(load_err)
|
|
//
|
|
// let res = script.run()
|
|
// switch res {
|
|
// case .finished:
|
|
// let set = UserDefaults.standard.bool(forKey: key)
|
|
// XCTAssertEqual(set, false)
|
|
// case .runtime_err(let errs):
|
|
// var c = 0
|
|
// for err in errs {
|
|
// print("\(c) test_bool_set runtime err: \(err)")
|
|
// c += 1
|
|
// }
|
|
// XCTAssert(false)
|
|
// case .suspend:
|
|
// XCTAssert(false)
|
|
// break
|
|
// }
|
|
}
|
|
|
|
/*
|
|
func test_nostrscript() throws {
|
|
let data = try loadTestWasm().bytes
|
|
let pool = RelayPool()
|
|
let script = NostrScript(pool: pool, data: data)
|
|
|
|
let load_err = script.load()
|
|
XCTAssertNil(load_err)
|
|
|
|
let res = script.run()
|
|
switch res {
|
|
case .finished: XCTAssert(false)
|
|
case .runtime_err: XCTAssert(false)
|
|
case .suspend:
|
|
XCTAssertEqual(script.waiting_on, .event("sidebar_trending"))
|
|
break
|
|
}
|
|
|
|
let resume_expected = XCTestExpectation(description: "we got ")
|
|
pool.register_handler(sub_id: "sidebar_trending") { (relay_id, conn) in
|
|
if script.runstate?.exited == true {
|
|
pool.disconnect()
|
|
resume_expected.fulfill()
|
|
return
|
|
}
|
|
|
|
guard case .nostr_event(let resp) = conn else {
|
|
return
|
|
}
|
|
|
|
let with: NScriptResumeWith = .event(resp)
|
|
guard let res = script.resume(with: with) else {
|
|
return
|
|
}
|
|
|
|
switch res {
|
|
case .finished: break
|
|
case .runtime_err: XCTAssert(false)
|
|
case .suspend: break
|
|
}
|
|
}
|
|
|
|
pool.connect(to: ["wss://cache0.primal.net/cache17"])
|
|
|
|
self.wait(for: [resume_expected], timeout: 5.0)
|
|
}
|
|
*/
|
|
|
|
}
|