Files
2024-02-15 17:01:50 +00:00

74 lines
1.9 KiB
TypeScript

import AlertStore from 'sentry/stores/alertStore';
jest.mock('sentry/utils/localStorage');
describe('AlertStore', function () {
beforeEach(function () {
AlertStore.alerts = [];
AlertStore.count = 0;
});
describe('addAlert()', function () {
it('should add a new alert with incrementing key', function () {
AlertStore.addAlert({
message: 'Bzzzzzzp *crash*',
type: 'error',
});
AlertStore.addAlert({
message: 'Everything is super',
type: 'info',
});
expect(AlertStore.alerts).toHaveLength(2);
expect(AlertStore.alerts[0].key).toEqual(0);
expect(AlertStore.alerts[1].key).toEqual(1);
});
it('should not add duplicates when noDuplicates is set', function () {
AlertStore.addAlert({
id: 'unique-key',
message: 'Bzzzzzzp *crash*',
type: 'error',
noDuplicates: true,
});
AlertStore.addAlert({
id: 'unique-key',
message: 'Bzzzzzzp *crash*',
type: 'error',
noDuplicates: true,
});
expect(AlertStore.alerts).toHaveLength(1);
});
});
describe('closeAlert()', function () {
it('should remove alert', function () {
AlertStore.alerts = [
{key: 1, message: 'foo', type: 'error'},
{key: 2, message: 'bar', type: 'error'},
{key: 3, message: 'baz', type: 'error'},
];
AlertStore.closeAlert(AlertStore.alerts[1]);
expect(AlertStore.alerts).toHaveLength(2);
expect(AlertStore.alerts[0].key).toEqual(1);
expect(AlertStore.alerts[1].key).toEqual(3);
});
it('should persist removal of persistent alerts', function () {
const alert = {
key: 1,
id: 'test',
message: 'this is a test',
type: 'error',
} as const;
AlertStore.closeAlert(alert);
AlertStore.addAlert(alert);
expect(AlertStore.alerts).toHaveLength(0);
});
});
});