mirror of
https://github.com/nasa/openmct.git
synced 2025-04-10 04:40:05 +00:00
Notification api tests (#3651)
This commit is contained in:
parent
92737b43af
commit
c0742d521c
154
src/api/notifications/NotificationAPISpec.js
Normal file
154
src/api/notifications/NotificationAPISpec.js
Normal file
@ -0,0 +1,154 @@
|
||||
/*****************************************************************************
|
||||
* Open MCT, Copyright (c) 2014-2020, United States Government
|
||||
* as represented by the Administrator of the National Aeronautics and Space
|
||||
* Administration. All rights reserved.
|
||||
*
|
||||
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
* Open MCT includes source code licensed under additional open source
|
||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||
* this source code distribution or the Licensing information page available
|
||||
* at runtime from the About dialog for additional information.
|
||||
*****************************************************************************/
|
||||
|
||||
import NotificationAPI from './NotificationAPI';
|
||||
|
||||
describe('The Notifiation API', () => {
|
||||
let notificationAPIInstance;
|
||||
let defaultTimeout = 4000;
|
||||
|
||||
beforeAll(() => {
|
||||
notificationAPIInstance = new NotificationAPI();
|
||||
});
|
||||
|
||||
describe('the info method', () => {
|
||||
let message = 'Example Notification Message';
|
||||
let severity = 'info';
|
||||
let notificationModel;
|
||||
|
||||
beforeAll(() => {
|
||||
notificationModel = notificationAPIInstance.info(message).model;
|
||||
});
|
||||
|
||||
afterAll(() => {
|
||||
notificationAPIInstance.dismissAllNotifications();
|
||||
});
|
||||
|
||||
it('shows a string message with info severity', () => {
|
||||
expect(notificationModel.message).toEqual(message);
|
||||
expect(notificationModel.severity).toEqual(severity);
|
||||
});
|
||||
|
||||
it('auto dismisses the notification after a brief timeout', (done) => {
|
||||
window.setTimeout(() => {
|
||||
expect(notificationAPIInstance.notifications.length).toEqual(0);
|
||||
done();
|
||||
}, defaultTimeout);
|
||||
});
|
||||
});
|
||||
|
||||
describe('the alert method', () => {
|
||||
let message = 'Example alert message';
|
||||
let severity = 'alert';
|
||||
let notificationModel;
|
||||
|
||||
beforeAll(() => {
|
||||
notificationModel = notificationAPIInstance.alert(message).model;
|
||||
});
|
||||
|
||||
afterAll(() => {
|
||||
notificationAPIInstance.dismissAllNotifications();
|
||||
});
|
||||
|
||||
it('shows a string message, with alert severity', () => {
|
||||
expect(notificationModel.message).toEqual(message);
|
||||
expect(notificationModel.severity).toEqual(severity);
|
||||
});
|
||||
|
||||
it('does not auto dismiss the notification', (done) => {
|
||||
window.setTimeout(() => {
|
||||
expect(notificationAPIInstance.notifications.length).toEqual(1);
|
||||
done();
|
||||
}, defaultTimeout);
|
||||
});
|
||||
});
|
||||
|
||||
describe('the error method', () => {
|
||||
let message = 'Example error message';
|
||||
let severity = 'error';
|
||||
let notificationModel;
|
||||
|
||||
beforeAll(() => {
|
||||
notificationModel = notificationAPIInstance.error(message).model;
|
||||
});
|
||||
|
||||
afterAll(() => {
|
||||
notificationAPIInstance.dismissAllNotifications();
|
||||
});
|
||||
|
||||
it('shows a string message, with severity error', () => {
|
||||
expect(notificationModel.message).toEqual(message);
|
||||
expect(notificationModel.severity).toEqual(severity);
|
||||
});
|
||||
|
||||
it('does not auto dismiss the notification', (done) => {
|
||||
window.setTimeout(() => {
|
||||
expect(notificationAPIInstance.notifications.length).toEqual(1);
|
||||
done();
|
||||
}, defaultTimeout);
|
||||
});
|
||||
});
|
||||
|
||||
describe('the progress method', () => {
|
||||
let title = 'This is a progress notification';
|
||||
let message1 = 'Example progress message 1';
|
||||
let message2 = 'Example progress message 2';
|
||||
let percentage1 = 50;
|
||||
let percentage2 = 99.9;
|
||||
let severity = 'info';
|
||||
let notification;
|
||||
let updatedPercentage;
|
||||
let updatedMessage;
|
||||
|
||||
beforeAll(() => {
|
||||
notification = notificationAPIInstance.progress(title, percentage1, message1);
|
||||
notification.on('progress', (percentage, text) => {
|
||||
updatedPercentage = percentage;
|
||||
updatedMessage = text;
|
||||
});
|
||||
});
|
||||
|
||||
afterAll(() => {
|
||||
notificationAPIInstance.dismissAllNotifications();
|
||||
});
|
||||
|
||||
it ('shows a notification with a message, progress message, percentage and info severity', () => {
|
||||
expect(notification.model.message).toEqual(title);
|
||||
expect(notification.model.severity).toEqual(severity);
|
||||
expect(notification.model.progressText).toEqual(message1);
|
||||
expect(notification.model.progressPerc).toEqual(percentage1);
|
||||
});
|
||||
|
||||
it ('allows dynamically updating the progress attributes', () => {
|
||||
notification.progress(percentage2, message2);
|
||||
|
||||
expect(updatedPercentage).toEqual(percentage2);
|
||||
expect(updatedMessage).toEqual(message2);
|
||||
});
|
||||
|
||||
it ('allows dynamically dismissing of progress notification', () => {
|
||||
notification.dismiss();
|
||||
|
||||
expect(notificationAPIInstance.notifications.length).toEqual(0);
|
||||
});
|
||||
});
|
||||
});
|
Loading…
x
Reference in New Issue
Block a user