mirror of
https://github.com/pulsar-edit/pulsar.git
synced 2024-11-10 10:17:11 +03:00
92 lines
3.0 KiB
JavaScript
92 lines
3.0 KiB
JavaScript
const NotificationManager = require('../src/notification-manager');
|
|
|
|
describe('NotificationManager', () => {
|
|
let manager;
|
|
|
|
beforeEach(() => {
|
|
manager = new NotificationManager();
|
|
});
|
|
|
|
describe('the atom global', () =>
|
|
it('has a notifications instance', () => {
|
|
expect(atom.notifications instanceof NotificationManager).toBe(true);
|
|
}));
|
|
|
|
describe('adding events', () => {
|
|
let addSpy;
|
|
|
|
beforeEach(() => {
|
|
addSpy = jasmine.createSpy();
|
|
manager.onDidAddNotification(addSpy);
|
|
});
|
|
|
|
it('emits an event when a notification has been added', () => {
|
|
manager.add('error', 'Some error!', { icon: 'someIcon' });
|
|
expect(addSpy).toHaveBeenCalled();
|
|
|
|
const notification = addSpy.mostRecentCall.args[0];
|
|
expect(notification.getType()).toBe('error');
|
|
expect(notification.getMessage()).toBe('Some error!');
|
|
expect(notification.getIcon()).toBe('someIcon');
|
|
});
|
|
|
|
it('emits a fatal error when ::addFatalError has been called', () => {
|
|
manager.addFatalError('Some error!', { icon: 'someIcon' });
|
|
expect(addSpy).toHaveBeenCalled();
|
|
const notification = addSpy.mostRecentCall.args[0];
|
|
expect(notification.getType()).toBe('fatal');
|
|
});
|
|
|
|
it('emits an error when ::addError has been called', () => {
|
|
manager.addError('Some error!', { icon: 'someIcon' });
|
|
expect(addSpy).toHaveBeenCalled();
|
|
const notification = addSpy.mostRecentCall.args[0];
|
|
expect(notification.getType()).toBe('error');
|
|
});
|
|
|
|
it('emits a warning notification when ::addWarning has been called', () => {
|
|
manager.addWarning('Something!', { icon: 'someIcon' });
|
|
expect(addSpy).toHaveBeenCalled();
|
|
const notification = addSpy.mostRecentCall.args[0];
|
|
expect(notification.getType()).toBe('warning');
|
|
});
|
|
|
|
it('emits an info notification when ::addInfo has been called', () => {
|
|
manager.addInfo('Something!', { icon: 'someIcon' });
|
|
expect(addSpy).toHaveBeenCalled();
|
|
const notification = addSpy.mostRecentCall.args[0];
|
|
expect(notification.getType()).toBe('info');
|
|
});
|
|
|
|
it('emits a success notification when ::addSuccess has been called', () => {
|
|
manager.addSuccess('Something!', { icon: 'someIcon' });
|
|
expect(addSpy).toHaveBeenCalled();
|
|
const notification = addSpy.mostRecentCall.args[0];
|
|
expect(notification.getType()).toBe('success');
|
|
});
|
|
});
|
|
|
|
describe('clearing notifications', () => {
|
|
it('clears the notifications when ::clear has been called', () => {
|
|
manager.addSuccess('success');
|
|
expect(manager.getNotifications().length).toBe(1);
|
|
manager.clear();
|
|
expect(manager.getNotifications().length).toBe(0);
|
|
});
|
|
|
|
describe('adding events', () => {
|
|
let clearSpy;
|
|
|
|
beforeEach(() => {
|
|
clearSpy = jasmine.createSpy();
|
|
manager.onDidClearNotifications(clearSpy);
|
|
});
|
|
|
|
it('emits an event when the notifications have been cleared', () => {
|
|
manager.clear();
|
|
expect(clearSpy).toHaveBeenCalled();
|
|
});
|
|
});
|
|
});
|
|
});
|