| // Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| // Field names and helper functions for result documents and |
| // commit documents from Firestore. |
| |
| // Field names of Result document fields |
| const fName = 'name'; |
| const fResult = 'result'; |
| const fPreviousResult = 'previous_result'; |
| const fExpected = 'expected'; |
| const fChanged = 'changed'; |
| const fMatches = 'matches'; |
| const fFlaky = 'flaky'; |
| const fPreviousFlaky = 'previous_flaky'; |
| const fPinnedIndex = 'pinned_index'; |
| const fBlamelistStartIndex = 'blamelist_start_index'; |
| const fBlamelistEndIndex = 'blamelist_end_index'; |
| const fApproved = 'approved'; |
| const fActive = 'active'; |
| const fConfigurations = 'configurations'; |
| const fActiveConfigurations = 'active_configurations'; |
| |
| bool isChangedResult(Map<String, dynamic> change) => |
| change[fChanged] && (!change[fFlaky] || !change[fPreviousFlaky]); |
| |
| /// Whether the change will be marked as an active failure. |
| /// New flaky tests will not be marked active, so they will appear in the |
| /// results feed "all", but not turn the builder red |
| bool isFailure(Map<String, dynamic> change) => |
| !change[fMatches] && change[fResult] != 'flaky'; |
| |
| void transformChange(Map<String, dynamic> change) { |
| change[fPreviousResult] ??= 'new test'; |
| if (change[fPreviousFlaky]) { |
| change[fPreviousResult] = 'flaky'; |
| } |
| if (change[fFlaky]) { |
| change[fResult] = 'flaky'; |
| change[fMatches] = false; |
| } |
| } |
| |
| String testResult(Map<String, dynamic> change) => [ |
| change[fName], |
| change[fResult], |
| change[fPreviousResult], |
| change[fExpected] |
| ].join(' '); |
| |
| // Field names of commit document fields |
| const fHash = 'hash'; |
| const fIndex = 'index'; |
| const fAuthor = 'author'; |
| const fCreated = 'created'; |
| const fTitle = 'title'; |
| const fReview = 'review'; |
| const fRevertOf = 'revert_of'; |
| const fRelandOf = 'reland_of'; |