RequestTests.swift (3471B)
1 // 2 // RequestTests.swift 3 // damusTests 4 // 5 // Created by Bryan Montz on 2/17/23. 6 // 7 8 import XCTest 9 @testable import damus 10 11 final class RequestTests: XCTestCase { 12 13 func testMakeUnsubscribeRequest() { 14 let request = NostrRequest.unsubscribe("64FD064D-EB9E-4771-8255-8D16981B920B") 15 let result = make_nostr_req(request) 16 let expectedResult = "[\"CLOSE\",\"64FD064D-EB9E-4771-8255-8D16981B920B\"]" 17 XCTAssertEqual(result, expectedResult) 18 } 19 20 func testMakeAuthRequest() { 21 let challenge_string = "8bc847dd-f2f6-4b3a-9c8a-71776ad9b071" 22 let url = RelayURL("wss://example.com")! 23 let relayDescriptor = RelayPool.RelayDescriptor(url: url, info: .readWrite) 24 let relayConnection = RelayConnection(url: url) { _ in 25 } processUnverifiedWSEvent: { _ in 26 } 27 28 let relay = RelayPool.Relay(descriptor: relayDescriptor, connection: relayConnection) 29 let event = make_auth_request(keypair: FullKeypair.init(pubkey: Pubkey.empty, privkey: Privkey.empty), challenge_string: challenge_string, relay: relay)! 30 31 let result = make_nostr_auth_event(ev: event) 32 let json = try! JSONSerialization.jsonObject(with: result!.data(using: .utf8)!, options: []) as! [Any] 33 34 XCTAssertEqual(json[0] as! String, "AUTH") 35 let dictionary = json[1] as! [String: Any] 36 XCTAssertEqual(dictionary["content"] as! String, "") 37 XCTAssertEqual(dictionary["kind"] as! Int, 22242) 38 XCTAssertEqual(dictionary["sig"] as! String, String(repeating: "0", count: 128)) 39 XCTAssertEqual(dictionary["pubkey"] as! String, String(repeating: "0", count: 64)) 40 let tags = dictionary["tags"] as! [[String]] 41 XCTAssertEqual(tags.first { $0[0] == "relay" }![1], "wss://example.com") 42 XCTAssertEqual(tags.first { $0[0] == "challenge" }![1], challenge_string) 43 XCTAssertEqual(dictionary["id"] as! String, String(repeating: "0", count: 64)) 44 } 45 46 /* FIXME: these tests depend on order of json fields which is undefined 47 func testMakePushEvent() { 48 let now = Int64(Date().timeIntervalSince1970) 49 let event = NostrEvent(id: "59c1cf11a3e9e128c6fd5402f41e8ae0c0c7fbab570203d7410518be68c3115f", 50 content: "Testing", 51 pubkey: "d9fa34214aa9d151c4f4db843e9c2af4f246bab4205137731f91bcfa44d66a62", 52 kind: 1, 53 createdAt: now) 54 let result = make_nostr_req(.event(event)) 55 let expectedResult = "[\"EVENT\",{\"pubkey\":\"d9fa34214aa9d151c4f4db843e9c2af4f246bab4205137731f91bcfa44d66a62\",\"content\":\"Testing\",\"id\":\"59c1cf11a3e9e128c6fd5402f41e8ae0c0c7fbab570203d7410518be68c3115f\",\"created_at\":\(now),\"sig\":\"\",\"kind\":1,\"tags\":[]}]" 56 XCTAssertEqual(result, expectedResult) 57 } 58 59 func testMakeSubscriptionRequest() { 60 let filter = NostrFilter(kinds: [.contacts], limit: 1, authors: ["d9fa34214aa9d151c4f4db843e9c2af4f246bab4205137731f91bcfa44d66a62"]) 61 let subscribe = NostrSubscribe(filters: [filter], sub_id: "31C737B7-C8F9-41DD-8707-325974F279A4") 62 let result = make_nostr_req(.subscribe(subscribe)) 63 let expectedResult = "[\"REQ\",\"31C737B7-C8F9-41DD-8707-325974F279A4\",{\"kinds\":[3],\"authors\":[\"d9fa34214aa9d151c4f4db843e9c2af4f246bab4205137731f91bcfa44d66a62\"],\"limit\":1}]" 64 XCTAssertEqual(result, expectedResult) 65 } 66 */ 67 }