Skip to content

Commit 39c62e6

Browse files
committed
Run flakey test on main serial executor
1 parent eb54940 commit 39c62e6

File tree

1 file changed

+19
-17
lines changed

1 file changed

+19
-17
lines changed

Tests/ComposableArchitectureTests/EffectTests.swift

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -107,30 +107,32 @@ final class EffectTests: XCTestCase {
107107
#if swift(>=5.7) && (canImport(RegexBuilder) || !os(macOS) && !targetEnvironment(macCatalyst))
108108
func testMerge() async {
109109
if #available(iOS 16, macOS 13, tvOS 16, watchOS 9, *) {
110-
let clock = TestClock()
110+
await _withMainSerialExecutor {
111+
let clock = TestClock()
111112

112-
let effect = EffectPublisher<Int, Never>.merge(
113-
(1...3).map { count in
114-
.task {
115-
try await clock.sleep(for: .seconds(count))
116-
return count
113+
let effect = EffectPublisher<Int, Never>.merge(
114+
(1...3).map { count in
115+
.task {
116+
try await clock.sleep(for: .seconds(count))
117+
return count
118+
}
117119
}
118-
}
119-
)
120+
)
120121

121-
var values: [Int] = []
122-
effect.sink(receiveValue: { values.append($0) }).store(in: &self.cancellables)
122+
var values: [Int] = []
123+
effect.sink(receiveValue: { values.append($0) }).store(in: &self.cancellables)
123124

124-
XCTAssertEqual(values, [])
125+
XCTAssertEqual(values, [])
125126

126-
await clock.advance(by: .seconds(1))
127-
XCTAssertEqual(values, [1])
127+
await clock.advance(by: .seconds(1))
128+
XCTAssertEqual(values, [1])
128129

129-
await clock.advance(by: .seconds(1))
130-
XCTAssertEqual(values, [1, 2])
130+
await clock.advance(by: .seconds(1))
131+
XCTAssertEqual(values, [1, 2])
131132

132-
await clock.advance(by: .seconds(1))
133-
XCTAssertEqual(values, [1, 2, 3])
133+
await clock.advance(by: .seconds(1))
134+
XCTAssertEqual(values, [1, 2, 3])
135+
}
134136
}
135137
}
136138
#endif

0 commit comments

Comments
 (0)