Skip to content

Commit 5c7fce4

Browse files
test: add multi-key plugin registration test
- Add testPluginRegistrationWithMultipleKeys to verify plugin registration - Test that plugins are registered once per mobile key (primary + secondary) - Verify correct mobile key credentials are passed to each registration - Ensure all client instances and metadata are properly created Co-Authored-By: [email protected] <[email protected]>
1 parent c23c45c commit 5c7fce4

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

LaunchDarkly/LaunchDarklyTests/LDClientPluginsSpec.swift

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,42 @@ final class LDClientPluginsSpec: XCTestCase {
3535
XCTAssertEqual(receivedMetadata?.sdkMetadata.name, ReportingConsts.sdkName)
3636
}
3737

38+
func testPluginRegistrationWithMultipleKeys() {
39+
var registerCallCount = 0
40+
var receivedClients: [LDClient] = []
41+
var receivedMetadata: [EnvironmentMetadata] = []
42+
43+
let mockPlugin = MockPlugin { client, metadata in
44+
registerCallCount += 1
45+
receivedClients.append(client)
46+
receivedMetadata.append(metadata)
47+
}
48+
49+
var config = LDConfig(mobileKey: "primary-mobile-key", autoEnvAttributes: .disabled)
50+
try! config.setSecondaryMobileKeys(["test": "secondary-key-1", "debug": "secondary-key-2"])
51+
config.plugins = [mockPlugin]
52+
53+
var testContext: TestContext!
54+
waitUntil { done in
55+
testContext = TestContext(newConfig: config)
56+
testContext.start(completion: done)
57+
}
58+
59+
XCTAssertEqual(registerCallCount, 3)
60+
61+
XCTAssertEqual(receivedClients.count, 3)
62+
XCTAssertEqual(receivedMetadata.count, 3)
63+
64+
let credentials = receivedMetadata.map { $0.credential }
65+
XCTAssertTrue(credentials.contains("primary-mobile-key"))
66+
XCTAssertTrue(credentials.contains("secondary-key-1"))
67+
XCTAssertTrue(credentials.contains("secondary-key-2"))
68+
69+
for metadata in receivedMetadata {
70+
XCTAssertEqual(metadata.sdkMetadata.name, ReportingConsts.sdkName)
71+
}
72+
}
73+
3874
class MockPlugin: Plugin {
3975
private let registerCallback: (LDClient, EnvironmentMetadata) -> Void
4076

0 commit comments

Comments
 (0)