Skip to content

Commit

Permalink
fix: observe merge and tests
Browse files Browse the repository at this point in the history
Signed-off-by: Fabrizio Demaria <[email protected]>
  • Loading branch information
fabriziodemaria committed Sep 6, 2024
1 parent 0ed88c5 commit 96f51a7
Show file tree
Hide file tree
Showing 7 changed files with 7 additions and 36 deletions.
5 changes: 2 additions & 3 deletions Sources/OpenFeature/OpenFeatureAPI.swift
Original file line number Diff line number Diff line change
Expand Up @@ -99,10 +99,9 @@ public class OpenFeatureAPI {
public func observe() -> AnyPublisher<ProviderEvent?, Never> {
return providerSubject.map { provider in
if let provider = provider {
let test = provider.observe()
.append(self.eventHandler.observe())
return provider.observe()
.merge(with: self.eventHandler.observe())
.eraseToAnyPublisher()
return test
} else {
return Empty<ProviderEvent?, Never>()
.eraseToAnyPublisher()
Expand Down
2 changes: 0 additions & 2 deletions Sources/OpenFeature/Provider/NoOpProvider.swift
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,9 @@ class NoOpProvider: FeatureProvider {
var hooks: [any Hook] = []

func onContextSet(oldContext: EvaluationContext?, newContext: EvaluationContext) {
eventHandler.send(.ready)
}

func initialize(initialContext: EvaluationContext?) {
eventHandler.send(.ready)
}

func getBooleanEvaluation(key: String, defaultValue: Bool, context: EvaluationContext?) throws
Expand Down
1 change: 0 additions & 1 deletion Tests/OpenFeatureTests/DeveloperExperienceTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@ final class DeveloperExperienceTests: XCTestCase {
let readyExpectation = XCTestExpectation(description: "Ready")
let errorExpectation = XCTestExpectation(description: "Error")
withExtendedLifetime(

OpenFeatureAPI.shared.observe().sink { event in
switch event {
case .ready:
Expand Down
6 changes: 3 additions & 3 deletions Tests/OpenFeatureTests/FlagEvaluationTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ final class FlagEvaluationTests: XCTestCase {
let readyExpectation = XCTestExpectation(description: "Ready")
let errorExpectation = XCTestExpectation(description: "Error")
let staleExpectation = XCTestExpectation(description: "Stale")
let eventState = provider.observe().sink { event in
let eventState = OpenFeatureAPI.shared.observe().sink { event in
switch event {
case .ready:
readyExpectation.fulfill()
Expand Down Expand Up @@ -109,7 +109,7 @@ final class FlagEvaluationTests: XCTestCase {
func testDetailedFlagEvaluation() async {
let provider = DoSomethingProvider()
let readyExpectation = XCTestExpectation(description: "Ready")
let eventState = provider.observe().sink { event in
let eventState = OpenFeatureAPI.shared.observe().sink { event in
switch event {
case .ready:
readyExpectation.fulfill()
Expand Down Expand Up @@ -169,7 +169,7 @@ final class FlagEvaluationTests: XCTestCase {
func testHooksAreFired() async {
let provider = NoOpProvider()
let readyExpectation = XCTestExpectation(description: "Ready")
let eventState = provider.observe().sink { event in
let eventState = OpenFeatureAPI.shared.observe().sink { event in
switch event {
case .ready:
readyExpectation.fulfill()
Expand Down
2 changes: 0 additions & 2 deletions Tests/OpenFeatureTests/Helpers/DoSomethingProvider.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,9 @@ class DoSomethingProvider: FeatureProvider {
private var holdit: AnyCancellable?

func onContextSet(oldContext: OpenFeature.EvaluationContext?, newContext: OpenFeature.EvaluationContext) {
eventHandler.send(.ready)
}

func initialize(initialContext: OpenFeature.EvaluationContext?) {
eventHandler.send(.ready)
}

var hooks: [any OpenFeature.Hook] = []
Expand Down
4 changes: 2 additions & 2 deletions Tests/OpenFeatureTests/HookSpecTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ final class HookSpecTests: XCTestCase {
func testNoErrorHookCalled() {
let provider = NoOpProvider()
let readyExpectation = XCTestExpectation(description: "Ready")
let eventState = provider.observe().sink { event in
let eventState = OpenFeatureAPI.shared.observe().sink { event in
switch event {
case .ready:
readyExpectation.fulfill()
Expand Down Expand Up @@ -76,7 +76,7 @@ final class HookSpecTests: XCTestCase {
BooleanHookMock(prefix: "provider", addEval: addEval)
])
let readyExpectation = XCTestExpectation(description: "Ready")
let eventState = providerMock.observe().sink { event in
let eventState = OpenFeatureAPI.shared.observe().sink { event in
switch event {
case .ready:
readyExpectation.fulfill()
Expand Down
23 changes: 0 additions & 23 deletions Tests/OpenFeatureTests/ProviderEventsTests.swift

This file was deleted.

0 comments on commit 96f51a7

Please sign in to comment.