feat: compose Android app and verify native calendar and reminders
This commit is contained in:
@@ -9,6 +9,9 @@ import 'package:hepan_everyday/data/json_schedule_import.dart';
|
||||
|
||||
import '../support/fakes.dart';
|
||||
import '../domain/schedule_engine_test.dart' show course;
|
||||
import '../services/calendar_service_test.dart' show CalendarProvider;
|
||||
|
||||
import 'package:hepan_everyday/services/android_calendar_service.dart';
|
||||
|
||||
void main() {
|
||||
setUpAll(tzdata.initializeTimeZones);
|
||||
@@ -35,6 +38,29 @@ void main() {
|
||||
);
|
||||
});
|
||||
tearDown(() => controller.dispose());
|
||||
test('turning off after interrupted first sync cleans events even without saved IDs', () async {
|
||||
store.value = store.value!.copyWith(
|
||||
courses: [
|
||||
course(id: 'a'),
|
||||
course(id: 'b'),
|
||||
],
|
||||
);
|
||||
final provider = CalendarProvider()..failAfterFirst = true;
|
||||
final interrupted = AppController(
|
||||
store,
|
||||
notifications,
|
||||
AndroidCalendarService(provider),
|
||||
controller.clock,
|
||||
);
|
||||
await interrupted.initialize();
|
||||
await interrupted.enableCalendarFromUserAction('local');
|
||||
expect(interrupted.calendarSyncError, isNotNull);
|
||||
expect(provider.records, hasLength(1));
|
||||
provider.failAfterFirst = false;
|
||||
await interrupted.disableCalendar(deleteEvents: true);
|
||||
expect(provider.records, isEmpty);
|
||||
interrupted.dispose();
|
||||
});
|
||||
test(
|
||||
'failed calendar cleanup is retried after reopening while sync is off',
|
||||
() async {
|
||||
|
||||
Reference in New Issue
Block a user