@@ -100,24 +100,28 @@ final class DevCycleProviderTests: XCTestCase {
100100 key: " test-bool " , defaultValue: true , context: nil as EvaluationContext ? )
101101 XCTAssertEqual ( boolResult. value, true )
102102 XCTAssertEqual ( boolResult. reason, Reason . defaultReason. rawValue)
103+ XCTAssertEqual ( boolResult. flagMetadata, [ : ] )
103104
104105 // String evaluation
105106 let stringResult = try provider. getStringEvaluation (
106107 key: " test-string " , defaultValue: " default-value " , context: nil as EvaluationContext ? )
107108 XCTAssertEqual ( stringResult. value, " default-value " )
108109 XCTAssertEqual ( stringResult. reason, Reason . defaultReason. rawValue)
110+ XCTAssertEqual ( stringResult. flagMetadata, [ : ] )
109111
110112 // Number evaluation
111113 let numberResult = try provider. getDoubleEvaluation (
112114 key: " test-number " , defaultValue: 42.0 , context: nil as EvaluationContext ? )
113115 XCTAssertEqual ( numberResult. value, 42.0 )
114116 XCTAssertEqual ( numberResult. reason, Reason . defaultReason. rawValue)
117+ XCTAssertEqual ( numberResult. flagMetadata, [ : ] )
115118
116119 // Integer evaluation
117120 let integerResult = try provider. getIntegerEvaluation (
118121 key: " test-integer " , defaultValue: 42 , context: nil as EvaluationContext ? )
119122 XCTAssertEqual ( integerResult. value, 42 )
120123 XCTAssertEqual ( integerResult. reason, Reason . defaultReason. rawValue)
124+ XCTAssertEqual ( integerResult. flagMetadata, [ : ] )
121125 }
122126
123127 // MARK: - Object Evaluation Tests
@@ -139,6 +143,7 @@ final class DevCycleProviderTests: XCTestCase {
139143 key: " test-object " , defaultValue: defaultValue, context: nil as EvaluationContext ? )
140144
141145 XCTAssertEqual ( result. reason, Reason . defaultReason. rawValue)
146+ XCTAssertEqual ( result. flagMetadata, [ : ] )
142147
143148 if case . structure( let attributes) = result. value {
144149 XCTAssertEqual ( attributes [ " name " ] , . string( " John " ) )
@@ -173,7 +178,8 @@ final class DevCycleProviderTests: XCTestCase {
173178 )
174179
175180 XCTAssertEqual ( result. reason, Reason . defaultReason. rawValue)
176-
181+ XCTAssertEqual ( result. flagMetadata, [ : ] )
182+
177183 if case . structure( let attributes) = result. value {
178184 XCTAssertEqual ( attributes [ " string " ] , . string( " text " ) )
179185 XCTAssertEqual ( attributes [ " boolean " ] , . boolean( true ) )
@@ -1001,34 +1007,39 @@ final class DevCycleProviderTests: XCTestCase {
10011007 key: " json-flag-list " , defaultValue: listDefault, context: nil )
10021008 XCTAssertEqual ( listResult. value, . structure( [ : ] ) )
10031009 XCTAssertEqual ( listResult. reason, " TARGETING_MATCH " )
1010+ XCTAssertEqual ( listResult. flagMetadata, [ " evalDetails " : FlagMetadataValue . of ( " OpenFeature Testing " ) ] )
10041011
10051012 // .double
10061013 let doubleDefault = Value . double ( 610 )
10071014 let doubleResult = try provider. getObjectEvaluation (
10081015 key: " json-flag-double " , defaultValue: doubleDefault, context: nil )
10091016 XCTAssertEqual ( doubleResult. value, . structure( [ : ] ) )
10101017 XCTAssertEqual ( doubleResult. reason, " TARGETING_MATCH " )
1018+ XCTAssertEqual ( doubleResult. flagMetadata, [ " evalDetails " : FlagMetadataValue . of ( " OpenFeature Testing " ) ] )
10111019
10121020 // .boolean
10131021 let boolDefault = Value . boolean ( false )
10141022 let boolResult = try provider. getObjectEvaluation (
10151023 key: " json-flag-bool " , defaultValue: boolDefault, context: nil )
10161024 XCTAssertEqual ( boolResult. value, . structure( [ : ] ) )
10171025 XCTAssertEqual ( boolResult. reason, " TARGETING_MATCH " )
1026+ XCTAssertEqual ( boolResult. flagMetadata, [ " evalDetails " : FlagMetadataValue . of ( " OpenFeature Testing " ) ] )
10181027
10191028 // .string
10201029 let stringDefault = Value . string ( " string " )
10211030 let stringResult = try provider. getObjectEvaluation (
10221031 key: " json-flag-string " , defaultValue: stringDefault, context: nil )
10231032 XCTAssertEqual ( stringResult. value, . structure( [ : ] ) )
10241033 XCTAssertEqual ( stringResult. reason, " TARGETING_MATCH " )
1034+ XCTAssertEqual ( stringResult. flagMetadata, [ " evalDetails " : FlagMetadataValue . of ( " OpenFeature Testing " ) ] )
10251035
10261036 // .null
10271037 let nullDefault = Value . null
10281038 let nullResult = try provider. getObjectEvaluation (
10291039 key: " json-flag-null " , defaultValue: nullDefault, context: nil )
10301040 XCTAssertEqual ( nullResult. value, . structure( [ : ] ) )
10311041 XCTAssertEqual ( nullResult. reason, " TARGETING_MATCH " )
1042+ XCTAssertEqual ( stringResult. flagMetadata, [ " evalDetails " : FlagMetadataValue . of ( " OpenFeature Testing " ) ] )
10321043
10331044 // .date
10341045 let date = Date ( )
@@ -1037,6 +1048,7 @@ final class DevCycleProviderTests: XCTestCase {
10371048 key: " json-flag-date " , defaultValue: dateDefault, context: nil )
10381049 XCTAssertEqual ( dateResult. value, . structure( [ : ] ) )
10391050 XCTAssertEqual ( dateResult. reason, " TARGETING_MATCH " )
1051+ XCTAssertEqual ( stringResult. flagMetadata, [ " evalDetails " : FlagMetadataValue . of ( " OpenFeature Testing " ) ] )
10401052 }
10411053
10421054 func testGetObjectEvaluationWithStructureValueIsAccepted( ) throws {
@@ -1047,5 +1059,6 @@ final class DevCycleProviderTests: XCTestCase {
10471059 key: " json-flag-structure " , defaultValue: structureDefault, context: nil )
10481060 XCTAssertEqual ( structureResult. value, structureDefault)
10491061 XCTAssertEqual ( structureResult. reason, " TARGETING_MATCH " )
1062+ XCTAssertEqual ( structureResult. flagMetadata, [ " evalDetails " : FlagMetadataValue . of ( " OpenFeature Testing " ) ] )
10501063 }
10511064}
0 commit comments