Files
Melo/test/shared/sort_store_test.dart
dustinandClaude Opus 5 2667613a2e Neue Melo-UI Phase 1: 4 Tabs (Meine Musik/Suche/Favoriten/Download) + Sortierung
- Meine Musik als Startbildschirm ohne Topbar: Kopfzeile (Einstellungen,
  Suche, Musikerkennung), Schnellzugriffe, Shuffle + Sortieren, Liederliste
- Sortierung nach Zuletzt hinzugefuegt / Name (A-Z-#) / Wie oft abgespielt,
  auf- und absteigend, pro Liste gespeichert (SortStore)
- Favoriten als eigener Tab mit gleicher Shuffle-/Sortier-Leiste
- Download-Tab uebernimmt den Navidrome-Server-Browser
- DB-Schema 3: playCount, gezaehlt beim Titelstart
- Theme auf #0B0B10 / #c0392b
- Scan-Aktionen aus der entfallenen Topbar jetzt in den Einstellungen

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011snPXPafPC5i87o68H14W7
2026-08-20 18:00:53 +02:00

52 lines
1.5 KiB
Dart

import 'package:flutter_test/flutter_test.dart';
import 'package:melo/library/song_sort.dart';
import 'package:melo/shared/sort_store.dart';
import 'package:shared_preferences/shared_preferences.dart';
void main() {
setUp(() => SharedPreferences.setMockInitialValues({}));
test('ohne gespeicherte Wahl gilt "Zuletzt hinzugefügt", neueste zuerst',
() async {
final setting = await SortStore.load('meine_musik');
expect(setting.mode, SortMode.dateAdded);
expect(setting.ascending, isFalse);
});
test('gespeicherte Wahl wird zurückgelesen', () async {
await SortStore.save(
'meine_musik',
const SortSetting(SortMode.name, ascending: true),
);
final setting = await SortStore.load('meine_musik');
expect(setting.mode, SortMode.name);
expect(setting.ascending, isTrue);
});
test('Listen speichern getrennt voneinander', () async {
await SortStore.save(
'meine_musik',
const SortSetting(SortMode.playCount, ascending: false),
);
await SortStore.save(
'favoriten',
const SortSetting(SortMode.name, ascending: true),
);
expect((await SortStore.load('meine_musik')).mode, SortMode.playCount);
expect((await SortStore.load('favoriten')).mode, SortMode.name);
});
test('unbrauchbarer gespeicherter Wert fällt auf den Standard zurück',
() async {
SharedPreferences.setMockInitialValues({'sort_meine_musik_mode': 99});
final setting = await SortStore.load('meine_musik');
expect(setting.mode, SortMode.dateAdded);
});
}