mirror of
https://github.com/zarzet/SpotiFLAC-Mobile.git
synced 2026-10-20 22:41:38 +02:00
test: share one FixedSettingsNotifier across tests
Replace 16 private SettingsNotifier fakes that only returned a fixed AppSettings with test/support/fixed_settings.dart. Mornye owner WIP tests and bespoke fakes are untouched.
This commit is contained in:
1 parent
77c149eb20
commit
e41e6ec432
18 files changed
+100
-112
No files matched your search
@@ -16,6 +16,7 @@ import 'package:spotiflac_android/providers/settings_provider.dart';
|
||||
import 'package:spotiflac_android/screens/mornye_library_screen.dart';
|
||||
import 'package:spotiflac_android/theme/mornye_theme.dart';
|
||||
|
||||
import '../test/support/fixed_settings.dart';
|
||||
import '../test/support/library_paging_fixture.dart';
|
||||
import 'performance_probe.dart';
|
||||
|
||||
@@ -28,11 +29,6 @@ const _request = (
|
||||
completeness: null,
|
||||
);
|
||||
|
||||
class _Settings extends SettingsNotifier {
|
||||
@override
|
||||
AppSettings build() => const AppSettings(localLibraryEnabled: true);
|
||||
}
|
||||
|
||||
class _History extends DownloadHistoryNotifier {
|
||||
@override
|
||||
DownloadHistoryState build() => DownloadHistoryState();
|
||||
@@ -197,7 +193,11 @@ void main() {
|
||||
child: ProviderScope(
|
||||
key: ValueKey(mountNumber++),
|
||||
overrides: [
|
||||
settingsProvider.overrideWith(_Settings.new),
|
||||
settingsProvider.overrideWith(
|
||||
() => FixedSettingsNotifier(
|
||||
const AppSettings(localLibraryEnabled: true),
|
||||
),
|
||||
),
|
||||
downloadHistoryProvider.overrideWith(_History.new),
|
||||
localLibraryProvider.overrideWith(_Local.new),
|
||||
libraryBrowsePageLoaderProvider.overrideWithValue(readPage),
|
||||
|
||||
@@ -8,11 +8,7 @@ import 'package:spotiflac_android/providers/settings_provider.dart';
|
||||
import 'package:spotiflac_android/screens/settings/metadata_settings_page.dart';
|
||||
import 'package:spotiflac_android/utils/artist_utils.dart';
|
||||
|
||||
/// Skips loading persisted settings; mode changes use the real validation.
|
||||
class _Settings extends SettingsNotifier {
|
||||
@override
|
||||
AppSettings build() => const AppSettings();
|
||||
}
|
||||
import 'support/fixed_settings.dart';
|
||||
|
||||
void main() {
|
||||
setUp(() => SharedPreferences.setMockInitialValues({}));
|
||||
@@ -35,7 +31,7 @@ void main() {
|
||||
tester.view.devicePixelRatio = 1;
|
||||
addTearDown(tester.view.reset);
|
||||
final container = ProviderContainer(
|
||||
overrides: [settingsProvider.overrideWith(_Settings.new)],
|
||||
overrides: [settingsProvider.overrideWith(FixedSettingsNotifier.new)],
|
||||
);
|
||||
addTearDown(container.dispose);
|
||||
await tester.pumpWidget(
|
||||
|
||||
@@ -3,7 +3,6 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:spotiflac_android/l10n/l10n.dart';
|
||||
import 'package:spotiflac_android/models/download_item.dart';
|
||||
import 'package:spotiflac_android/models/settings.dart';
|
||||
import 'package:spotiflac_android/models/track.dart';
|
||||
import 'package:spotiflac_android/providers/download_queue_provider.dart';
|
||||
import 'package:spotiflac_android/providers/library_collections_provider.dart';
|
||||
@@ -18,6 +17,8 @@ import 'package:spotiflac_android/widgets/album_detail_header.dart';
|
||||
import 'package:spotiflac_android/widgets/track_list_tile.dart';
|
||||
import 'package:spotiflac_android/widgets/track_detail_actions.dart';
|
||||
|
||||
import 'support/fixed_settings.dart';
|
||||
|
||||
const _track = Track(
|
||||
id: 'example-track',
|
||||
name: 'Example song',
|
||||
@@ -26,11 +27,6 @@ const _track = Track(
|
||||
duration: 180,
|
||||
);
|
||||
|
||||
class _Settings extends SettingsNotifier {
|
||||
@override
|
||||
AppSettings build() => const AppSettings();
|
||||
}
|
||||
|
||||
class _Collections extends LibraryCollectionsNotifier {
|
||||
var _batchCalls = 0;
|
||||
@override
|
||||
@@ -89,7 +85,7 @@ void main() {
|
||||
final snapshot = Provider<DownloadQueueLookup>((ref) => lookup);
|
||||
final container = ProviderContainer(
|
||||
overrides: [
|
||||
settingsProvider.overrideWith(_Settings.new),
|
||||
settingsProvider.overrideWith(FixedSettingsNotifier.new),
|
||||
libraryCollectionsProvider.overrideWith(_Collections.new),
|
||||
currentMediaItemProvider.overrideWith((ref) => Stream.value(null)),
|
||||
downloadQueueLookupProvider.overrideWith(
|
||||
@@ -204,7 +200,7 @@ void main() {
|
||||
final collections = _Collections();
|
||||
final container = ProviderContainer(
|
||||
overrides: [
|
||||
settingsProvider.overrideWith(_Settings.new),
|
||||
settingsProvider.overrideWith(FixedSettingsNotifier.new),
|
||||
libraryCollectionsProvider.overrideWith(() => collections),
|
||||
recentAccessProvider.overrideWith(_Recent.new),
|
||||
currentMediaItemProvider.overrideWith((ref) => Stream.value(null)),
|
||||
|
||||
@@ -1,17 +1,13 @@
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:spotiflac_android/models/download_item.dart';
|
||||
import 'package:spotiflac_android/models/settings.dart';
|
||||
import 'package:spotiflac_android/models/track.dart';
|
||||
import 'package:spotiflac_android/providers/download_queue_provider.dart';
|
||||
import 'package:spotiflac_android/providers/extension_provider.dart';
|
||||
import 'package:spotiflac_android/providers/settings_provider.dart';
|
||||
import 'package:spotiflac_android/services/source_deletion_events.dart';
|
||||
|
||||
class _Settings extends SettingsNotifier {
|
||||
@override
|
||||
AppSettings build() => const AppSettings();
|
||||
}
|
||||
import 'support/fixed_settings.dart';
|
||||
|
||||
class _Extensions extends ExtensionNotifier {
|
||||
@override
|
||||
@@ -109,7 +105,7 @@ void main() {
|
||||
);
|
||||
final container = ProviderContainer(
|
||||
overrides: [
|
||||
settingsProvider.overrideWith(_Settings.new),
|
||||
settingsProvider.overrideWith(FixedSettingsNotifier.new),
|
||||
downloadQueueProvider.overrideWith(() => _Queue(initial)),
|
||||
],
|
||||
);
|
||||
@@ -145,7 +141,7 @@ void main() {
|
||||
);
|
||||
final container = ProviderContainer(
|
||||
overrides: [
|
||||
settingsProvider.overrideWith(_Settings.new),
|
||||
settingsProvider.overrideWith(FixedSettingsNotifier.new),
|
||||
extensionProvider.overrideWith(_Extensions.new),
|
||||
downloadQueueProvider.overrideWith(
|
||||
() => _Queue(
|
||||
@@ -194,7 +190,7 @@ void main() {
|
||||
final initial = const DownloadQueueState().copyWith(items: [item]);
|
||||
final container = ProviderContainer(
|
||||
overrides: [
|
||||
settingsProvider.overrideWith(_Settings.new),
|
||||
settingsProvider.overrideWith(FixedSettingsNotifier.new),
|
||||
downloadQueueProvider.overrideWith(() => _Queue(initial)),
|
||||
],
|
||||
);
|
||||
|
||||
@@ -4,16 +4,12 @@ import 'package:flutter/services.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:spotiflac_android/models/download_item.dart';
|
||||
import 'package:spotiflac_android/models/settings.dart';
|
||||
import 'package:spotiflac_android/models/track.dart';
|
||||
import 'package:spotiflac_android/providers/download_queue_provider.dart';
|
||||
import 'package:spotiflac_android/providers/extension_provider.dart';
|
||||
import 'package:spotiflac_android/providers/settings_provider.dart';
|
||||
|
||||
class _Settings extends SettingsNotifier {
|
||||
@override
|
||||
AppSettings build() => const AppSettings();
|
||||
}
|
||||
import 'support/fixed_settings.dart';
|
||||
|
||||
class _Queue extends DownloadQueueNotifier {
|
||||
@override
|
||||
@@ -75,7 +71,7 @@ void main() {
|
||||
final container = ProviderContainer(
|
||||
overrides: [
|
||||
downloadQueueProvider.overrideWith(() => queue),
|
||||
settingsProvider.overrideWith(_Settings.new),
|
||||
settingsProvider.overrideWith(FixedSettingsNotifier.new),
|
||||
extensionProvider.overrideWith(() => extensions),
|
||||
],
|
||||
);
|
||||
@@ -120,7 +116,7 @@ void main() {
|
||||
final container = ProviderContainer(
|
||||
overrides: [
|
||||
downloadQueueProvider.overrideWith(() => queue),
|
||||
settingsProvider.overrideWith(_Settings.new),
|
||||
settingsProvider.overrideWith(FixedSettingsNotifier.new),
|
||||
extensionProvider.overrideWith(() => extensions),
|
||||
],
|
||||
);
|
||||
|
||||
@@ -12,6 +12,8 @@ import 'package:spotiflac_android/providers/download_queue_provider.dart';
|
||||
import 'package:spotiflac_android/providers/settings_provider.dart';
|
||||
import 'package:spotiflac_android/services/app_state_database.dart';
|
||||
|
||||
import 'support/fixed_settings.dart';
|
||||
|
||||
const _earlyTrack = Track(
|
||||
id: 'example:early',
|
||||
name: 'Immediate addition',
|
||||
@@ -20,12 +22,6 @@ const _earlyTrack = Track(
|
||||
duration: 180,
|
||||
);
|
||||
|
||||
class _Settings extends SettingsNotifier {
|
||||
@override
|
||||
AppSettings build() =>
|
||||
const AppSettings(downloadDirectory: '/fixture/output');
|
||||
}
|
||||
|
||||
void main() {
|
||||
TestWidgetsFlutterBinding.ensureInitialized();
|
||||
test(
|
||||
@@ -147,7 +143,13 @@ void main() {
|
||||
});
|
||||
addTearDown(() => messenger.setMockMethodCallHandler(sqlite, null));
|
||||
ProviderContainer scope() => ProviderContainer(
|
||||
overrides: [settingsProvider.overrideWith(_Settings.new)],
|
||||
overrides: [
|
||||
settingsProvider.overrideWith(
|
||||
() => FixedSettingsNotifier(
|
||||
const AppSettings(downloadDirectory: '/fixture/output'),
|
||||
),
|
||||
),
|
||||
],
|
||||
);
|
||||
|
||||
final container = scope();
|
||||
|
||||
@@ -13,11 +13,7 @@ import 'package:spotiflac_android/providers/download_queue_provider.dart';
|
||||
import 'package:spotiflac_android/providers/settings_provider.dart';
|
||||
import 'package:spotiflac_android/services/platform_bridge.dart';
|
||||
|
||||
class _Settings extends SettingsNotifier {
|
||||
@override
|
||||
AppSettings build() =>
|
||||
const AppSettings(downloadDirectory: '/fixture/output');
|
||||
}
|
||||
import 'support/fixed_settings.dart';
|
||||
|
||||
class _Queue extends DownloadQueueNotifier {
|
||||
_Queue(this._items);
|
||||
@@ -165,7 +161,11 @@ void main() {
|
||||
];
|
||||
final container = ProviderContainer(
|
||||
overrides: [
|
||||
settingsProvider.overrideWith(_Settings.new),
|
||||
settingsProvider.overrideWith(
|
||||
() => FixedSettingsNotifier(
|
||||
const AppSettings(downloadDirectory: '/fixture/output'),
|
||||
),
|
||||
),
|
||||
downloadQueueProvider.overrideWith(() => _Queue(initial)),
|
||||
],
|
||||
);
|
||||
@@ -249,7 +249,11 @@ void main() {
|
||||
];
|
||||
final container = ProviderContainer(
|
||||
overrides: [
|
||||
settingsProvider.overrideWith(_Settings.new),
|
||||
settingsProvider.overrideWith(
|
||||
() => FixedSettingsNotifier(
|
||||
const AppSettings(downloadDirectory: '/fixture/output'),
|
||||
),
|
||||
),
|
||||
downloadQueueProvider.overrideWith(() => _Queue(initial)),
|
||||
],
|
||||
);
|
||||
@@ -353,7 +357,11 @@ void main() {
|
||||
];
|
||||
final container = ProviderContainer(
|
||||
overrides: [
|
||||
settingsProvider.overrideWith(_Settings.new),
|
||||
settingsProvider.overrideWith(
|
||||
() => FixedSettingsNotifier(
|
||||
const AppSettings(downloadDirectory: '/fixture/output'),
|
||||
),
|
||||
),
|
||||
downloadQueueProvider.overrideWith(() => _Queue(initial)),
|
||||
],
|
||||
);
|
||||
|
||||
@@ -3,12 +3,13 @@ import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:spotiflac_android/l10n/app_localizations.dart';
|
||||
import 'package:spotiflac_android/models/settings.dart';
|
||||
import 'package:spotiflac_android/providers/extension_provider.dart';
|
||||
import 'package:spotiflac_android/providers/settings_provider.dart';
|
||||
import 'package:spotiflac_android/theme/mornye_theme.dart';
|
||||
import 'package:spotiflac_android/widgets/download_service_picker.dart';
|
||||
|
||||
import 'support/fixed_settings.dart';
|
||||
|
||||
class _Extensions extends ExtensionNotifier {
|
||||
_Extensions(
|
||||
this._qualityCount, {
|
||||
@@ -87,11 +88,6 @@ class _Extensions extends ExtensionNotifier {
|
||||
}
|
||||
}
|
||||
|
||||
class _Settings extends SettingsNotifier {
|
||||
@override
|
||||
AppSettings build() => const AppSettings();
|
||||
}
|
||||
|
||||
void main() {
|
||||
for (final (qualityCount, mornye) in [
|
||||
(3, false),
|
||||
@@ -110,7 +106,7 @@ void main() {
|
||||
ProviderScope(
|
||||
overrides: [
|
||||
extensionProvider.overrideWith(() => _Extensions(qualityCount)),
|
||||
settingsProvider.overrideWith(_Settings.new),
|
||||
settingsProvider.overrideWith(FixedSettingsNotifier.new),
|
||||
],
|
||||
child: MaterialApp(
|
||||
theme: mornye
|
||||
@@ -190,7 +186,7 @@ void main() {
|
||||
ProviderScope(
|
||||
overrides: [
|
||||
extensionProvider.overrideWith(() => extensions),
|
||||
settingsProvider.overrideWith(_Settings.new),
|
||||
settingsProvider.overrideWith(FixedSettingsNotifier.new),
|
||||
],
|
||||
child: MaterialApp(
|
||||
theme: MornyeTheme.build(brightness),
|
||||
|
||||
@@ -5,16 +5,12 @@ import 'package:flutter/services.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:spotiflac_android/l10n/app_localizations.dart';
|
||||
import 'package:spotiflac_android/models/settings.dart';
|
||||
import 'package:spotiflac_android/providers/settings_provider.dart';
|
||||
import 'package:spotiflac_android/theme/mornye_theme.dart';
|
||||
import 'package:spotiflac_android/utils/extension_action_forms.dart';
|
||||
import 'package:spotiflac_android/widgets/app_bottom_sheet.dart';
|
||||
|
||||
class _Settings extends SettingsNotifier {
|
||||
@override
|
||||
AppSettings build() => const AppSettings();
|
||||
}
|
||||
import 'support/fixed_settings.dart';
|
||||
|
||||
void main() {
|
||||
const channel = MethodChannel('com.zarz.spotiflac/backend');
|
||||
@@ -30,7 +26,7 @@ void main() {
|
||||
}) {
|
||||
return tester.pumpWidget(
|
||||
ProviderScope(
|
||||
overrides: [settingsProvider.overrideWith(_Settings.new)],
|
||||
overrides: [settingsProvider.overrideWith(FixedSettingsNotifier.new)],
|
||||
child: MaterialApp(
|
||||
theme: mornye ? MornyeTheme.build(Brightness.dark) : ThemeData(),
|
||||
localizationsDelegates: AppLocalizations.localizationsDelegates,
|
||||
|
||||
@@ -2,7 +2,6 @@ import 'package:flutter/material.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:spotiflac_android/l10n/app_localizations.dart';
|
||||
import 'package:spotiflac_android/models/settings.dart';
|
||||
import 'package:spotiflac_android/providers/extension_provider.dart';
|
||||
import 'package:spotiflac_android/providers/settings_provider.dart';
|
||||
import 'package:spotiflac_android/screens/settings/download_fallback_extensions_page.dart';
|
||||
@@ -12,10 +11,7 @@ import 'package:spotiflac_android/screens/settings/provider_priority_page.dart';
|
||||
import 'package:spotiflac_android/theme/mornye_theme.dart';
|
||||
import 'package:spotiflac_android/widgets/settings_group.dart';
|
||||
|
||||
class _Settings extends SettingsNotifier {
|
||||
@override
|
||||
AppSettings build() => const AppSettings();
|
||||
}
|
||||
import 'support/fixed_settings.dart';
|
||||
|
||||
class _Extensions extends ExtensionNotifier {
|
||||
_Extensions(this.extension);
|
||||
@@ -70,7 +66,7 @@ void main() {
|
||||
await tester.pumpWidget(
|
||||
ProviderScope(
|
||||
overrides: [
|
||||
settingsProvider.overrideWith(_Settings.new),
|
||||
settingsProvider.overrideWith(FixedSettingsNotifier.new),
|
||||
extensionProvider.overrideWith(
|
||||
() => _Extensions(
|
||||
extension.copyWith(
|
||||
|
||||
@@ -7,17 +7,13 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'package:spotiflac_android/l10n/app_localizations.dart';
|
||||
import 'package:spotiflac_android/models/settings.dart';
|
||||
import 'package:spotiflac_android/providers/extension_provider.dart';
|
||||
import 'package:spotiflac_android/providers/settings_provider.dart';
|
||||
import 'package:spotiflac_android/screens/settings/extension_detail_page.dart';
|
||||
import 'package:spotiflac_android/theme/mornye_theme.dart';
|
||||
import 'package:spotiflac_android/widgets/settings_group.dart';
|
||||
|
||||
class _Settings extends SettingsNotifier {
|
||||
@override
|
||||
AppSettings build() => const AppSettings();
|
||||
}
|
||||
import 'support/fixed_settings.dart';
|
||||
|
||||
class _Extensions extends ExtensionNotifier {
|
||||
@override
|
||||
@@ -109,7 +105,7 @@ void main() {
|
||||
await tester.pumpWidget(
|
||||
ProviderScope(
|
||||
overrides: [
|
||||
settingsProvider.overrideWith(_Settings.new),
|
||||
settingsProvider.overrideWith(FixedSettingsNotifier.new),
|
||||
extensionProvider.overrideWith(_Extensions.new),
|
||||
],
|
||||
child: MaterialApp(
|
||||
|
||||
@@ -3,12 +3,13 @@ import 'dart:async';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:spotiflac_android/models/settings.dart';
|
||||
import 'package:spotiflac_android/providers/settings_provider.dart';
|
||||
import 'package:spotiflac_android/providers/track_provider.dart';
|
||||
import 'package:spotiflac_android/services/platform_bridge.dart';
|
||||
import 'package:spotiflac_android/utils/extension_auth_launcher.dart';
|
||||
|
||||
import 'support/fixed_settings.dart';
|
||||
|
||||
void main() {
|
||||
TestWidgetsFlutterBinding.ensureInitialized();
|
||||
const channel = MethodChannel('plugins.flutter.io/url_launcher');
|
||||
@@ -114,7 +115,7 @@ void main() {
|
||||
return true;
|
||||
});
|
||||
final container = ProviderContainer(
|
||||
overrides: [settingsProvider.overrideWith(_Settings.new)],
|
||||
overrides: [settingsProvider.overrideWith(FixedSettingsNotifier.new)],
|
||||
);
|
||||
addTearDown(container.dispose);
|
||||
await container
|
||||
@@ -130,8 +131,3 @@ void main() {
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
class _Settings extends SettingsNotifier {
|
||||
@override
|
||||
AppSettings build() => const AppSettings();
|
||||
}
|
||||
@@ -8,14 +8,10 @@ import 'package:spotiflac_android/providers/settings_provider.dart';
|
||||
import 'package:spotiflac_android/services/album_completeness.dart';
|
||||
import 'package:spotiflac_android/services/library_queue_store.dart';
|
||||
|
||||
import 'support/fixed_settings.dart';
|
||||
import 'support/library_paging_fixture.dart';
|
||||
import 'support/sqlite_process_database.dart';
|
||||
|
||||
class _Settings extends SettingsNotifier {
|
||||
@override
|
||||
AppSettings build() => const AppSettings(localLibraryEnabled: true);
|
||||
}
|
||||
|
||||
class _History extends DownloadHistoryNotifier {
|
||||
@override
|
||||
DownloadHistoryState build() => DownloadHistoryState();
|
||||
@@ -102,7 +98,11 @@ void main() {
|
||||
var returned = 0;
|
||||
final container = ProviderContainer(
|
||||
overrides: [
|
||||
settingsProvider.overrideWith(_Settings.new),
|
||||
settingsProvider.overrideWith(
|
||||
() => FixedSettingsNotifier(
|
||||
const AppSettings(localLibraryEnabled: true),
|
||||
),
|
||||
),
|
||||
downloadHistoryProvider.overrideWith(_History.new),
|
||||
localLibraryProvider.overrideWith(_Local.new),
|
||||
libraryBrowsePageLoaderProvider.overrideWithValue((page) async {
|
||||
|
||||
@@ -16,10 +16,7 @@ import 'package:spotiflac_android/theme/mornye_theme.dart';
|
||||
import 'package:spotiflac_android/widgets/app_loading_indicator.dart';
|
||||
import 'package:spotiflac_android/widgets/settings_group.dart';
|
||||
|
||||
class _Settings extends SettingsNotifier {
|
||||
@override
|
||||
AppSettings build() => const AppSettings(localLibraryEnabled: true);
|
||||
}
|
||||
import 'support/fixed_settings.dart';
|
||||
|
||||
class _Library extends LocalLibraryNotifier {
|
||||
_Library(this._initial, this._cleanup);
|
||||
@@ -92,7 +89,11 @@ Future<void> _mount(
|
||||
await tester.pumpWidget(
|
||||
ProviderScope(
|
||||
overrides: [
|
||||
settingsProvider.overrideWith(_Settings.new),
|
||||
settingsProvider.overrideWith(
|
||||
() => FixedSettingsNotifier(
|
||||
const AppSettings(localLibraryEnabled: true),
|
||||
),
|
||||
),
|
||||
localLibraryProvider.overrideWith(() => library),
|
||||
downloadHistoryProvider.overrideWith(() => history),
|
||||
],
|
||||
|
||||
@@ -2,7 +2,6 @@ import 'package:flutter/material.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:spotiflac_android/l10n/l10n.dart';
|
||||
import 'package:spotiflac_android/models/settings.dart';
|
||||
import 'package:spotiflac_android/providers/settings_provider.dart';
|
||||
import 'package:spotiflac_android/providers/weekly_releases_provider.dart';
|
||||
import 'package:spotiflac_android/screens/listening_statistics_screen.dart';
|
||||
@@ -12,10 +11,7 @@ import 'package:spotiflac_android/services/weekly_releases.dart';
|
||||
import 'package:spotiflac_android/theme/mornye_theme.dart';
|
||||
import 'package:spotiflac_android/widgets/player_artwork.dart';
|
||||
|
||||
class _Settings extends SettingsNotifier {
|
||||
@override
|
||||
AppSettings build() => const AppSettings();
|
||||
}
|
||||
import 'support/fixed_settings.dart';
|
||||
|
||||
void main() {
|
||||
for (final mornye in [false, true]) {
|
||||
@@ -32,7 +28,7 @@ void main() {
|
||||
await tester.pumpWidget(
|
||||
ProviderScope(
|
||||
overrides: [
|
||||
settingsProvider.overrideWith(_Settings.new),
|
||||
settingsProvider.overrideWith(FixedSettingsNotifier.new),
|
||||
listeningSummaryProvider.overrideWith((ref, period) async {
|
||||
requested.add(period);
|
||||
return ListeningSummary.fromRows([
|
||||
|
||||
@@ -23,10 +23,7 @@ import 'package:spotiflac_android/widgets/cached_cover_image.dart';
|
||||
import 'package:spotiflac_android/widgets/local_library_artwork_builder.dart';
|
||||
import 'package:spotiflac_android/widgets/mornye_artist_header.dart';
|
||||
|
||||
class _Settings extends SettingsNotifier {
|
||||
@override
|
||||
AppSettings build() => const AppSettings(localLibraryEnabled: false);
|
||||
}
|
||||
import 'support/fixed_settings.dart';
|
||||
|
||||
class _History extends DownloadHistoryNotifier {
|
||||
@override
|
||||
@@ -79,7 +76,13 @@ void main() {
|
||||
});
|
||||
|
||||
Widget app(Widget home, {bool mornye = false}) => ProviderScope(
|
||||
overrides: [settingsProvider.overrideWith(_Settings.new)],
|
||||
overrides: [
|
||||
settingsProvider.overrideWith(
|
||||
() => FixedSettingsNotifier(
|
||||
const AppSettings(localLibraryEnabled: false),
|
||||
),
|
||||
),
|
||||
],
|
||||
child: MaterialApp(
|
||||
theme: mornye ? MornyeTheme.build(Brightness.light) : AppTheme.light(),
|
||||
localizationsDelegates: AppLocalizations.localizationsDelegates,
|
||||
@@ -305,7 +308,11 @@ void main() {
|
||||
await tester.pumpWidget(
|
||||
ProviderScope(
|
||||
overrides: [
|
||||
settingsProvider.overrideWith(_Settings.new),
|
||||
settingsProvider.overrideWith(
|
||||
() => FixedSettingsNotifier(
|
||||
const AppSettings(localLibraryEnabled: false),
|
||||
),
|
||||
),
|
||||
downloadHistoryProvider.overrideWith(_History.new),
|
||||
libraryBrowsePageLoaderProvider.overrideWithValue(
|
||||
(request) async => LibraryBrowsePage([
|
||||
|
||||
@@ -3,17 +3,13 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'package:spotiflac_android/l10n/app_localizations.dart';
|
||||
import 'package:spotiflac_android/models/settings.dart';
|
||||
import 'package:spotiflac_android/providers/settings_provider.dart';
|
||||
import 'package:spotiflac_android/screens/settings/metadata_separator_settings_page.dart';
|
||||
import 'package:spotiflac_android/theme/mornye_theme.dart';
|
||||
import 'package:spotiflac_android/widgets/app_bottom_sheet.dart';
|
||||
import 'package:spotiflac_android/widgets/settings_group.dart';
|
||||
|
||||
class _Settings extends SettingsNotifier {
|
||||
@override
|
||||
AppSettings build() => const AppSettings();
|
||||
}
|
||||
import 'support/fixed_settings.dart';
|
||||
|
||||
void main() {
|
||||
setUp(() => SharedPreferences.setMockInitialValues({}));
|
||||
@@ -26,7 +22,9 @@ void main() {
|
||||
tester.view.devicePixelRatio = 1;
|
||||
addTearDown(tester.view.reset);
|
||||
final container = ProviderContainer(
|
||||
overrides: [settingsProvider.overrideWith(_Settings.new)],
|
||||
overrides: [
|
||||
settingsProvider.overrideWith(FixedSettingsNotifier.new),
|
||||
],
|
||||
);
|
||||
addTearDown(container.dispose);
|
||||
await tester.pumpWidget(
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
import 'package:spotiflac_android/models/settings.dart';
|
||||
import 'package:spotiflac_android/providers/settings_provider.dart';
|
||||
|
||||
/// Skips loading persisted settings and serves [initial] unchanged.
|
||||
class FixedSettingsNotifier extends SettingsNotifier {
|
||||
FixedSettingsNotifier([this.initial = const AppSettings()]);
|
||||
|
||||
final AppSettings initial;
|
||||
|
||||
@override
|
||||
AppSettings build() => initial;
|
||||
}
|
||||
Reference in new issue
Block a user