spotube/test/provider/volume_provider_test.dart

41 lines
1.2 KiB
Dart

import 'package:flutter_test/flutter_test.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:spotube/provider/volume_provider.dart';
import 'package:spotube/services/audio_player/audio_player.dart';
import 'package:spotube/services/kv_store/kv_store.dart';
void main() {
late ProviderContainer container;
late VolumeProvider volumeProvider;
setUp(() {
container = ProviderContainer();
volumeProvider = container.read(volumeProvider.notifier);
});
tearDown(() {
container.dispose();
});
test('initial volume is set from KVStore', () {
expect(container.read(volumeProvider), KVStoreService().volume);
});
test('setVolume updates state and KVStore', () async {
const testVolume = 0.75;
await volumeProvider.setVolume(testVolume);
expect(container.read(volumeProvider), testVolume);
expect(KVStoreService().volume, testVolume);
});
test('setVolume updates audio player', () async {
const testVolume = 0.5;
await volumeProvider.setVolume(testVolume);
// Verify that the audio player's volume was set
// Note: This assumes audioPlayer.setVolume is properly mocked or can be verified
expect(audioPlayer.volume, testVolume);
});
}