Exempt package test runners from test bot (#2124)
diff --git a/app_dart/lib/src/request_handlers/github/webhook_subscription.dart b/app_dart/lib/src/request_handlers/github/webhook_subscription.dart
index 8c05af4..2778e99 100644
--- a/app_dart/lib/src/request_handlers/github/webhook_subscription.dart
+++ b/app_dart/lib/src/request_handlers/github/webhook_subscription.dart
@@ -470,7 +470,13 @@
!filename.endsWith('.cirrus.yml') &&
!filename.contains('.ci/') &&
!filename.contains('.github/') &&
- !filename.endsWith('.md')) {
+ !filename.endsWith('.md') &&
+ // Custom package-specific test runners. These do not count as tests
+ // for the purposes of testing a change that otherwise needs tests,
+ // but since they are the driver for tests they don't need test
+ // coverage.
+ !filename.endsWith('tool/run_tests.dart') &&
+ !filename.endsWith('run_tests.sh')) {
needsTests = !_allChangesAreCodeComments(file);
}
// See https://github.com/flutter/flutter/wiki/Plugin-Tests for discussion
diff --git a/app_dart/test/request_handlers/github/webhook_subscription_test.dart b/app_dart/test/request_handlers/github/webhook_subscription_test.dart
index f73853c..50cc2e5 100644
--- a/app_dart/test/request_handlers/github/webhook_subscription_test.dart
+++ b/app_dart/test/request_handlers/github/webhook_subscription_test.dart
@@ -2112,6 +2112,31 @@
));
});
+ test('Packages does not comment for custom test driver', () async {
+ const int issueNumber = 123;
+
+ tester.message = generateGithubWebhookMessage(
+ action: 'opened',
+ number: issueNumber,
+ slug: Config.packagesSlug,
+ );
+
+ when(pullRequestsService.listFiles(Config.packagesSlug, issueNumber)).thenAnswer(
+ (_) => Stream<PullRequestFile>.fromIterable(<PullRequestFile>[
+ PullRequestFile()..filename = 'packages/foo/tool/run_tests.dart',
+ PullRequestFile()..filename = 'packages/foo/run_tests.sh',
+ ]),
+ );
+
+ await tester.post(webhook);
+
+ verifyNever(issuesService.createComment(
+ Config.packagesSlug,
+ issueNumber,
+ argThat(contains(config.missingTestsPullRequestMessageValue)),
+ ));
+ });
+
test('Schedule tasks when pull request is closed and merged', () async {
const int issueNumber = 123;