51 lines
2.0 KiB
Dart
51 lines
2.0 KiB
Dart
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:jinzhi_flutter_app/common/storage/preferences_storage.dart';
|
|
import 'package:jinzhi_flutter_app/features/assets/data/mock_asset_repository.dart';
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
|
|
void main() {
|
|
setUp(() => SharedPreferences.setMockInitialValues({}));
|
|
|
|
test('account deletion stays empty after repository recreation', () async {
|
|
final preferences = PreferencesStorage(
|
|
await SharedPreferences.getInstance(),
|
|
);
|
|
final repository = MockAssetRepository(preferences);
|
|
final accountScope = MockAssetRepository.accountScope(userId: 'user-1');
|
|
final initial = repository.loadHoldings(accountScope);
|
|
expect(initial, isNotEmpty);
|
|
expect(
|
|
repository.loadHoldings(MockAssetRepository.guestAccountScope),
|
|
isNotEmpty,
|
|
);
|
|
await repository.saveHoldings(accountScope, initial);
|
|
|
|
await repository.deleteAccountHoldings(accountScope);
|
|
final recreated = MockAssetRepository(preferences);
|
|
|
|
expect(recreated.loadHoldings(accountScope), isEmpty);
|
|
expect(
|
|
recreated.loadHoldings(MockAssetRepository.guestAccountScope),
|
|
isEmpty,
|
|
);
|
|
});
|
|
|
|
test('holdings are isolated by account and deletion is scoped', () async {
|
|
final preferences = PreferencesStorage(
|
|
await SharedPreferences.getInstance(),
|
|
);
|
|
final repository = MockAssetRepository(preferences);
|
|
final first = MockAssetRepository.accountScope(userId: 'user-1');
|
|
final second = MockAssetRepository.accountScope(userId: 'user-2');
|
|
final firstHoldings = repository.loadHoldings(first);
|
|
final secondHoldings = repository.loadHoldings(second);
|
|
await repository.saveHoldings(first, firstHoldings.take(1).toList());
|
|
await repository.saveHoldings(second, secondHoldings.take(2).toList());
|
|
|
|
await repository.deleteAccountHoldings(first);
|
|
|
|
expect(repository.loadHoldings(first), isEmpty);
|
|
expect(repository.loadHoldings(second), hasLength(2));
|
|
});
|
|
}
|