From e3029f709b837001ac909032b324dc374cbcae00 Mon Sep 17 00:00:00 2001 From: Fabrizio Demaria Date: Mon, 22 Jan 2024 14:49:39 +0100 Subject: [PATCH] Improve testing on global events Signed-off-by: Fabrizio Demaria --- .../DeveloperExperienceTests.swift | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/Tests/OpenFeatureTests/DeveloperExperienceTests.swift b/Tests/OpenFeatureTests/DeveloperExperienceTests.swift index 07bb017..c510dec 100644 --- a/Tests/OpenFeatureTests/DeveloperExperienceTests.swift +++ b/Tests/OpenFeatureTests/DeveloperExperienceTests.swift @@ -19,11 +19,11 @@ final class DeveloperExperienceTests: XCTestCase { XCTAssertFalse(flagValue) } - func testObserveProviderReady() { + func testObserveGlobalEvents() { let readyExpectation = XCTestExpectation(description: "Ready") let errorExpectation = XCTestExpectation(description: "Error") let staleExpectation = XCTestExpectation(description: "Stale") - let eventState = OpenFeatureAPI.shared.observe().sink { event in + var eventState = OpenFeatureAPI.shared.observe().sink { event in switch event { case ProviderEvent.ready: readyExpectation.fulfill() @@ -35,8 +35,17 @@ final class DeveloperExperienceTests: XCTestCase { XCTFail("Unexpected event") } } - OpenFeatureAPI.shared.setProvider(provider: DoSomethingProvider()) + let provider = DoSomethingProvider() + OpenFeatureAPI.shared.setProvider(provider: provider) wait(for: [readyExpectation], timeout: 5) + + // Clearing the Provider shouldn't send further global events from it + eventState = OpenFeatureAPI.shared.observe().sink { event in + XCTFail("Unexpected event") + } + OpenFeatureAPI.shared.clearProvider() + provider.initialize(initialContext: MutableContext(attributes: ["Test": Value.string("Test")])) + XCTAssertNotNil(eventState) }