Fix artwork upload pipeline

This commit is contained in:
diyaa
2026-05-31 01:20:56 +02:00
parent 7b1952794c
commit 18ed79e3c4
24 changed files with 1652 additions and 56 deletions
@@ -91,6 +91,42 @@ final class LocalCatalogServiceTests: XCTestCase {
XCTAssertEqual(storedTracks.first?.sha256, "sha-updated")
}
func testScanPersistsEmbeddedArtworkReferenceWithoutStoringArtworkBytesInSwiftData() async throws {
let repository = try SwiftDataTrackRepository(isStoredInMemoryOnly: true)
let service = DefaultLocalCatalogService(repository: repository)
let modifiedAt = Date(timeIntervalSince1970: 2_500)
let artwork = LocalTrackArtwork(
localFilePath: "/Application Support/Velody/local-artwork/artwork-sha.png",
sha256: "artwork-sha",
mimeType: "image/png",
width: 512,
height: 512
)
let result = try await service.reconcileScanResults(
[
ScannedLocalTrack(
title: "Art Track",
artist: "Artist",
album: "Album",
durationSeconds: 180,
localFilePath: "/Music/ArtTrack.mp3",
sha256: "sha-art-track",
artwork: artwork,
fileModifiedAt: modifiedAt
),
],
in: URL(fileURLWithPath: "/Music"),
scannedAt: Date(timeIntervalSince1970: 2_600)
)
let storedTrack = try XCTUnwrap(result.tracks.first)
XCTAssertEqual(storedTrack.artwork, artwork)
let reloadedTrack = try await repository.findTrack(trackID: storedTrack.id)
XCTAssertEqual(reloadedTrack?.artwork, artwork)
}
func testRescanMarksDeletedTracksAndReactivatesExistingSHA() async throws {
let repository = try SwiftDataTrackRepository(isStoredInMemoryOnly: true)
let service = DefaultLocalCatalogService(repository: repository)