removed unwanted bar

This commit is contained in:
Mark Gregory
2026-11-06 09:51:44 +00:00
parent b1868ee2d3
commit 794fa595d7
7 changed files with 285 additions and 37 deletions
+61
View File
@@ -2622,5 +2622,66 @@ extension KJamsCloneTests {
XCTAssertTrue(report.finished);XCTAssertNil(report.failure)
XCTAssertEqual(report.completed,48);XCTAssertEqual(report.skipped,47)
XCTAssertEqual(report.reportLines.count,48);XCTAssertEqual(system.songs.count,1)
let song = try XCTUnwrap(system.songs.first)
XCTAssertNotNil(try WaveformCache.load(audio:URL(fileURLWithPath:song.audio),directory:root.appendingPathComponent("DJ/Waveforms")))
}
@MainActor func testDJFavouritesPersistIndependentlyAndToggleOff() throws {
let root = FileManager.default.temporaryDirectory.appendingPathComponent(UUID().uuidString)
defer { try? FileManager.default.removeItem(at:root) }
let system = DJSystem(storageURL:root)
system.toggleFavourite(42)
XCTAssertEqual(system.favourites,[42])
let reopened = DJSystem(storageURL:root)
XCTAssertEqual(reopened.favourites,[42])
reopened.toggleFavourite(42)
XCTAssertTrue(reopened.favourites.isEmpty)
XCTAssertTrue(DJSystem(storageURL:root).favourites.isEmpty)
}
@MainActor func testDJAudibleScrubbingPreviewsPausedAudioAndPreservesTransport() async throws {
let root = FileManager.default.temporaryDirectory.appendingPathComponent(UUID().uuidString)
defer { try? FileManager.default.removeItem(at:root) }
let fixture = try XCTUnwrap(Bundle(for:Self.self).resourceURL?.appendingPathComponent("Fixtures/Demo.mp3"))
let player = Player(waveformCacheDirectory:root)
defer { player.stop() }
player.audibleScrubbing = true
try player.load(Song(id:1,title:"Demo",audio:fixture.path,cdg:nil,rating:0,plays:0),startPlaying:false)
player.scrub(to:0.5)
XCTAssertFalse(player.playing)
XCTAssertTrue(player.audioPlaybackStarted,"Paused scrubbing must render an audio grain")
player.scrub(to:0.2)
XCTAssertEqual(player.time,0.2,accuracy:0.001)
player.endScrubbing()
XCTAssertFalse(player.audioPlaybackStarted);XCTAssertFalse(player.playing)
XCTAssertEqual(player.time,0.2,accuracy:0.001)
player.scrub(to:0.4)
try await Task.sleep(nanoseconds:180_000_000)
XCTAssertFalse(player.audioPlaybackStarted,"Preview must stop if dragging stops")
player.toggle()
player.scrub(to:0.6)
XCTAssertTrue(player.playing);XCTAssertTrue(player.audioPlaybackStarted)
player.endScrubbing()
XCTAssertTrue(player.playing,"Releasing a playing deck must keep it playing")
}
@MainActor func testLoadingSecondDJDeckKeepsFirstDeckRendering() async throws {
let root = FileManager.default.temporaryDirectory.appendingPathComponent(UUID().uuidString)
defer { try? FileManager.default.removeItem(at:root) }
let fixture = try XCTUnwrap(Bundle(for:Self.self).resourceURL?.appendingPathComponent("Fixtures/Demo.mp3"))
let system = DJSystem(storageURL:root)
defer { system.a.unload();system.b.unload() }
let song = Song(id:1,title:"Demo",audio:fixture.path,cdg:nil,rating:0,plays:0)
system.load(song,into:"A");system.a.player.toggle()
try await Task.sleep(nanoseconds:100_000_000)
let before = system.a.player.displayTime
for _ in 0..<3 {
system.load(song,into:"B")
XCTAssertTrue(system.a.player.playing);XCTAssertTrue(system.a.player.audioPlaybackStarted)
XCTAssertFalse(system.b.player.playing)
try await Task.sleep(nanoseconds:50_000_000)
}
XCTAssertGreaterThan(system.a.player.displayTime,before)
XCTAssertNil(system.error)
}
}