import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:lightmeter/generated/l10n.dart'; import 'package:lightmeter/screens/metering/components/bottom_controls/components/measure_button/widget_button_measure.dart'; extension WidgetTesterTextButtonActions on WidgetTester { Future tapSelectButton() => _tapTextButton(S.current.select); Future tapCancelButton() => _tapTextButton(S.current.cancel); Future tapSaveButton() => _tapTextButton(S.current.save); Future _tapTextButton(String text) async { final button = find.byWidgetPredicate( (widget) => widget is TextButton && widget.child is Text && (widget.child as Text?)?.data == text, ); expect(button, findsOneWidget); await tap(button); await pumpAndSettle(); } } extension WidgetTesterCommonActions on WidgetTester { Future toggleIncidentMetering() async { await tap(find.byType(MeteringMeasureButton)); await tap(find.byType(MeteringMeasureButton)); await pumpAndSettle(); } }