Skip to content

Commit 1904983

Browse files
committed
fix: Update EventEmitterTests with improved formatting and imports
1 parent c4e9341 commit 1904983

File tree

1 file changed

+50
-50
lines changed

1 file changed

+50
-50
lines changed

Tests/AuthTests/EventEmitterTests.swift

Lines changed: 50 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,11 @@ final class EventEmitterTests: XCTestCase {
4545
func testEventEmitterAttachListener() async throws {
4646
// Given: An event emitter and a listener
4747
let emitter = AuthStateChangeEventEmitter()
48-
var receivedEvents: [AuthChangeEvent] = []
48+
let receivedEvents = LockIsolated<[AuthChangeEvent]>([])
4949

5050
// When: Attaching a listener
5151
let token = emitter.attach { event, _ in
52-
receivedEvents.append(event)
52+
receivedEvents.withValue { $0.append(event) }
5353
}
5454

5555
// And: Emitting an event
@@ -60,26 +60,26 @@ final class EventEmitterTests: XCTestCase {
6060
// Note: We need to wait a bit for the async event processing
6161
try await Task.sleep(nanoseconds: 100_000_000) // 0.1 seconds
6262

63-
XCTAssertEqual(receivedEvents.count, 1)
64-
XCTAssertEqual(receivedEvents.first, .signedIn)
63+
XCTAssertEqual(receivedEvents.value.count, 1)
64+
XCTAssertEqual(receivedEvents.value.first, .signedIn)
6565

6666
// Cleanup
67-
token.remove()
67+
token.cancel()
6868
}
6969

7070
func testEventEmitterMultipleListeners() async throws {
7171
// Given: An event emitter and multiple listeners
7272
let emitter = AuthStateChangeEventEmitter()
73-
var listener1Events: [AuthChangeEvent] = []
74-
var listener2Events: [AuthChangeEvent] = []
73+
let listener1Events = LockIsolated<[AuthChangeEvent]>([])
74+
let listener2Events = LockIsolated<[AuthChangeEvent]>([])
7575

7676
// When: Attaching multiple listeners
7777
let token1 = emitter.attach { event, _ in
78-
listener1Events.append(event)
78+
listener1Events.withValue { $0.append(event) }
7979
}
8080

8181
let token2 = emitter.attach { event, _ in
82-
listener2Events.append(event)
82+
listener2Events.withValue { $0.append(event) }
8383
}
8484

8585
// And: Emitting events
@@ -90,24 +90,24 @@ final class EventEmitterTests: XCTestCase {
9090
// Then: Both listeners should receive all events
9191
try await Task.sleep(nanoseconds: 100_000_000) // 0.1 seconds
9292

93-
XCTAssertEqual(listener1Events.count, 2)
94-
XCTAssertEqual(listener2Events.count, 2)
95-
XCTAssertEqual(listener1Events, [.signedIn, .tokenRefreshed])
96-
XCTAssertEqual(listener2Events, [.signedIn, .tokenRefreshed])
93+
XCTAssertEqual(listener1Events.value.count, 2)
94+
XCTAssertEqual(listener2Events.value.count, 2)
95+
XCTAssertEqual(listener1Events.value, [.signedIn, .tokenRefreshed])
96+
XCTAssertEqual(listener2Events.value, [.signedIn, .tokenRefreshed])
9797

9898
// Cleanup
99-
token1.remove()
100-
token2.remove()
99+
token1.cancel()
100+
token2.cancel()
101101
}
102102

103103
func testEventEmitterRemoveListener() async throws {
104104
// Given: An event emitter and a listener
105105
let emitter = AuthStateChangeEventEmitter()
106-
var receivedEvents: [AuthChangeEvent] = []
106+
let receivedEvents = LockIsolated<[AuthChangeEvent]>([])
107107

108108
// When: Attaching a listener
109109
let token = emitter.attach { event, _ in
110-
receivedEvents.append(event)
110+
receivedEvents.withValue { $0.append(event) }
111111
}
112112

113113
// And: Emitting an event
@@ -116,27 +116,27 @@ final class EventEmitterTests: XCTestCase {
116116

117117
// Then: Listener should receive the event
118118
try await Task.sleep(nanoseconds: 100_000_000) // 0.1 seconds
119-
XCTAssertEqual(receivedEvents.count, 1)
119+
XCTAssertEqual(receivedEvents.value.count, 1)
120120

121121
// When: Removing the listener
122-
token.remove()
122+
token.cancel()
123123

124124
// And: Emitting another event
125125
emitter.emit(.signedOut, session: nil)
126126

127127
// Then: Listener should not receive the new event
128128
try await Task.sleep(nanoseconds: 100_000_000) // 0.1 seconds
129-
XCTAssertEqual(receivedEvents.count, 1) // Should still be 1
129+
XCTAssertEqual(receivedEvents.value.count, 1) // Should still be 1
130130
}
131131

132132
func testEventEmitterEmitWithSession() async throws {
133133
// Given: An event emitter and a listener
134134
let emitter = AuthStateChangeEventEmitter()
135-
var receivedSessions: [Session?] = []
135+
let receivedSessions = LockIsolated<[Session?]>([])
136136

137137
// When: Attaching a listener
138138
let token = emitter.attach { _, session in
139-
receivedSessions.append(session)
139+
receivedSessions.withValue { $0.append(session) }
140140
}
141141

142142
// And: Emitting an event with session
@@ -145,43 +145,43 @@ final class EventEmitterTests: XCTestCase {
145145

146146
// Then: Listener should receive the session
147147
try await Task.sleep(nanoseconds: 100_000_000) // 0.1 seconds
148-
XCTAssertEqual(receivedSessions.count, 1)
149-
XCTAssertEqual(receivedSessions.first??.accessToken, session.accessToken)
148+
XCTAssertEqual(receivedSessions.value.count, 1)
149+
XCTAssertEqual(receivedSessions.value.first??.accessToken, session.accessToken)
150150

151151
// Cleanup
152-
token.remove()
152+
token.cancel()
153153
}
154154

155155
func testEventEmitterEmitWithoutSession() async throws {
156156
// Given: An event emitter and a listener
157157
let emitter = AuthStateChangeEventEmitter()
158-
var receivedSessions: [Session?] = []
158+
let receivedSessions = LockIsolated<[Session?]>([])
159159

160160
// When: Attaching a listener
161161
let token = emitter.attach { _, session in
162-
receivedSessions.append(session)
162+
receivedSessions.withValue { $0.append(session) }
163163
}
164164

165165
// And: Emitting an event without session
166166
emitter.emit(.signedOut, session: nil)
167167

168168
// Then: Listener should receive nil session
169169
try await Task.sleep(nanoseconds: 100_000_000) // 0.1 seconds
170-
XCTAssertEqual(receivedSessions.count, 1)
171-
XCTAssertNil(receivedSessions.first)
170+
XCTAssertEqual(receivedSessions.value.count, 1)
171+
XCTAssertNil(receivedSessions.value.first)
172172

173173
// Cleanup
174-
token.remove()
174+
token.cancel()
175175
}
176176

177177
func testEventEmitterEmitWithToken() async throws {
178178
// Given: An event emitter and a listener
179179
let emitter = AuthStateChangeEventEmitter()
180-
var receivedEvents: [AuthChangeEvent] = []
180+
let receivedEvents = LockIsolated<[AuthChangeEvent]>([])
181181

182182
// When: Attaching a listener
183183
let token = emitter.attach { event, _ in
184-
receivedEvents.append(event)
184+
receivedEvents.withValue { $0.append(event) }
185185
}
186186

187187
// And: Emitting an event with specific token
@@ -190,21 +190,21 @@ final class EventEmitterTests: XCTestCase {
190190

191191
// Then: Listener should receive the event
192192
try await Task.sleep(nanoseconds: 100_000_000) // 0.1 seconds
193-
XCTAssertEqual(receivedEvents.count, 1)
194-
XCTAssertEqual(receivedEvents.first, .signedIn)
193+
XCTAssertEqual(receivedEvents.value.count, 1)
194+
XCTAssertEqual(receivedEvents.value.first, .signedIn)
195195

196196
// Cleanup
197-
token.remove()
197+
token.cancel()
198198
}
199199

200200
func testEventEmitterAllAuthChangeEvents() async throws {
201201
// Given: An event emitter and a listener
202202
let emitter = AuthStateChangeEventEmitter()
203-
var receivedEvents: [AuthChangeEvent] = []
203+
let receivedEvents = LockIsolated<[AuthChangeEvent]>([])
204204

205205
// When: Attaching a listener
206206
let token = emitter.attach { event, _ in
207-
receivedEvents.append(event)
207+
receivedEvents.withValue { $0.append(event) }
208208
}
209209

210210
// And: Emitting all possible auth change events
@@ -226,30 +226,30 @@ final class EventEmitterTests: XCTestCase {
226226

227227
// Then: Listener should receive all events
228228
try await Task.sleep(nanoseconds: 100_000_000) // 0.1 seconds
229-
XCTAssertEqual(receivedEvents.count, allEvents.count)
230-
XCTAssertEqual(receivedEvents, allEvents)
229+
XCTAssertEqual(receivedEvents.value.count, allEvents.count)
230+
XCTAssertEqual(receivedEvents.value, allEvents)
231231

232232
// Cleanup
233-
token.remove()
233+
token.cancel()
234234
}
235235

236236
func testEventEmitterConcurrentEmissions() async throws {
237237
// Given: An event emitter and a listener
238238
let emitter = AuthStateChangeEventEmitter()
239-
var receivedEvents: [AuthChangeEvent] = []
239+
let receivedEvents = LockIsolated<[AuthChangeEvent]>([])
240240
let lock = NSLock()
241241

242242
// When: Attaching a listener
243243
let token = emitter.attach { event, _ in
244244
lock.lock()
245-
receivedEvents.append(event)
245+
receivedEvents.withValue { $0.append(event) }
246246
lock.unlock()
247247
}
248248

249249
// And: Emitting events concurrently
250250
let session = Session.validSession
251251
await withTaskGroup(of: Void.self) { group in
252-
for i in 0..<10 {
252+
for _ in 0..<10 {
253253
group.addTask {
254254
emitter.emit(.signedIn, session: session)
255255
}
@@ -258,20 +258,20 @@ final class EventEmitterTests: XCTestCase {
258258

259259
// Then: Listener should receive all events
260260
try await Task.sleep(nanoseconds: 100_000_000) // 0.1 seconds
261-
XCTAssertEqual(receivedEvents.count, 10)
261+
XCTAssertEqual(receivedEvents.value.count, 10)
262262

263263
// Cleanup
264-
token.remove()
264+
token.cancel()
265265
}
266266

267267
func testEventEmitterMemoryManagement() async throws {
268268
// Given: An event emitter and a weak reference to a listener
269269
let emitter = AuthStateChangeEventEmitter()
270-
var receivedEvents: [AuthChangeEvent] = []
270+
let receivedEvents = LockIsolated<[AuthChangeEvent]>([])
271271

272272
// When: Attaching a listener
273273
let token = emitter.attach { event, _ in
274-
receivedEvents.append(event)
274+
receivedEvents.withValue { $0.append(event) }
275275
}
276276

277277
// And: Emitting an event
@@ -280,17 +280,17 @@ final class EventEmitterTests: XCTestCase {
280280

281281
// Then: Listener should receive the event
282282
try await Task.sleep(nanoseconds: 100_000_000) // 0.1 seconds
283-
XCTAssertEqual(receivedEvents.count, 1)
283+
XCTAssertEqual(receivedEvents.value.count, 1)
284284

285285
// When: Removing the token
286-
token.remove()
286+
token.cancel()
287287

288288
// Then: No memory leaks should occur
289289
// (This is more of a manual verification, but we can test that the token is properly removed)
290290
XCTAssertNotNil(token)
291291

292292
// Cleanup
293-
token.remove()
293+
token.cancel()
294294
}
295295

296296
// MARK: - Integration Tests

0 commit comments

Comments
 (0)