Collapse duplicated setup across the suite into six shared helpers under test/test_helpers/ and rewrite the 28 suites that were open-coding it: http_fixtures.dart jsonResponse() for http.Response JSON stubs library_tab_scaffold.dart pumps library tabs under their required ancestors multi_server_fixtures.dart MultiServerProvider wiring for widget tests playback_report_fakes.dart PlaybackReportCall + fake report sinks profile_stack.dart production-shaped profile dependency graph theme.dart testMonoTokens for fast-settling widget tests Net -1245 lines with no change in coverage or assertions.
31 lines
1.3 KiB
Dart
31 lines
1.3 KiB
Dart
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:plezy/media/media_server_client.dart';
|
|
import 'package:plezy/providers/multi_server_provider.dart';
|
|
import 'package:plezy/services/data_aggregation_service.dart';
|
|
import 'package:plezy/services/multi_server_manager.dart';
|
|
|
|
/// Wires [manager] into the provider widget tests read servers from. The caller
|
|
/// owns disposal of the returned provider.
|
|
MultiServerProvider testMultiServerProvider(MultiServerManager manager) {
|
|
return MultiServerProvider(manager, DataAggregationService(manager));
|
|
}
|
|
|
|
/// Registers [clients] on a fresh manager and returns it with its provider,
|
|
/// disposing both when the test ends. Clients also named in [offline] are
|
|
/// registered as unreachable; [clients] fixes the registration order.
|
|
({MultiServerManager manager, MultiServerProvider provider}) testMultiServer({
|
|
List<MediaServerClient> clients = const [],
|
|
List<MediaServerClient> offline = const [],
|
|
}) {
|
|
final manager = MultiServerManager();
|
|
for (final client in clients) {
|
|
manager.debugRegisterClientForTesting(client, online: !offline.contains(client));
|
|
}
|
|
final provider = testMultiServerProvider(manager);
|
|
addTearDown(() {
|
|
provider.dispose();
|
|
manager.dispose();
|
|
});
|
|
return (manager: manager, provider: provider);
|
|
}
|