testDeviceComponent function
void
testDeviceComponent(
{ - required String name,
- required List<Component> scenarios,
- String? groupName,
- Future<TestGesture?> gestureBuilder(
- WidgetTester tester
)?,
- List<Device>? devices,
- Size surfaceSize = const Size(800, 740),
- Key? touchKey,
- Widget wrap(
- Widget child
)?,
- bool? autoHeight = true,
- double? textScaleSize,
- Iterable<LocalizationsDelegate>? localizationsDelegates,
- Iterable<Locale>? supportedLocales,
- WildnessProperties? config,
- TextStyle? defaultTextStyle,
- Color? primaryColor,
})
Implementation
@isTest
void testDeviceComponent({
required String name,
required List<Component> scenarios,
String? groupName,
Future<TestGesture?> Function(WidgetTester tester)? gestureBuilder,
List<Device>? devices,
Size surfaceSize = const Size(800, 740),
Key? touchKey,
Widget Function(Widget child)? wrap,
bool? autoHeight = true,
double? textScaleSize,
Iterable<LocalizationsDelegate<dynamic>>? localizationsDelegates,
Iterable<Locale>? supportedLocales,
WildnessProperties? config,
TextStyle? defaultTextStyle,
Color? primaryColor,
}) {
testGoldens(name, (WidgetTester tester) async {
final builder = DeviceBuilder(wrap: wrap);
if (devices != null) {
builder.overrideDevicesForAllScenarios(devices: devices);
}
for (var scenario in scenarios) {
builder.addScenario(
name: scenario.name,
widget: scenario.widget,
);
}
await tester.pumpDeviceAndMatch(
groupTitle: 'components/${(groupName ?? name).toLowerCase()}',
builder: builder,
autoHeight: true,
config: config,
defaultTextStyle: defaultTextStyle,
localizationsDelegates: localizationsDelegates,
primaryColor: primaryColor,
supportedLocales: supportedLocales,
gestureBuilder: () async {
if (touchKey != null) {
await tester.startGesture(
tester.getRect(find.byKey(touchKey)).center,
);
}
await gestureBuilder?.call(tester);
},
);
});
}