74 lines
2.5 KiB
Dart
74 lines
2.5 KiB
Dart
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:relationship_saver/features/local/local_repository.dart';
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
|
|
void main() {
|
|
setUp(() {
|
|
SharedPreferences.setMockInitialValues(<String, Object>{});
|
|
});
|
|
|
|
test('seeds local data on first load', () async {
|
|
final ProviderContainer container = ProviderContainer();
|
|
addTearDown(container.dispose);
|
|
|
|
final state = await container.read(localRepositoryProvider.future);
|
|
|
|
expect(state.people, isNotEmpty);
|
|
expect(state.moments, isNotEmpty);
|
|
expect(state.tasks, isNotEmpty);
|
|
});
|
|
|
|
test('adds and removes person with persistence state update', () async {
|
|
final ProviderContainer container = ProviderContainer();
|
|
addTearDown(container.dispose);
|
|
|
|
final initial = await container.read(localRepositoryProvider.future);
|
|
final int initialCount = initial.people.length;
|
|
|
|
await container
|
|
.read(localRepositoryProvider.notifier)
|
|
.addPerson(
|
|
name: 'Test Person',
|
|
relationship: 'Friend',
|
|
notes: 'test',
|
|
tags: <String>['alpha'],
|
|
);
|
|
|
|
final afterAdd = await container.read(localRepositoryProvider.future);
|
|
expect(afterAdd.people.length, initialCount + 1);
|
|
|
|
final String insertedId = afterAdd.people.first.id;
|
|
await container
|
|
.read(localRepositoryProvider.notifier)
|
|
.deletePerson(insertedId);
|
|
|
|
final afterDelete = await container.read(localRepositoryProvider.future);
|
|
expect(afterDelete.people.length, initialCount);
|
|
});
|
|
|
|
test('adds and removes capture moments', () async {
|
|
final ProviderContainer container = ProviderContainer();
|
|
addTearDown(container.dispose);
|
|
|
|
final state = await container.read(localRepositoryProvider.future);
|
|
final String personId = state.people.first.id;
|
|
final int beforeCount = state.moments.length;
|
|
|
|
await container
|
|
.read(localRepositoryProvider.notifier)
|
|
.addMoment(personId: personId, summary: 'This is a new capture moment');
|
|
|
|
final withMoment = await container.read(localRepositoryProvider.future);
|
|
expect(withMoment.moments.length, beforeCount + 1);
|
|
|
|
final String momentId = withMoment.moments.first.id;
|
|
await container
|
|
.read(localRepositoryProvider.notifier)
|
|
.deleteMoment(momentId);
|
|
|
|
final afterDelete = await container.read(localRepositoryProvider.future);
|
|
expect(afterDelete.moments.length, beforeCount);
|
|
});
|
|
}
|