|
@@ -1,6 +1,9 @@
|
|
|
import {CheckInStatus} from 'sentry/views/monitors/types';
|
|
|
|
|
|
-import {getAggregateStatusFromMultipleBuckets} from './getAggregateStatusFromMultipleBuckets';
|
|
|
+import {
|
|
|
+ getAggregateStatusFromMultipleBuckets,
|
|
|
+ getAggregateStatusFromMultipleStatsBuckets,
|
|
|
+} from './getAggregateStatusFromMultipleBuckets';
|
|
|
|
|
|
type StatusCounts = [
|
|
|
in_progress: number,
|
|
@@ -18,6 +21,18 @@ export function generateEnvMapping(name: string, counts: StatusCounts) {
|
|
|
};
|
|
|
}
|
|
|
|
|
|
+export function generateStats(counts: StatusCounts) {
|
|
|
+ const [in_progress, ok, missed, timeout, error, unknown] = counts;
|
|
|
+ return {
|
|
|
+ in_progress,
|
|
|
+ ok,
|
|
|
+ missed,
|
|
|
+ timeout,
|
|
|
+ error,
|
|
|
+ unknown,
|
|
|
+ };
|
|
|
+}
|
|
|
+
|
|
|
describe('getAggregateStatusFromMultipleBuckets', function () {
|
|
|
it('aggregates correctly across multiple envs', function () {
|
|
|
const envData1 = generateEnvMapping('prod', [2, 1, 2, 1, 0, 0]);
|
|
@@ -29,3 +44,15 @@ describe('getAggregateStatusFromMultipleBuckets', function () {
|
|
|
expect(status).toEqual(CheckInStatus.TIMEOUT);
|
|
|
});
|
|
|
});
|
|
|
+
|
|
|
+describe('getAggregateStatusFromMultipleStatsBuckets', function () {
|
|
|
+ it('aggregates correctly across multiple envs', function () {
|
|
|
+ const stats1 = generateStats([2, 1, 2, 1, 0, 0]);
|
|
|
+ const stats2 = generateStats([1, 2, 0, 0, 0, 0]);
|
|
|
+ const stats3 = generateStats([1, 1, 1, 3, 0, 0]);
|
|
|
+
|
|
|
+ const status = getAggregateStatusFromMultipleStatsBuckets([stats1, stats2, stats3]);
|
|
|
+
|
|
|
+ expect(status).toEqual(CheckInStatus.TIMEOUT);
|
|
|
+ });
|
|
|
+});
|