@@ -14,7 +14,7 @@ final class TodosTests: XCTestCase {
14
14
reducer: appReducer,
15
15
environment: AppEnvironment (
16
16
mainQueue: self . mainQueue,
17
- uuid: { UUID . incrementing ( ) }
17
+ uuid: UUID . incrementing
18
18
)
19
19
)
20
20
@@ -28,6 +28,21 @@ final class TodosTests: XCTestCase {
28
28
at: 0
29
29
)
30
30
}
31
+
32
+ await store. send ( . addTodoButtonTapped) {
33
+ $0. todos = [
34
+ TodoState (
35
+ description: " " ,
36
+ id: UUID ( uuidString: " 00000000-0000-0000-0000-000000000001 " ) !,
37
+ isComplete: false
38
+ ) ,
39
+ TodoState (
40
+ description: " " ,
41
+ id: UUID ( uuidString: " 00000000-0000-0000-0000-000000000000 " ) !,
42
+ isComplete: false
43
+ )
44
+ ]
45
+ }
31
46
}
32
47
33
48
func testEditTodo( ) async {
@@ -45,7 +60,7 @@ final class TodosTests: XCTestCase {
45
60
reducer: appReducer,
46
61
environment: AppEnvironment (
47
62
mainQueue: self . mainQueue,
48
- uuid: { UUID . incrementing ( ) }
63
+ uuid: UUID . incrementing
49
64
)
50
65
)
51
66
@@ -76,7 +91,7 @@ final class TodosTests: XCTestCase {
76
91
reducer: appReducer,
77
92
environment: AppEnvironment (
78
93
mainQueue: self . mainQueue,
79
- uuid: { UUID . incrementing ( ) }
94
+ uuid: UUID . incrementing
80
95
)
81
96
)
82
97
@@ -112,7 +127,7 @@ final class TodosTests: XCTestCase {
112
127
reducer: appReducer,
113
128
environment: AppEnvironment (
114
129
mainQueue: self . mainQueue,
115
- uuid: { UUID . incrementing ( ) }
130
+ uuid: UUID . incrementing
116
131
)
117
132
)
118
133
@@ -147,7 +162,7 @@ final class TodosTests: XCTestCase {
147
162
reducer: appReducer,
148
163
environment: AppEnvironment (
149
164
mainQueue: self . mainQueue,
150
- uuid: { UUID . incrementing ( ) }
165
+ uuid: UUID . incrementing
151
166
)
152
167
)
153
168
@@ -183,7 +198,7 @@ final class TodosTests: XCTestCase {
183
198
reducer: appReducer,
184
199
environment: AppEnvironment (
185
200
mainQueue: self . mainQueue,
186
- uuid: { UUID . incrementing ( ) }
201
+ uuid: UUID . incrementing
187
202
)
188
203
)
189
204
@@ -220,7 +235,7 @@ final class TodosTests: XCTestCase {
220
235
reducer: appReducer,
221
236
environment: AppEnvironment (
222
237
mainQueue: self . mainQueue,
223
- uuid: { UUID . incrementing ( ) }
238
+ uuid: UUID . incrementing
224
239
)
225
240
)
226
241
@@ -268,7 +283,7 @@ final class TodosTests: XCTestCase {
268
283
reducer: appReducer,
269
284
environment: AppEnvironment (
270
285
mainQueue: self . mainQueue,
271
- uuid: { UUID . incrementing ( ) }
286
+ uuid: UUID . incrementing
272
287
)
273
288
)
274
289
@@ -310,7 +325,7 @@ final class TodosTests: XCTestCase {
310
325
reducer: appReducer,
311
326
environment: AppEnvironment (
312
327
mainQueue: self . mainQueue,
313
- uuid: { UUID . incrementing ( ) }
328
+ uuid: UUID . incrementing
314
329
)
315
330
)
316
331
@@ -325,11 +340,15 @@ final class TodosTests: XCTestCase {
325
340
326
341
extension UUID {
327
342
// A deterministic, auto-incrementing "UUID" generator for testing.
328
- static var incrementing : ( ) -> UUID {
329
- var uuid = 0
343
+ static var incrementing : @Sendable ( ) -> UUID {
344
+ class UncheckedCount : @unchecked Sendable {
345
+ var value = 0
346
+ func increment( ) { self . value += 1 }
347
+ }
348
+ let count = UncheckedCount ( )
330
349
return {
331
- defer { uuid += 1 }
332
- return UUID ( uuidString: " 00000000-0000-0000-0000- \( String ( format: " %012x " , uuid ) ) " ) !
350
+ defer { count . increment ( ) }
351
+ return UUID ( uuidString: " 00000000-0000-0000-0000- \( String ( format: " %012x " , count . value ) ) " ) !
333
352
}
334
353
}
335
354
}
0 commit comments