Fix SwiftData persistence concurrency stability

This commit is contained in:
diyaa
2026-05-29 00:06:57 +02:00
parent e5027152ab
commit ebc187f4a1
19 changed files with 554 additions and 132 deletions
@@ -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)
}
}
}