Make gallery dependency file test-exempt (#2286)
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 96a7b68..a93fad8 100644
--- a/app_dart/lib/src/request_handlers/github/webhook_subscription.dart
+++ b/app_dart/lib/src/request_handlers/github/webhook_subscription.dart
@@ -310,7 +310,9 @@
filename.contains('pubspec.yaml') ||
// Exempt categories.
filename.contains('.github/') ||
- filename.endsWith('.md');
+ filename.endsWith('.md') ||
+ // Exempt paths.
+ filename.startsWith('dev/devicelab/lib/versions/gallery.dart');
}
/// Returns the set of labels applicable to a file in the framework repo.
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 09e00ed..4bc36cf 100644
--- a/app_dart/test/request_handlers/github/webhook_subscription_test.dart
+++ b/app_dart/test/request_handlers/github/webhook_subscription_test.dart
@@ -751,6 +751,42 @@
));
});
+ test('Framework does not label PR with no tests label if file is test exempt', () async {
+ const int issueNumber = 123;
+
+ tester.message = generateGithubWebhookMessage(
+ action: 'opened',
+ number: issueNumber,
+ );
+ final RepositorySlug slug = RepositorySlug('flutter', 'flutter');
+
+ when(pullRequestsService.listFiles(slug, issueNumber)).thenAnswer(
+ (_) => Stream<PullRequestFile>.value(
+ PullRequestFile()..filename = 'dev/devicelab/lib/versions/gallery.dart',
+ ),
+ );
+
+ when(issuesService.listCommentsByIssue(slug, issueNumber)).thenAnswer(
+ (_) => Stream<IssueComment>.value(
+ IssueComment()..body = 'some other comment',
+ ),
+ );
+
+ await tester.post(webhook);
+
+ verifyNever(issuesService.addLabelsToIssue(
+ slug,
+ issueNumber,
+ <String>['framework'],
+ ));
+
+ verifyNever(issuesService.createComment(
+ slug,
+ issueNumber,
+ argThat(contains(config.missingTestsPullRequestMessageValue)),
+ ));
+ });
+
test('Framework labels PRs, comment if no tests including hit_test.dart file', () async {
const int issueNumber = 123;