import 'package:drift/native.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:dmc_app/services/database/app_database.dart'; import 'package:dmc_app/services/database/app_settings_repository.dart'; void main() { late AppDatabase db; late AppSettingsRepository repository; setUp(() { db = AppDatabase.forTesting(NativeDatabase.memory()); repository = AppSettingsRepository(db); }); tearDown(() => db.close()); test('load ohne vorherige Werte liefert beides null', () async { final settings = await repository.load(); expect(settings.activeDroneProfileId, isNull); expect(settings.currentMissionId, isNull); }); test('setActiveDroneProfileId und setCurrentMissionId sind unabhaengig voneinander', () async { await repository.setActiveDroneProfileId(3); await repository.setCurrentMissionId(7); final settings = await repository.load(); expect(settings.activeDroneProfileId, 3); expect(settings.currentMissionId, 7); }); test('erneutes Setzen eines Werts laesst den anderen unangetastet', () async { await repository.setActiveDroneProfileId(1); await repository.setCurrentMissionId(2); await repository.setCurrentMissionId(9); final settings = await repository.load(); expect(settings.activeDroneProfileId, 1); expect(settings.currentMissionId, 9); }); test('Wert kann auf null zurueckgesetzt werden', () async { await repository.setCurrentMissionId(5); await repository.setCurrentMissionId(null); final settings = await repository.load(); expect(settings.currentMissionId, isNull); }); }