Files
plezy/test/navigation/main_screen_scope_test.dart
T
edde746 6eb0805f8d refactor(profiles): delete dead client accessors, the write-only focus aspect, and test-only registry API
getServerBoundPlexClient/getClientForLibrary existed only for their own unit tests; MetadataEditAdapter.backend and Plex's unreachable prefKey fallback and music-kind branches had no production path (edit is double-gated on supportsKind); MainScreenFocusScope's focus aspect, isSidebarFocused, and focusContent were write-only; resolveActivePlexIdentity.preferredAccount was never passed; ProfileRegistry.get was unused outside tests — its removal exposed a stale test contract, now pinned correctly: list() deliberately never serves plex_home rows.
2026-08-17 19:02:24 +02:00

85 lines
2.1 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:plezy/navigation/main_screen_scope.dart';
void main() {
testWidgets('focusSidebarOf invokes the scope callback', (tester) async {
var focusCalls = 0;
late BuildContext childContext;
await tester.pumpWidget(
MaterialApp(
home: MainScreenFocusScope(
focusSidebar: () => focusCalls++,
sideNavigationWidth: 0,
child: Builder(
builder: (context) {
childContext = context;
return const SizedBox.shrink();
},
),
),
),
);
MainScreenFocusScope.focusSidebarOf(childContext);
expect(focusCalls, 1);
});
testWidgets('focusSidebarOf is a no-op without a scope', (tester) async {
late BuildContext childContext;
await tester.pumpWidget(
MaterialApp(
home: Builder(
builder: (context) {
childContext = context;
return const SizedBox.shrink();
},
),
),
);
expect(() => MainScreenFocusScope.focusSidebarOf(childContext), returnsNormally);
});
testWidgets('focusSidebarOf does not register an inherited dependency', (tester) async {
var sideNavigationWidth = 0.0;
var childBuilds = 0;
var focusCalls = 0;
late StateSetter rebuildScope;
final child = Builder(
builder: (context) {
childBuilds++;
MainScreenFocusScope.focusSidebarOf(context);
return const SizedBox.shrink();
},
);
await tester.pumpWidget(
MaterialApp(
home: StatefulBuilder(
builder: (context, setState) {
rebuildScope = setState;
return MainScreenFocusScope(
focusSidebar: () => focusCalls++,
sideNavigationWidth: sideNavigationWidth,
child: child,
);
},
),
),
);
expect(childBuilds, 1);
expect(focusCalls, 1);
rebuildScope(() => sideNavigationWidth = 100);
await tester.pump();
expect(childBuilds, 1);
expect(focusCalls, 1);
});
}