add some props an features

This commit is contained in:
atseirjo
2026-10-28 14:07:40 +01:00
parent 77fbe16867
commit c876405a8f
7 changed files with 231 additions and 96 deletions
+6
View File
@@ -107,6 +107,8 @@ void main() {
final controller = Get.put(AnwendungController(filamentId: 'a'));
await show(tester, const AnwendungView(), narrow: true);
controller.druckController.text = '220,5';
controller.empfohleneDrucktemperaturController.text = '220–260 °C';
controller.empfohlenerHeizbettbereichController.text = '0–60 °C';
controller.druckbettController.text = '65';
controller.bauraumController.text = '40';
controller.bauraumGeschlossen.value = true;
@@ -120,6 +122,8 @@ void main() {
expect(saved.anwendungId, matches(uuidPattern));
expect(saved.filamentId, 'a');
expect(saved.druckTemperatur, 220.5);
expect(saved.empfohleneDrucktemperatur, '220–260 °C');
expect(saved.empfohlenerHeizbettbereich, '0–60 °C');
expect(saved.druckbettTemperatur, 65);
expect(saved.bauraumGeschlossen, isTrue);
expect(saved.bauraumTemperatur, 40);
@@ -131,6 +135,8 @@ void main() {
);
expect(reloaded.anwendungen.single.anwendungId, saved.anwendungId);
expect(reloaded.druckController.text, '220.5');
expect(reloaded.empfohleneDrucktemperaturController.text, '220–260 °C');
expect(reloaded.empfohlenerHeizbettbereichController.text, '0–60 °C');
expect(reloaded.druckbettController.text, '65.0');
expect(reloaded.bauraumController.text, '40.0');
expect(reloaded.bauraumGeschlossen.value, isTrue);
+48
View File
@@ -16,6 +16,7 @@ import 'package:ertl_filament_verwaltung/services/bauteil_photo_service.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/bauteil_card.dart';
import 'package:ertl_filament_verwaltung/widgets/bauteil_filament_auswahl.dart';
import 'package:ertl_filament_verwaltung/widgets/bauteil_photo.dart';
import 'helpers/memory_storage_service.dart';
@@ -123,6 +124,53 @@ void main() {
home.filamente.firstWhere((item) => item.filamentId == id),
)!;
testWidgets('Dropdown adds only selected filaments and supports removal', (
tester,
) async {
await tester.pumpWidget(
GetMaterialApp(
theme: AppTheme.light,
home: Scaffold(
body: SingleChildScrollView(
child: BauteilFilamentAuswahl(controller: controller),
),
),
),
);
expect(find.byKey(const ValueKey('filament-a')), findsNothing);
expect(find.byKey(const ValueKey('filament-b')), findsNothing);
Future<void> add(String id) async {
await tester.tap(find.byType(DropdownButtonFormField<String>));
await tester.pumpAndSettle();
await tester.tap(find.text(controller.filamentLabel(id)).last);
await tester.pumpAndSettle();
}
await add('a');
controller.verbrauchController('a').text = '25';
expect(find.byKey(const ValueKey('filament-a')), findsOneWidget);
expect(find.byKey(const ValueKey('filament-b')), findsNothing);
expect(controller.selectedFilamente.keys, ['a']);
await add('b');
expect(find.byType(DropdownButtonFormField<String>), findsNothing);
expect(find.byKey(const ValueKey('filament-b')), findsOneWidget);
await tester.tap(find.byTooltip('Filament entfernen').first);
await tester.pumpAndSettle();
expect(find.byKey(const ValueKey('filament-a')), findsNothing);
expect(controller.selectedFilamente.keys, ['b']);
await add('a');
expect(controller.verbrauchController('a').text, '25');
controller.resetForm();
await tester.pumpAndSettle();
expect(find.byKey(const ValueKey('filament-a')), findsNothing);
expect(find.byKey(const ValueKey('filament-b')), findsNothing);
expect(find.byType(DropdownButtonFormField<String>), findsOneWidget);
expect(tester.takeException(), isNull);
});
test(
'Legacy records retain unknown usage and old weight units are supported',
() {