watchDirectory method

Future<void> watchDirectory({
  1. bool noIntegration = false,
  2. String device = 'all',
  3. Watch? watch,
})

Implementation

Future<void> watchDirectory({
  bool noIntegration = false,
  String device = 'all',
  Watch? watch,
}) async {
  watch ??= watchDefault;
  printer.println('Watching "${project.rootPath}" ...');

  final isFlutter = await project.isFlutter();

  final noIntegrations =
      noIntegration || !await project.hasIntegrationTestDir();

  if (isFlutter) {
    printer.println('Looks like a flutter project');
  } else {
    printer.println('Looks like a regular Dart project');
  }

  if (noIntegrations) {
    printer.println('Skipping integration tests');
  }

  final testRunner = TestRunner(project);

  final listener = createListener(
    testRunner: testRunner,
    isFlutter: isFlutter,
    noIntegration: noIntegrations,
    device: device,
  );

  final directories = [
    'lib',
    'data',
    'fonts',
    'test',
    'integration_test',
  ];

  for (final folder in directories) {
    final dir = project.getDir(folder);
    if (await dir.exists()) {
      watch(dir.path, listener);
    }
  }
}