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
+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',
() {