diff --git a/app_dart/lib/src/request_handlers/check_for_waiting_pull_requests.dart b/app_dart/lib/src/request_handlers/check_for_waiting_pull_requests.dart index e8bf19df65..c262280490 100644 --- a/app_dart/lib/src/request_handlers/check_for_waiting_pull_requests.dart +++ b/app_dart/lib/src/request_handlers/check_for_waiting_pull_requests.dart @@ -241,18 +241,19 @@ bool _checkStatuses( bool allSuccess = true; for (Map status in statuses) { final String name = status['context']; - if (status['state'] == 'FAILURE') { + if (status['state'] != 'SUCCESS') { allSuccess = false; - if (!notInAuthorsControl.contains(name)) { + if (status['state'] == 'FAILURE' && !notInAuthorsControl.contains(name)) { failures.add(name); } } } for (Map check in checks) { final String name = check['app']['name']; - if (check['conclusion'] == 'FAILURE') { + if (check['conclusion'] != 'SUCCESS') { allSuccess = false; - if (!notInAuthorsControl.contains(name)) { + if (check['conclusion'] == 'FAILURE' && + !notInAuthorsControl.contains(name)) { failures.add(name); } } diff --git a/app_dart/test/request_handlers/check_for_waiting_pull_requests_test.dart b/app_dart/test/request_handlers/check_for_waiting_pull_requests_test.dart index f8534b7a63..38ed261630 100644 --- a/app_dart/test/request_handlers/check_for_waiting_pull_requests_test.dart +++ b/app_dart/test/request_handlers/check_for_waiting_pull_requests_test.dart @@ -149,6 +149,20 @@ void main() { ); }); + test('Does not merge PR with in progress tests', () async { + flutterRepoPRs.add(PullRequestHelper( + lastCommitStatuses: const [ + StatusHelper('Linux Host', 'PENDING') + ], + )); + + await tester.get(handler); + + _verifyQueries(); + + githubGraphQLClient.verifyMutations([]); + }); + test('Does not merge unapproved PR from a hacker', () async { config.rollerAccountsValue = {'engine-roller', 'skia-roller'}; flutterRepoPRs.add(PullRequestHelper(