fix: scope hidden libraries to profiles

close #1388
This commit is contained in:
edde746
2026-06-23 00:21:01 +02:00
parent a5e422d284
commit cd1978ee1c
9 changed files with 297 additions and 15 deletions
@@ -88,6 +88,47 @@ void main() {
p.dispose();
});
test('explicit profile id stays isolated when active profile changes', () async {
final storage = await StorageService.getInstance();
await storage.saveHiddenLibrariesForProfile('owner', {'srv:movies'});
await storage.saveHiddenLibrariesForProfile('kids', {'srv:kids'});
await storage.setActiveProfileId('owner');
final ownerProvider = HiddenLibrariesProvider(storageService: storage, profileId: 'owner');
final kidsProvider = HiddenLibrariesProvider(storageService: storage, profileId: 'kids');
await storage.setActiveProfileId('kids');
await ownerProvider.refresh();
await kidsProvider.refresh();
expect(ownerProvider.hiddenLibraryKeys, {'srv:movies'});
expect(kidsProvider.hiddenLibraryKeys, {'srv:kids'});
await ownerProvider.hideLibrary('srv:documentaries');
expect(storage.getHiddenLibrariesForProfile('owner'), {'srv:movies', 'srv:documentaries'});
expect(storage.getHiddenLibrariesForProfile('kids'), {'srv:kids'});
expect(storage.getHiddenLibraries(), {'srv:kids'});
ownerProvider.dispose();
kidsProvider.dispose();
});
test('refresh marks provider initialized after deterministic reload', () async {
final storage = await StorageService.getInstance();
await storage.saveHiddenLibrariesForProfile('owner', {'srv:movies'});
final p = HiddenLibrariesProvider(storageService: storage, profileId: 'owner');
expect(p.isInitialized, isFalse);
await p.refresh();
expect(p.isInitialized, isTrue);
expect(p.hiddenLibraryKeys, {'srv:movies'});
p.dispose();
});
test('hiddenLibraryKeys returns an unmodifiable view', () async {
final p = HiddenLibrariesProvider();
await p.ensureInitialized();