addons/isl-server/src/__tests__/alerts.test.tsblame
View source
b69ab311/**
b69ab312 * Copyright (c) Meta Platforms, Inc. and affiliates.
b69ab313 *
b69ab314 * This source code is licensed under the MIT license found in the
b69ab315 * LICENSE file in the root directory of this source tree.
b69ab316 */
b69ab317
b69ab318import {parseAlerts} from '../alerts';
b69ab319
b69ab3110describe('alerts', () => {
b69ab3111 it('parses valid alerts', () => {
b69ab3112 expect(
b69ab3113 parseAlerts([
b69ab3114 {name: 'alerts.S12345.title', value: 'Rebases broken'},
b69ab3115 {name: 'alerts.S12345.description', value: 'Fix is being deployed'},
b69ab3116 {name: 'alerts.S12345.severity', value: 'SEV 1'},
b69ab3117 {name: 'alerts.S12345.url', value: 'https://sapling-scm.com'},
b69ab3118 {name: 'alerts.S12345.show-in-isl', value: 'true'},
b69ab3119 {name: 'alerts.S12345.isl-version-regex', value: '0.1.38.*'},
b69ab3120 ]),
b69ab3121 ).toEqual([
b69ab3122 {
b69ab3123 key: 'S12345',
b69ab3124 title: 'Rebases broken',
b69ab3125 description: 'Fix is being deployed',
b69ab3126 severity: 'SEV 1',
b69ab3127 url: 'https://sapling-scm.com',
b69ab3128 ['show-in-isl']: true,
b69ab3129 ['isl-version-regex']: '0.1.38.*',
b69ab3130 },
b69ab3131 ]);
b69ab3132 });
b69ab3133
b69ab3134 it('can parse multiple alerts', () => {
b69ab3135 expect(
b69ab3136 parseAlerts([
b69ab3137 {name: 'alerts.S11111.title', value: 'Rebases broken'},
b69ab3138 {name: 'alerts.S22222.title', value: 'Goto broken'},
b69ab3139 {name: 'alerts.S11111.description', value: 'Fix is being deployed'},
b69ab3140 {name: 'alerts.S22222.description', value: 'Fix is being deployed'},
b69ab3141 {name: 'alerts.S11111.severity', value: 'SEV 1'},
b69ab3142 {name: 'alerts.S22222.severity', value: 'SEV 2'},
b69ab3143 {name: 'alerts.S11111.url', value: 'https://sapling-scm.com'},
b69ab3144 {name: 'alerts.S22222.url', value: 'https://sapling-scm.com'},
b69ab3145 {name: 'alerts.S11111.show-in-isl', value: 'true'},
b69ab3146 {name: 'alerts.S22222.show-in-isl', value: 'true'},
b69ab3147 ]),
b69ab3148 ).toEqual([
b69ab3149 {
b69ab3150 key: 'S11111',
b69ab3151 title: 'Rebases broken',
b69ab3152 description: 'Fix is being deployed',
b69ab3153 severity: 'SEV 1',
b69ab3154 url: 'https://sapling-scm.com',
b69ab3155 ['show-in-isl']: true,
b69ab3156 },
b69ab3157 {
b69ab3158 key: 'S22222',
b69ab3159 title: 'Goto broken',
b69ab3160 description: 'Fix is being deployed',
b69ab3161 severity: 'SEV 2',
b69ab3162 url: 'https://sapling-scm.com',
b69ab3163 ['show-in-isl']: true,
b69ab3164 },
b69ab3165 ]);
b69ab3166 });
b69ab3167
b69ab3168 it('excludes alerts not for ISL', () => {
b69ab3169 expect(
b69ab3170 parseAlerts([
b69ab3171 {name: 'alerts.S12345.title', value: 'Rebases broken'},
b69ab3172 {name: 'alerts.S12345.description', value: 'Fix is being deployed'},
b69ab3173 {name: 'alerts.S12345.severity', value: 'SEV 1'},
b69ab3174 {name: 'alerts.S12345.url', value: 'https://sapling-scm.com'},
b69ab3175 {name: 'alerts.S12345.show-in-isl', value: 'false'},
b69ab3176 ]),
b69ab3177 ).toEqual([]);
b69ab3178 expect(
b69ab3179 parseAlerts([
b69ab3180 {name: 'alerts.S12345.title', value: 'Rebases broken'},
b69ab3181 {name: 'alerts.S12345.description', value: 'Fix is being deployed'},
b69ab3182 {name: 'alerts.S12345.severity', value: 'SEV 1'},
b69ab3183 {name: 'alerts.S12345.url', value: 'https://sapling-scm.com'},
b69ab3184 ]),
b69ab3185 ).toEqual([]);
b69ab3186 });
b69ab3187
b69ab3188 it('excludes alerts missing fields', () => {
b69ab3189 expect(
b69ab3190 parseAlerts([
b69ab3191 {name: 'alerts.S12345.title', value: 'Rebases broken'},
b69ab3192 {name: 'alerts.S12345.show-in-isl', value: 'true'},
b69ab3193 ]),
b69ab3194 ).toEqual([]);
b69ab3195 expect(parseAlerts([{name: 'alerts.S12345.show-in-isl', value: 'true'}])).toEqual([]);
b69ab3196 });
b69ab3197});