From c00980277b2f58aaa037320dc1088ba4acfb1803 Mon Sep 17 00:00:00 2001 From: Bartosz Rozwarski Date: Thu, 28 Mar 2024 11:40:44 +0100 Subject: [PATCH] add test --- .../SessionNamespaceBuilderTests.swift | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/Tests/WalletConnectSignTests/SessionNamespaceBuilderTests.swift b/Tests/WalletConnectSignTests/SessionNamespaceBuilderTests.swift index 269732c3b..d441cafb1 100644 --- a/Tests/WalletConnectSignTests/SessionNamespaceBuilderTests.swift +++ b/Tests/WalletConnectSignTests/SessionNamespaceBuilderTests.swift @@ -62,6 +62,34 @@ class SessionNamespaceBuilderTests: XCTestCase { } } + func testBuildSessionNamespaces_ValidOneCacaos_ReturnsExpectedNamespaceWithMultipleAccountsForDifferentAddresses() { + let expectedSessionNamespace = SessionNamespace( + chains: [Blockchain("eip155:1")!, Blockchain("eip155:137")!], + accounts: [ + Account("eip155:1:0x990a10343Bcdebe21283c7172d67a9a113E819X5")!, + Account("eip155:137:0x990a10343Bcdebe21283c7172d67a9a113E819X5")!, + Account("eip155:1:0x000a10343Bcdebe21283c7172d67a9a113E819C5")!, + Account("eip155:137:0x000a10343Bcdebe21283c7172d67a9a113E819C5")! + ], + methods: Set(["personal_sign", "eth_signTypedData", "eth_sign"]), + events: Set(["chainChanged", "accountsChanged"]) + ) + + let cacaos = [ + Cacao.stub(account: Account("eip155:1:0x000a10343Bcdebe21283c7172d67a9a113E819C5")!, resources: [recapUrn]), + Cacao.stub(account: Account("eip155:1:0x990a10343Bcdebe21283c7172d67a9a113E819X5")!, resources: [recapUrn]) + ] + + do { + let namespaces = try sessionNamespaceBuilder.buildSessionNamespaces(cacaos: cacaos) + XCTAssertTrue(namespaces.first!.value.events.isSuperset(of: ["chainChanged", "accountsChanged"]), "Contains required events") + XCTAssertEqual(namespaces.count, 1, "There should be one namespace") + XCTAssertEqual(expectedSessionNamespace, namespaces.first!.value, "The namespace is equal to the expected one") + } catch { + XCTFail("Expected successful namespace creation, but received error: \(error)") + } + } + func testBuildSessionNamespaces_ValidCacaos_ReturnsExpectedNamespace() { let expectedSessionNamespace = SessionNamespace( chains: [Blockchain("eip155:1")!, Blockchain("eip155:137")!],