Skip to content

Commit cbea4b5

Browse files
(fix): Event batch fix (#204)
* fix a bug found while looking at jae PR * fix resetting event batch size
1 parent 7357941 commit cbea4b5

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

OptimizelySDK/Customization/DefaultEventDispatcher.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ open class DefaultEventDispatcher : BackgroundingCallbacks, OPTEventDispatcher {
118118
// if the bacth size is not equal to the actual event size,
119119
// then setup the batchSizeHolder to be the size of the event.
120120
if actualEventsSize != self.batchSize {
121-
batchSizeHolder = actualEventsSize
121+
batchSizeHolder = self.batchSize
122122
self.batchSize = actualEventsSize
123123
sendCount = actualEventsSize - 1
124124
}
@@ -170,7 +170,7 @@ open class DefaultEventDispatcher : BackgroundingCallbacks, OPTEventDispatcher {
170170
if batchSizeHolder != 0 {
171171
sendCount += 1
172172
// have we sent all the events in this batch?
173-
if sendCount == batchSizeHolder {
173+
if sendCount == self.batchSize {
174174
resetBatch()
175175
}
176176
}

OptimizelySDK/OptimizelyTests/OptimizelyTests-Common/EventDispatcherTests_Batch.swift

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,8 @@ extension EventDispatcherTests_Batch {
110110
// this tests timer-based dispatch, available for iOS 10+
111111
guard #available(iOS 10.0, tvOS 10.0, *) else { return }
112112

113+
XCTAssert(eventDispatcher.batchSize == 10)
114+
113115
eventDispatcher.dispatchEvent(event: makeEventForDispatch(url: kUrlA, event: batchEventA), completionHandler: nil)
114116
eventDispatcher.dispatchEvent(event: makeEventForDispatch(url: kUrlA, event: batchEventB), completionHandler: nil)
115117
eventDispatcher.dispatchEvent(event: makeEventForDispatch(url: kUrlA, event: batchEventA), completionHandler: nil)
@@ -133,12 +135,19 @@ extension EventDispatcherTests_Batch {
133135
XCTAssertEqual(batchedEvents.visitors[2], visitorA)
134136
XCTAssertEqual(batchedEvents.visitors.count, 3)
135137
XCTAssertEqual(eventDispatcher.dataStore.count, 0)
138+
139+
XCTAssert(eventDispatcher.batchSize == 10)
140+
141+
136142
}
137143

138144
func testFlushEventsWhenBatchFails() {
139145
// this tests timer-based dispatch, available for iOS 10+
140146
guard #available(iOS 10.0, tvOS 10.0, *) else { return }
141147

148+
XCTAssert(eventDispatcher.batchSize == 10)
149+
150+
142151
eventDispatcher.dispatchEvent(event: makeEventForDispatch(url: kUrlA, event: batchEventA), completionHandler: nil)
143152
eventDispatcher.dispatchEvent(event: makeEventForDispatch(url: kUrlA, event: batchEventA), completionHandler: nil)
144153
eventDispatcher.dispatchEvent(event: makeEventForDispatch(url: kUrlB, event: batchEventB), completionHandler: nil)
@@ -191,6 +200,8 @@ extension EventDispatcherTests_Batch {
191200
XCTAssertEqual(batchedEvents.visitors.count, 1)
192201

193202
XCTAssertEqual(eventDispatcher.dataStore.count, 0)
203+
204+
XCTAssert(eventDispatcher.batchSize == 10)
194205
}
195206

196207
func testFlushEventsWhenSendEventFails() {

0 commit comments

Comments
 (0)