mirror of
https://github.com/hanzoai/sentinel.git
synced 2026-09-29 22:34:33 +00:00
74 lines
1.9 KiB
TypeScript
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);
|
|
});
|
|
});
|
|
});
|