Fix SwiftData persistence concurrency stability
This commit is contained in:
+26
@@ -0,0 +1,26 @@
|
||||
import Foundation
|
||||
import XCTest
|
||||
@testable import VelodyPlayback
|
||||
|
||||
@MainActor
|
||||
final class AVFoundationPlaybackEngineTests: XCTestCase {
|
||||
func testLoadTrackMissingFileThrowsPlaybackErrorAndLeavesEngineUnloaded() {
|
||||
let engine = AVFoundationPlaybackEngine(fileManager: .default)
|
||||
let fileURL = URL(fileURLWithPath: "/private/tmp/\(UUID().uuidString)-missing.mp3")
|
||||
|
||||
XCTAssertThrowsError(try engine.loadTrack(at: fileURL, startTime: 0)) { error in
|
||||
XCTAssertEqual(
|
||||
error as? PlaybackError,
|
||||
.missingLocalFile(path: fileURL.path)
|
||||
)
|
||||
}
|
||||
|
||||
XCTAssertEqual(engine.currentTime, 0)
|
||||
XCTAssertEqual(engine.duration, 0)
|
||||
XCTAssertFalse(engine.isPlaying)
|
||||
|
||||
XCTAssertThrowsError(try engine.play()) { error in
|
||||
XCTAssertEqual(error as? PlaybackError, .noTrackLoaded)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user