Skip to content

Commit adee881

Browse files
refactor: cleanup and consolidate struct tests
1 parent bbad09a commit adee881

File tree

3 files changed

+311
-798
lines changed

3 files changed

+311
-798
lines changed

Tests/ConfidenceProviderTests/ConfidenceProviderTest.swift

Lines changed: 6 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ class ConfidenceProviderTest: XCTestCase {
199199
}
200200
}
201201

202-
func testProviderThrowsParseErrorOnObjectEval() async throws {
202+
func testProviderTypeMismatch() async throws {
203203
let context = MutableContext(targetingKey: "t")
204204
let storage = StorageMock()
205205

@@ -227,47 +227,11 @@ class ConfidenceProviderTest: XCTestCase {
227227
XCTAssertEqual(specificError.errorCode(), ErrorCode.typeMismatch)
228228
XCTAssertEqual(specificError.description, "Type mismatch")
229229
} else {
230-
XCTFail("expected a flag not found error")
230+
XCTFail("expected a Type mismatch error")
231231
}
232232
}
233233
}
234234

235-
func testProviderObjectEval() async throws {
236-
let context = MutableContext(targetingKey: "t")
237-
let storage = StorageMock()
238-
239-
let resolvedValue = createResolvedValue(
240-
variant: "variant1",
241-
structure: ["int": .init(integer: 42)],
242-
flag: "flagName"
243-
)
244-
let client = createFakeClient(resolvedValues: [resolvedValue])
245-
246-
let confidence = Confidence.Builder(clientSecret: "test")
247-
.withContext(initialContext: ["targeting_key": .init(string: "t")])
248-
.withFlagResolverClient(flagResolver: client)
249-
.withStorage(storage: storage)
250-
.build()
251-
252-
let cancellable = await setupProviderAndWaitForReady(confidence: confidence)
253-
cancellable.cancel()
254-
255-
let provider = ConfidenceFeatureProvider(confidence: confidence, initializationStrategy: .fetchAndActivate)
256-
let evaluation = try provider.getObjectEvaluation(
257-
key: "flagName",
258-
defaultValue: Value.structure(["int": .integer(3)]),
259-
context: context)
260-
261-
guard case let .structure(resultMap) = evaluation.value else {
262-
XCTFail("Expected structure value")
263-
return
264-
}
265-
266-
XCTAssertEqual(resultMap["int"], .integer(42))
267-
XCTAssertEqual(evaluation.variant, "variant1")
268-
XCTAssertEqual(evaluation.reason, "RESOLVE_REASON_MATCH")
269-
}
270-
271235
func testProviderResolveStruct() async throws {
272236
let context = MutableContext(targetingKey: "user2")
273237
let storage = StorageMock()
@@ -452,15 +416,14 @@ class ConfidenceProviderTest: XCTestCase {
452416
XCTAssertEqual(evaluation.reason, "RESOLVE_REASON_MATCH")
453417
}
454418

455-
func testProviderResolveStructHeterogenousExtraValueInFlag() async throws {
419+
func testProviderResolveStructNullFields() async throws {
456420
let context = MutableContext(targetingKey: "user2")
457421
let storage = StorageMock()
458422

459423
let resolvedValue = createResolvedValue(
460424
structure: [
461425
"width": .init(integer: 200),
462-
"color": .init(string: "yellow"),
463-
"error": .init(string: "Unknown")
426+
"color": .init(null: ())
464427
]
465428
)
466429
let client = createFakeClient(resolvedValues: [resolvedValue])
@@ -486,13 +449,12 @@ class ConfidenceProviderTest: XCTestCase {
486449
}
487450

488451
XCTAssertEqual(resultMap["width"], .integer(200))
489-
XCTAssertEqual(resultMap["color"], .string("yellow"))
490-
XCTAssertNil(resultMap["error"])
452+
XCTAssertEqual(resultMap["color"], .string("black"))
491453
XCTAssertEqual(evaluation.variant, "control")
492454
XCTAssertEqual(evaluation.reason, "RESOLVE_REASON_MATCH")
493455
}
494456

495-
func testProviderResolveStructHeterogenousExtraValueInDefaultValue() async throws {
457+
func testProviderResolveStructExtraDefaultValue() async throws {
496458
let context = MutableContext(targetingKey: "user2")
497459
let storage = StorageMock()
498460

@@ -655,7 +617,6 @@ class ConfidenceProviderTest: XCTestCase {
655617
XCTAssertEqual(nestedStruct["nestedString"], .string("nested value"))
656618
XCTAssertEqual(nestedStruct["nestedInteger"], .integer(100))
657619
XCTAssertEqual(nestedStruct["nestedBoolean"], .boolean(false))
658-
659620
XCTAssertEqual(evaluation.variant, "control")
660621
XCTAssertEqual(evaluation.reason, "RESOLVE_REASON_MATCH")
661622
XCTAssertNil(evaluation.errorCode)

0 commit comments

Comments
 (0)