add import export and items
This commit is contained in:
@@ -16,7 +16,6 @@ import 'package:ertl_filament_verwaltung/pages/home_view.dart';
|
||||
import 'package:ertl_filament_verwaltung/services/get_storage_services.dart';
|
||||
import 'package:ertl_filament_verwaltung/theme/app_theme.dart';
|
||||
import 'package:ertl_filament_verwaltung/widgets/filament_card.dart';
|
||||
import 'package:ertl_filament_verwaltung/widgets/entry_panel.dart';
|
||||
import 'package:ertl_filament_verwaltung/widgets/bauteil_card.dart';
|
||||
|
||||
import 'helpers/memory_storage_service.dart';
|
||||
@@ -131,19 +130,84 @@ void main() {
|
||||
tag: 'reload',
|
||||
);
|
||||
expect(reloaded.anwendungen.single.anwendungId, saved.anwendungId);
|
||||
expect(reloaded.druckController.text, '220.5');
|
||||
expect(reloaded.druckbettController.text, '65.0');
|
||||
expect(reloaded.bauraumController.text, '40.0');
|
||||
expect(reloaded.bauraumGeschlossen.value, isTrue);
|
||||
expect(reloaded.sonstigesController.text, 'Luefter 50 %');
|
||||
expect(storage.getModelList(HomeController.storageKey), hasLength(2));
|
||||
|
||||
await tester.scrollUntilVisible(
|
||||
find.byType(SavedEntryCard),
|
||||
200,
|
||||
scrollable: find.byType(Scrollable).first,
|
||||
);
|
||||
await tester.pumpAndSettle();
|
||||
expect(find.text('Bauraum geschlossen: Ja'), findsOneWidget);
|
||||
expect(controller.druckController.text, '220,5');
|
||||
expect(find.text('Gespeicherte Profile'), findsNothing);
|
||||
expect(tester.takeException(), isNull);
|
||||
},
|
||||
);
|
||||
|
||||
testWidgets('Editing replaces the profile and keeps its identity', (
|
||||
tester,
|
||||
) async {
|
||||
final otherProfile = storage
|
||||
.getModelList(AnwendungController.storageKey)
|
||||
.single;
|
||||
final original = profile('profile-a', 'a');
|
||||
storage.tables[AnwendungController.storageKey]!.add(original.toJson());
|
||||
final controller = Get.put(AnwendungController(filamentId: 'a'));
|
||||
await show(tester, const AnwendungView());
|
||||
expect(controller.druckController.text, '210.0');
|
||||
expect(controller.druckbettController.text, '60.0');
|
||||
expect(controller.bauraumController.text, isEmpty);
|
||||
|
||||
controller.druckController.text = '225';
|
||||
controller.sonstigesController.text = 'Aktualisiert';
|
||||
storage.failWrites = true;
|
||||
await controller.saveAnwendung();
|
||||
expect(controller.hasError.value, isTrue);
|
||||
expect(controller.anwendungen.single.druckTemperatur, 210);
|
||||
expect(controller.druckController.text, '225');
|
||||
|
||||
storage.failWrites = false;
|
||||
await controller.saveAnwendung();
|
||||
controller.druckController.text = '230';
|
||||
await controller.saveAnwendung();
|
||||
final stored = storage.getModelList(AnwendungController.storageKey);
|
||||
expect(stored, hasLength(2));
|
||||
expect(stored.first, otherProfile);
|
||||
final updated = AnwendungModel.fromJson(stored.last);
|
||||
expect(updated.anwendungId, original.anwendungId);
|
||||
expect(updated.erstelltAm, original.erstelltAm);
|
||||
expect(updated.druckTemperatur, 230);
|
||||
expect(updated.sonstiges, 'Aktualisiert');
|
||||
expect(controller.anwendungen, hasLength(1));
|
||||
});
|
||||
|
||||
testWidgets('Legacy profiles load the latest and save one per filament', (
|
||||
tester,
|
||||
) async {
|
||||
final latest = AnwendungModel(
|
||||
anwendungId: 'latest-a',
|
||||
filamentId: 'a',
|
||||
erstelltAm: DateTime(2026, 10, 27),
|
||||
druckbettTemperatur: 70,
|
||||
druckTemperatur: 240,
|
||||
bauraumGeschlossen: true,
|
||||
bauraumTemperatur: 45,
|
||||
sonstiges: 'Neuestes Profil',
|
||||
);
|
||||
storage.tables[AnwendungController.storageKey]!.addAll([
|
||||
latest.toJson(),
|
||||
profile('older-a', 'a').toJson(),
|
||||
]);
|
||||
final controller = Get.put(AnwendungController(filamentId: 'a'));
|
||||
await show(tester, const AnwendungView());
|
||||
expect(controller.druckController.text, '240.0');
|
||||
expect(controller.bauraumGeschlossen.value, isTrue);
|
||||
expect(controller.sonstigesController.text, 'Neuestes Profil');
|
||||
await controller.saveAnwendung();
|
||||
final stored = storage.getModelList(AnwendungController.storageKey);
|
||||
expect(stored, hasLength(2));
|
||||
expect(stored.where((item) => item['filamentId'] == 'a'), hasLength(1));
|
||||
expect(stored.last['anwendungId'], 'latest-a');
|
||||
});
|
||||
|
||||
testWidgets('Profile write failure retains input and does not add history', (
|
||||
tester,
|
||||
) async {
|
||||
|
||||
Reference in New Issue
Block a user