reviewer
diff --git a/app_dart/lib/src/model/common/checks_extension.dart b/app_dart/lib/src/model/common/checks_extension.dart index f8b9fa5..63b2137 100644 --- a/app_dart/lib/src/model/common/checks_extension.dart +++ b/app_dart/lib/src/model/common/checks_extension.dart
@@ -69,4 +69,14 @@ _ => .failed, }; } + + /// Converts a [TaskConclusion] to a [TaskStatus]. + static TaskStatus fromTaskConclusion(TaskConclusion conclusion) { + return switch (conclusion) { + TaskConclusion.unknown || TaskConclusion.failure => TaskStatus.failed, + TaskConclusion.scheduled => TaskStatus.waitingForBackfill, + TaskConclusion.success => TaskStatus.succeeded, + TaskConclusion.neutral => TaskStatus.neutral, + }; + } }
diff --git a/app_dart/lib/src/request_handlers/get_presubmit_guard.dart b/app_dart/lib/src/request_handlers/get_presubmit_guard.dart index 74a93c1..eb906fb 100644 --- a/app_dart/lib/src/request_handlers/get_presubmit_guard.dart +++ b/app_dart/lib/src/request_handlers/get_presubmit_guard.dart
@@ -7,11 +7,11 @@ import 'package:cocoon_common/guard_status.dart'; import 'package:cocoon_common/rpc_model.dart' as rpc_model; -import 'package:cocoon_common/task_status.dart'; import 'package:github/github.dart'; import 'package:meta/meta.dart'; import '../../cocoon_service.dart'; +import '../model/common/checks_extension.dart'; import '../model/firestore/ci_staging.dart'; import '../request_handling/public_api_request_handler.dart'; import '../service/firestore/unified_check_run.dart'; @@ -201,7 +201,7 @@ 0, jobs: { for (final MapEntry(:key, :value) in g.checkRuns.entries) - key: _taskStatusFromConclusion(value), + key: ChecksExtension.fromTaskConclusion(value), }, ), ], @@ -209,18 +209,4 @@ return Response.json(response); } - - TaskStatus _taskStatusFromConclusion(TaskConclusion conclusion) { - switch (conclusion) { - case TaskConclusion.unknown: - case TaskConclusion.failure: - return TaskStatus.failed; - case TaskConclusion.scheduled: - return TaskStatus.waitingForBackfill; - case TaskConclusion.success: - return TaskStatus.succeeded; - case TaskConclusion.neutral: - return TaskStatus.neutral; - } - } }
diff --git a/app_dart/test/model/common/checks_extension_test.dart b/app_dart/test/model/common/checks_extension_test.dart index c5065a1..1f812c3 100644 --- a/app_dart/test/model/common/checks_extension_test.dart +++ b/app_dart/test/model/common/checks_extension_test.dart
@@ -38,6 +38,29 @@ TaskStatus.neutral, ); }); + + test('fromTaskConclusion mapping', () { + expect( + ChecksExtension.fromTaskConclusion(TaskConclusion.success), + TaskStatus.succeeded, + ); + expect( + ChecksExtension.fromTaskConclusion(TaskConclusion.neutral), + TaskStatus.neutral, + ); + expect( + ChecksExtension.fromTaskConclusion(TaskConclusion.failure), + TaskStatus.failed, + ); + expect( + ChecksExtension.fromTaskConclusion(TaskConclusion.scheduled), + TaskStatus.waitingForBackfill, + ); + expect( + ChecksExtension.fromTaskConclusion(TaskConclusion.unknown), + TaskStatus.failed, + ); + }); }); group('TaskConclusion', () {