Files
gart/code/Hex-main/HexTests/HistoryPlaybackTests.swift
T

42 lines
1022 B
Swift
Executable File

import ComposableArchitecture
import Foundation
import XCTest
@testable import Hex
@MainActor
final class HistoryPlaybackTests: XCTestCase {
func testStoppingPlaybackCompletesWaitersExactlyOnce() async {
let controller = AudioPlayerController()
let waiter = Task {
await controller.waitForPlaybackToFinish()
}
await Task.yield()
controller.stop()
controller.stop()
await waiter.value
await controller.waitForPlaybackToFinish()
}
func testStalePlaybackFinishedDoesNotStopCurrentPlayback() async {
let transcriptID = UUID()
let playbackID = UUID()
let store = TestStore(
initialState: HistoryFeature.State(
transcriptionHistory: Shared(value: .init()),
playingTranscriptID: transcriptID,
playbackID: playbackID
)
) {
HistoryFeature()
}
await store.send(.playbackFinished(UUID()))
XCTAssertEqual(store.state.playingTranscriptID, transcriptID)
XCTAssertEqual(store.state.playbackID, playbackID)
}
}