3.3 KB98 lines
Blame
1/**
2 * Copyright (c) Meta Platforms, Inc. and affiliates.
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 */
7
8import {parseAlerts} from '../alerts';
9
10describe('alerts', () => {
11 it('parses valid alerts', () => {
12 expect(
13 parseAlerts([
14 {name: 'alerts.S12345.title', value: 'Rebases broken'},
15 {name: 'alerts.S12345.description', value: 'Fix is being deployed'},
16 {name: 'alerts.S12345.severity', value: 'SEV 1'},
17 {name: 'alerts.S12345.url', value: 'https://sapling-scm.com'},
18 {name: 'alerts.S12345.show-in-isl', value: 'true'},
19 {name: 'alerts.S12345.isl-version-regex', value: '0.1.38.*'},
20 ]),
21 ).toEqual([
22 {
23 key: 'S12345',
24 title: 'Rebases broken',
25 description: 'Fix is being deployed',
26 severity: 'SEV 1',
27 url: 'https://sapling-scm.com',
28 ['show-in-isl']: true,
29 ['isl-version-regex']: '0.1.38.*',
30 },
31 ]);
32 });
33
34 it('can parse multiple alerts', () => {
35 expect(
36 parseAlerts([
37 {name: 'alerts.S11111.title', value: 'Rebases broken'},
38 {name: 'alerts.S22222.title', value: 'Goto broken'},
39 {name: 'alerts.S11111.description', value: 'Fix is being deployed'},
40 {name: 'alerts.S22222.description', value: 'Fix is being deployed'},
41 {name: 'alerts.S11111.severity', value: 'SEV 1'},
42 {name: 'alerts.S22222.severity', value: 'SEV 2'},
43 {name: 'alerts.S11111.url', value: 'https://sapling-scm.com'},
44 {name: 'alerts.S22222.url', value: 'https://sapling-scm.com'},
45 {name: 'alerts.S11111.show-in-isl', value: 'true'},
46 {name: 'alerts.S22222.show-in-isl', value: 'true'},
47 ]),
48 ).toEqual([
49 {
50 key: 'S11111',
51 title: 'Rebases broken',
52 description: 'Fix is being deployed',
53 severity: 'SEV 1',
54 url: 'https://sapling-scm.com',
55 ['show-in-isl']: true,
56 },
57 {
58 key: 'S22222',
59 title: 'Goto broken',
60 description: 'Fix is being deployed',
61 severity: 'SEV 2',
62 url: 'https://sapling-scm.com',
63 ['show-in-isl']: true,
64 },
65 ]);
66 });
67
68 it('excludes alerts not for ISL', () => {
69 expect(
70 parseAlerts([
71 {name: 'alerts.S12345.title', value: 'Rebases broken'},
72 {name: 'alerts.S12345.description', value: 'Fix is being deployed'},
73 {name: 'alerts.S12345.severity', value: 'SEV 1'},
74 {name: 'alerts.S12345.url', value: 'https://sapling-scm.com'},
75 {name: 'alerts.S12345.show-in-isl', value: 'false'},
76 ]),
77 ).toEqual([]);
78 expect(
79 parseAlerts([
80 {name: 'alerts.S12345.title', value: 'Rebases broken'},
81 {name: 'alerts.S12345.description', value: 'Fix is being deployed'},
82 {name: 'alerts.S12345.severity', value: 'SEV 1'},
83 {name: 'alerts.S12345.url', value: 'https://sapling-scm.com'},
84 ]),
85 ).toEqual([]);
86 });
87
88 it('excludes alerts missing fields', () => {
89 expect(
90 parseAlerts([
91 {name: 'alerts.S12345.title', value: 'Rebases broken'},
92 {name: 'alerts.S12345.show-in-isl', value: 'true'},
93 ]),
94 ).toEqual([]);
95 expect(parseAlerts([{name: 'alerts.S12345.show-in-isl', value: 'true'}])).toEqual([]);
96 });
97});
98