Merge pull request #1789 from JackDanger/fix/plex-home-account-chip
fix(profiles): label a Plex Home parent connection as an account Conflict resolution: regenerated the Slang outputs against main's translation set, added the empty locale placeholders the translation gate requires, and gave the new widget test the StorageService provider the picker now reads for profile recency.
This commit is contained in:
@@ -368,6 +368,71 @@ void main() {
|
||||
await tester.pumpWidget(const SizedBox.shrink());
|
||||
await tester.pump();
|
||||
});
|
||||
|
||||
testWidgets('labels a Plex Home parent connection as an account, not as the profile', (tester) async {
|
||||
final db = AppDatabase.forTesting(NativeDatabase.memory());
|
||||
final profile = Profile.plexHome(
|
||||
id: 'home-alice',
|
||||
displayName: 'Alice',
|
||||
parentConnectionId: 'plex-account',
|
||||
plexHomeUserUuid: 'alice-uuid',
|
||||
createdAt: DateTime(2026, 1, 1),
|
||||
);
|
||||
final profiles = _FakeProfileRegistry(db, [profile]);
|
||||
final connections = _FakeConnectionRegistry(db, [
|
||||
PlexAccountConnection(
|
||||
id: 'plex-account',
|
||||
accountToken: 'token',
|
||||
clientIdentifier: 'client',
|
||||
accountLabel: 'Bob',
|
||||
createdAt: DateTime(2026, 1, 1),
|
||||
),
|
||||
]);
|
||||
final profileConnections = _FakeProfileConnectionRegistry(db);
|
||||
final storage = await StorageService.getInstance();
|
||||
final plexHome = PlexHomeService(
|
||||
connections: connections,
|
||||
profileConnections: profileConnections,
|
||||
storage: storage,
|
||||
plexHomeUserFetcher: (_) async => const [],
|
||||
);
|
||||
final activeProfile = ActiveProfileProvider(
|
||||
registry: profiles,
|
||||
plexHome: plexHome,
|
||||
connections: connections,
|
||||
profileConnections: profileConnections,
|
||||
storage: storage,
|
||||
);
|
||||
addTearDown(() async {
|
||||
activeProfile.dispose();
|
||||
await plexHome.dispose();
|
||||
await db.close();
|
||||
});
|
||||
|
||||
await tester.pumpWidget(
|
||||
TranslationProvider(
|
||||
child: MultiProvider(
|
||||
providers: [
|
||||
Provider<StorageService>.value(value: storage),
|
||||
Provider<ProfileRegistry>.value(value: profiles),
|
||||
Provider<ProfileConnectionRegistry>.value(value: profileConnections),
|
||||
Provider<ConnectionRegistry>.value(value: connections),
|
||||
Provider<PlexHomeService>.value(value: plexHome),
|
||||
ChangeNotifierProvider<ActiveProfileProvider>.value(value: activeProfile),
|
||||
],
|
||||
child: MaterialApp(theme: monoTheme(dark: true), home: const ProfileSwitchScreen()),
|
||||
),
|
||||
),
|
||||
);
|
||||
await tester.pumpAndSettle();
|
||||
|
||||
expect(find.text('Alice'), findsOneWidget);
|
||||
expect(find.text(t.profiles.viaPlexAccount(name: 'Bob')), findsOneWidget);
|
||||
expect(find.text('Bob'), findsNothing);
|
||||
|
||||
await tester.pumpWidget(const SizedBox.shrink());
|
||||
await tester.pump();
|
||||
});
|
||||
}
|
||||
|
||||
/// Tile labels in painted order. Only the two names the reorder tests seed are
|
||||
|
||||
Reference in New Issue
Block a user