test: add fake token storage implementation for testing purposes

This commit is contained in:
Nils-Johan Gynther
2026-04-23 21:25:00 +02:00
parent 2341d05566
commit 111d196403
@@ -2,6 +2,8 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:recipe_flutter/core/api/api_client.dart'; import 'package:recipe_flutter/core/api/api_client.dart';
import 'package:recipe_flutter/core/api/api_exception.dart'; import 'package:recipe_flutter/core/api/api_exception.dart';
import 'package:recipe_flutter/core/platform/platform_providers.dart';
import 'package:recipe_flutter/core/platform/token_storage.dart';
import 'package:recipe_flutter/features/profile/data/profile_repository.dart'; import 'package:recipe_flutter/features/profile/data/profile_repository.dart';
import 'package:recipe_flutter/features/profile/domain/user_profile.dart'; import 'package:recipe_flutter/features/profile/domain/user_profile.dart';
@@ -32,6 +34,20 @@ class _FakeApiClient extends ApiClient {
} }
} }
/// In-memory token storage — no platform channels, no SharedPreferences.
class _FakeTokenStorage implements ITokenStorage {
String? _token;
@override
Future<String?> getToken() async => _token;
@override
Future<void> saveToken(String token) async => _token = token;
@override
Future<void> deleteToken() async => _token = null;
}
void main() { void main() {
late _FakeApiClient fakeClient; late _FakeApiClient fakeClient;
late ProviderContainer container; late ProviderContainer container;
@@ -48,7 +64,10 @@ void main() {
setUp(() { setUp(() {
fakeClient = _FakeApiClient(); fakeClient = _FakeApiClient();
container = ProviderContainer( container = ProviderContainer(
overrides: [apiClientProvider.overrideWithValue(fakeClient)], overrides: [
apiClientProvider.overrideWithValue(fakeClient),
tokenStorageProvider.overrideWithValue(_FakeTokenStorage()),
],
); );
repo = container.read(profileRepositoryProvider); repo = container.read(profileRepositoryProvider);
}); });