testColumnComponent function

  1. @isTest
void testColumnComponent({
  1. required String name,
  2. required List<Component> scenarios,
  3. String? groupName,
  4. Future<TestGesture?> gestureBuilder(
    1. WidgetTester tester
    )?,
  5. List<Device>? devices,
  6. Size surfaceSize = const Size(800, 740),
  7. Key? touchKey,
  8. Widget wrap(
    1. Widget child
    )?,
  9. bool? autoHeight = true,
  10. double? textScaleSize,
  11. Iterable<LocalizationsDelegate>? localizationsDelegates,
  12. Iterable<Locale>? supportedLocales,
  13. WildnessProperties? config,
  14. TextStyle? defaultTextStyle,
  15. Color? primaryColor,
})

Implementation

@isTest
void testColumnComponent({
  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 = GoldenBuilder.column(wrap: wrap);

    for (var scenario in scenarios) {
      if (scenario.textScaleFactor != null) {
        builder.addTextScaleScenario(
          scenario.name,
          scenario.widget,
          textScaleFactor:
              scenario.textScaleFactor ?? textScaleFactorMaxSupported,
        );
      } else {
        builder.addScenario(scenario.name, scenario.widget);
      }
    }

    await tester.pumpWidgetAndMatchWithGesture(
      groupTitle: 'components/${(groupName ?? name).toLowerCase()}',
      builder: builder,
      surfaceSize: surfaceSize,
      gestureBuilder: () async {
        if (touchKey != null) {
          await tester.startGesture(
            tester.getRect(find.byKey(touchKey)).center,
          );
        }

        await gestureBuilder?.call(tester);
      },
      autoHeight: autoHeight,
      config: config,
      defaultTextStyle: defaultTextStyle,
      localizationsDelegates: localizationsDelegates,
      primaryColor: primaryColor,
      supportedLocales: supportedLocales,
      textScaleSize: textScaleSize,
    );
  });
}