diff --git a/Snail/Replay.swift b/Snail/Replay.swift index 0f69f0d..5a81995 100644 --- a/Snail/Replay.swift +++ b/Snail/Replay.swift @@ -20,8 +20,10 @@ public class Replay: Observable { } public override func on(_ event: Event) { - events.append(event) - events = Array(events.suffix(threshold)) + if case .next(_) = event { + events.append(event) + events = Array(events.suffix(threshold)) + } super.on(event) } diff --git a/SnailTests/ReplayTests.swift b/SnailTests/ReplayTests.swift index ba10e9c..2d3d752 100644 --- a/SnailTests/ReplayTests.swift +++ b/SnailTests/ReplayTests.swift @@ -33,6 +33,7 @@ class ReplayTests: XCTestCase { var strings: [String] = [] subject?.on(.next("1")) subject?.on(.next("2")) + subject?.on(.done) subject? .subscribe(onNext: { string in strings.append(string) }) XCTAssert(strings[0] == "1")