Skip to content

Commit 075cacd

Browse files
[FSSDK-11465] fix: add exp id and variation id only for flag decision payload (#596)
1 parent 55d698e commit 075cacd

File tree

3 files changed

+7
-34
lines changed

3 files changed

+7
-34
lines changed

Sources/Implementation/DecisionInfo.swift

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -140,17 +140,12 @@ struct DecisionInfo {
140140
decisionInfo[Constants.DecisionInfoKeys.variationKey] = variation?.key ?? NSNull() // keep key in the map even with nil value
141141
decisionInfo[Constants.DecisionInfoKeys.ruleKey] = ruleKey ?? NSNull() //
142142
decisionInfo[Constants.DecisionInfoKeys.reasons] = reasons
143+
decisionInfo[Constants.DecisionInfoKeys.decisionEventDispatched] = decisionEventDispatched
144+
decisionInfo[Constants.ExperimentDecisionInfoKeys.experimentId] = experiment?.id ?? NSNull()
145+
decisionInfo[Constants.ExperimentDecisionInfoKeys.variationId] = variation?.id ?? NSNull()
143146
}
144147

145-
decisionInfo[Constants.DecisionInfoKeys.decisionEventDispatched] = decisionEventDispatched
146148

147-
if let expId = experiment?.id {
148-
decisionInfo[Constants.ExperimentDecisionInfoKeys.experimentId] = expId
149-
}
150-
151-
if let varId = variation?.id {
152-
decisionInfo[Constants.ExperimentDecisionInfoKeys.variationId] = varId
153-
}
154149
return decisionInfo
155150
}
156151

Tests/OptimizelyTests-Common/DecisionListenerTests.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -891,6 +891,8 @@ extension DecisionListenerTests {
891891

892892
XCTAssertEqual(decisionInfo[Constants.DecisionInfoKeys.variationKey] as! String, "a") //exp = "exp_with_audience"
893893
XCTAssertEqual(decisionInfo[Constants.DecisionInfoKeys.ruleKey] as! String, "exp_with_audience")
894+
XCTAssertEqual(decisionInfo[Constants.ExperimentDecisionInfoKeys.experimentId] as! String, "10390977673") //exp = "exp_with_audience"
895+
XCTAssertEqual(decisionInfo[Constants.ExperimentDecisionInfoKeys.variationId] as! String, "10389729780")
894896
XCTAssertNotNil(decisionInfo[Constants.DecisionInfoKeys.reasons])
895897
XCTAssertEqual(decisionInfo[Constants.DecisionInfoKeys.decisionEventDispatched] as! Bool, true)
896898
exp.fulfill()
@@ -925,6 +927,8 @@ extension DecisionListenerTests {
925927

926928
XCTAssertEqual(decisionInfo[Constants.DecisionInfoKeys.variationKey] as! String, "a") //exp = "exp_with_audience"
927929
XCTAssertEqual(decisionInfo[Constants.DecisionInfoKeys.ruleKey] as! String, "exp_with_audience")
930+
XCTAssertEqual(decisionInfo[Constants.ExperimentDecisionInfoKeys.experimentId] as! String, "10390977673") //exp = "exp_with_audience"
931+
XCTAssertEqual(decisionInfo[Constants.ExperimentDecisionInfoKeys.variationId] as! String, "10389729780")
928932
XCTAssertNotNil(decisionInfo[Constants.DecisionInfoKeys.reasons])
929933
XCTAssertEqual(decisionInfo[Constants.DecisionInfoKeys.decisionEventDispatched] as! Bool, true)
930934
exp.fulfill()

Tests/OptimizelyTests-Common/DecisionListenerTests_Datafile.swift

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -37,16 +37,12 @@ class DecisionListenerTests_Datafile: XCTestCase {
3737
var notificationVariation: String?
3838
var notificationExperiment: String?
3939
var notificationType: String?
40-
var expId: String?
41-
var varId: String?
4240

4341
let exp = expectation(description: "x")
4442

4543
_ = notificationCenter.addDecisionNotificationListener(decisionListener: { (type, _, _, decisionInfo) in
4644
notificationExperiment = decisionInfo[Constants.ExperimentDecisionInfoKeys.experiment] as? String
4745
notificationVariation = decisionInfo[Constants.ExperimentDecisionInfoKeys.variation] as? String
48-
expId = decisionInfo[Constants.ExperimentDecisionInfoKeys.experimentId] as? String
49-
varId = decisionInfo[Constants.ExperimentDecisionInfoKeys.variationId] as? String
5046
notificationType = type
5147
exp.fulfill()
5248
})
@@ -60,27 +56,19 @@ class DecisionListenerTests_Datafile: XCTestCase {
6056
XCTAssertEqual(variation, "all_traffic_variation")
6157
XCTAssertEqual(notificationExperiment, "ab_running_exp_audience_combo_empty_conditions")
6258
XCTAssertEqual(notificationVariation, "all_traffic_variation")
63-
XCTAssertEqual(expId, "10390977723")
64-
XCTAssertEqual(varId, "10416523170")
6559
XCTAssertEqual(notificationType, Constants.DecisionType.abTest.rawValue)
6660
}
6761

6862
func testDecisionListenerWithActivateWhenUserNotInExperiment() {
6963
var notificationVariation: String?
7064
var notificationExperiment: String?
7165
var notificationType: String?
72-
var expId: String?
73-
var varId: String?
7466

7567
let exp = expectation(description: "x")
7668

7769
_ = notificationCenter.addDecisionNotificationListener(decisionListener: { (type, _, _, decisionInfo) in
7870
notificationExperiment = decisionInfo[Constants.ExperimentDecisionInfoKeys.experiment] as? String
7971
notificationVariation = decisionInfo[Constants.ExperimentDecisionInfoKeys.variation] as? String
80-
expId = decisionInfo[Constants.ExperimentDecisionInfoKeys.experimentId] as? String
81-
varId = decisionInfo[Constants.ExperimentDecisionInfoKeys.variationId] as? String
82-
expId = decisionInfo[Constants.ExperimentDecisionInfoKeys.experimentId] as? String
83-
varId = decisionInfo[Constants.ExperimentDecisionInfoKeys.variationId] as? String
8472
notificationType = type
8573
exp.fulfill()
8674
})
@@ -93,8 +81,6 @@ class DecisionListenerTests_Datafile: XCTestCase {
9381

9482
XCTAssertEqual(notificationExperiment, "ab_running_exp_audience_combo_exact_foo_or_true__and__42_or_4_2")
9583
XCTAssertEqual(notificationVariation, nil)
96-
XCTAssertEqual(expId, "10390977714")
97-
XCTAssertEqual(varId, nil)
9884
XCTAssertEqual(notificationType, Constants.DecisionType.abTest.rawValue)
9985
notificationCenter.clearAllNotificationListeners()
10086
}
@@ -107,16 +93,12 @@ class DecisionListenerTests_Datafile: XCTestCase {
10793
var notificationVariation: String?
10894
var notificationExperiment: String?
10995
var notificationType: String?
110-
var expId: String?
111-
var varId: String?
11296

11397
let exp = expectation(description: "x")
11498

11599
_ = notificationCenter.addDecisionNotificationListener(decisionListener: { (type, _, _, decisionInfo) in
116100
notificationExperiment = decisionInfo[Constants.ExperimentDecisionInfoKeys.experiment] as? String
117101
notificationVariation = decisionInfo[Constants.ExperimentDecisionInfoKeys.variation] as? String
118-
expId = decisionInfo[Constants.ExperimentDecisionInfoKeys.experimentId] as? String
119-
varId = decisionInfo[Constants.ExperimentDecisionInfoKeys.variationId] as? String
120102
notificationType = type
121103
exp.fulfill()
122104
})
@@ -129,24 +111,18 @@ class DecisionListenerTests_Datafile: XCTestCase {
129111
XCTAssertEqual(notificationExperiment, "ab_running_exp_audience_combo_empty_conditions")
130112
XCTAssertEqual(notificationVariation, "all_traffic_variation")
131113
XCTAssertEqual(notificationType, Constants.DecisionType.abTest.rawValue)
132-
XCTAssertEqual(expId, "10390977723")
133-
XCTAssertEqual(varId, "10416523170")
134114
notificationCenter.clearAllNotificationListeners()
135115
}
136116

137117
func testDecisionListenerWithGetVariationWhenUserNotInExperiment() {
138118
var notificationVariation: String?
139119
var notificationExperiment: String?
140120
var notificationType: String?
141-
var expId: String?
142-
var varId: String?
143121
let exp = expectation(description: "x")
144122

145123
_ = notificationCenter.addDecisionNotificationListener(decisionListener: { (type, _, _, decisionInfo) in
146124
notificationExperiment = decisionInfo[Constants.ExperimentDecisionInfoKeys.experiment] as? String
147125
notificationVariation = decisionInfo[Constants.ExperimentDecisionInfoKeys.variation] as? String
148-
expId = decisionInfo[Constants.ExperimentDecisionInfoKeys.experimentId] as? String
149-
varId = decisionInfo[Constants.ExperimentDecisionInfoKeys.variationId] as? String
150126
notificationType = type
151127
exp.fulfill()
152128
})
@@ -156,8 +132,6 @@ class DecisionListenerTests_Datafile: XCTestCase {
156132

157133
XCTAssertEqual(notificationExperiment, "ab_running_exp_audience_combo_exact_foo_or_true__and__42_or_4_2")
158134
XCTAssertEqual(notificationVariation, nil)
159-
XCTAssertEqual(expId, "10390977714")
160-
XCTAssertEqual(varId, nil)
161135
XCTAssertEqual(notificationType, Constants.DecisionType.abTest.rawValue)
162136
notificationCenter.clearAllNotificationListeners()
163137
}

0 commit comments

Comments
 (0)