refactor artist to use coverArt

fix cover art image caching
This commit is contained in:
austinried
2025-11-09 17:11:35 +09:00
parent 42ff02f88e
commit aaab1d1278
15 changed files with 116 additions and 260 deletions

View File

@@ -1,5 +1,5 @@
import 'package:subtracks/database/database.dart';
import 'package:subtracks/services/sync_services.dart';
import 'package:subtracks/services/sync_service.dart';
import 'package:subtracks/sources/subsonic/source.dart';
import 'package:test/test.dart';

View File

@@ -5,7 +5,7 @@ import 'package:test/test.dart';
import '../util/subsonic.dart';
void main() {
groupByTestServer((client) {
groupByTestServer((server, client) {
late SubsonicSource source;
setUp(() async {
@@ -29,7 +29,7 @@ void main() {
expect(kosmo.created.compareTo(DateTime.now()), lessThan(0));
expect(kosmo.coverArt?.length, greaterThan(0));
expect(kosmo.year, equals(2006));
expect(kosmo.starred, isNull);
expect(kosmo.starred?.compareTo(DateTime.now()), lessThan(0));
expect(kosmo.genre, equals('Electronic'));
final retro = items.firstWhere(
@@ -39,6 +39,9 @@ void main() {
(a) => a.name == "I Don't Know What I'm Doing",
);
expect(retro.starred, isNull);
expect(dunno.starred, isNull);
expect(kosmo.recentRank, equals(0));
expect(kosmo.frequentRank, equals(1));
@@ -53,6 +56,19 @@ void main() {
final items = await source.allArtists().toList();
expect(items.length, equals(2));
final brad = items.firstWhere((a) => a.name == 'Brad Sucks');
expect(brad.id.length, greaterThan(0));
expect(brad.starred, isNull);
if (![Servers.gonic].contains(server)) {
expect(brad.coverArt?.length, greaterThan(0));
}
final ugress = items.firstWhere((a) => a.name == 'Ugress');
expect(ugress.starred?.compareTo(DateTime.now()), lessThan(0));
});
test('allSongs', () async {

View File

@@ -23,12 +23,14 @@ Map<Servers, SubsonicClient> testServerClients() => {
),
};
void groupByTestServer(void Function(SubsonicClient client) callback) {
void groupByTestServer(
void Function(Servers server, SubsonicClient client) callback,
) {
final clients = testServerClients();
for (final MapEntry(key: server, value: client) in clients.entries) {
group(server.name, () {
callback(client);
callback(server, client);
});
}
}