29 lines
1.1 KiB
Swift
29 lines
1.1 KiB
Swift
import Foundation
|
|
import SourceFake
|
|
import Store
|
|
import Sync
|
|
import Testing
|
|
|
|
@Test func fakeSourceSyncsIntoLibrary() async throws {
|
|
let library = MemoryLibrary()
|
|
let source = FakeSource()
|
|
try await SyncEngine(library: library).sync(source)
|
|
let albums = await library.albums(sortedBy: .title)
|
|
#expect(albums.count == 35)
|
|
#expect(await library.cursor(for: source.id) != nil)
|
|
let first = try #require(albums.first)
|
|
#expect(await library.tracks(inAlbum: first.id).count == first.trackCount)
|
|
#expect(await !library.search("harbor").artists.isEmpty)
|
|
try await SyncEngine(library: library).sync(source)
|
|
#expect(await library.albums(sortedBy: .title).count == 35)
|
|
}
|
|
|
|
@Test func fakeArtworkRenders() async throws {
|
|
let source = FakeSource()
|
|
let library = MemoryLibrary()
|
|
try await SyncEngine(library: library).sync(source)
|
|
let artwork = try #require(await library.albums(sortedBy: .title).first?.artwork)
|
|
let request = try await source.artwork(artwork, pixelSize: 300)
|
|
#expect(try Data(contentsOf: request.url).count > 1000)
|
|
}
|