-
Notifications
You must be signed in to change notification settings - Fork 65
/
canary-test-result-summary.js
40 lines (35 loc) · 1.65 KB
/
canary-test-result-summary.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import { filter, readOnly } from '@ember/object/computed';
import Component from '@ember/component';
import { computed } from '@ember/object';
import computedPercent from 'ember-observer/utils/computed-percent';
function computedFormattedPercent(percentPropertyName) {
return computed(percentPropertyName, function() {
let value = this.get(percentPropertyName);
if (!value) {
return '--';
}
value = value.toFixed(2);
return `${value}%`;
});
}
export default Component.extend({
errorBuilds: filter('testResults', (testResult) => {
return !testResult.get('succeeded');
}),
failedBuilds: filter('testResults', (testResult) => {
return testResult.get('succeeded') && !testResult.get('emberVersionCompatibilities.firstObject.compatible');
}),
passedBuilds: filter('testResults', (testResult) => {
return testResult.get('succeeded') && testResult.get('emberVersionCompatibilities.firstObject.compatible');
}),
numberOfErrorBuilds: readOnly('errorBuilds.length'),
numberOfFailedBuilds: readOnly('failedBuilds.length'),
numberOfPassedBuilds: readOnly('passedBuilds.length'),
numberOfBuilds: readOnly('testResults.length'),
percentOfErrorBuilds: computedPercent('numberOfErrorBuilds', 'numberOfBuilds'),
percentOfFailedBuilds: computedPercent('numberOfFailedBuilds', 'numberOfBuilds'),
percentOfPassedBuilds: computedPercent('numberOfPassedBuilds', 'numberOfBuilds'),
formattedPercentOfErrorBuilds: computedFormattedPercent('percentOfErrorBuilds'),
formattedPercentOfFailedBuilds: computedFormattedPercent('percentOfFailedBuilds'),
formattedPercentOfPassedBuilds: computedFormattedPercent('percentOfPassedBuilds')
});