import { Notification, Button } from '../../index';
import { BASE_CLASS_PREFIX } from '../../../semi-foundation/base/constants';
import NotificationItem from '../notice';
import { IconToutiaoLogo } from '@douyinfe/semi-icons';
describe('Notification', () => {
it('title&content、zIndex', () => {
Notification.open({
title: 'Hi, Bytedance',
content: 'ies dance dance dance',
duration: 1,
zIndex: 2333,
});
const notificationWrapper = document.querySelector(`.${BASE_CLASS_PREFIX}-notification-wrapper`);
expect(
notificationWrapper
.style.zIndex
).toEqual("2333");
const notificationInner = document.querySelector(`.${BASE_CLASS_PREFIX}-notification-notice-content-wrapper`);
expect(
notificationInner
.childElementCount
).toEqual(2);
expect(
notificationInner
.querySelector(`.${BASE_CLASS_PREFIX}-notification-notice-title`)
.textContent
).toEqual('Hi, Bytedance');
expect(
notificationInner
.querySelector(`.${BASE_CLASS_PREFIX}-notification-notice-content`)
.textContent
).toEqual('ies dance dance dance');
});
it('duration', () => {
Notification.destroyAll();
Notification.open({
title: 'Hi, Bytedance',
content: 'ies dance dance dance',
duration: 1,
})
const notificationInner1 = document.querySelector(`.${BASE_CLASS_PREFIX}-notification-list`);
expect(
notificationInner1
.childElementCount
).toEqual(1);
setTimeout(() => {
const notificationInner2 = document.querySelector(`.${BASE_CLASS_PREFIX}-notification-list`);
expect(
notificationInner2
.childElementCount
).toEqual(0);
}, 1000);
});
it('position-top', () => {
Notification.destroyAll();
Notification.open({
title: 'top demo',
content: 'ies dance dance dance',
duration: 1,
position: 'top'
});
expect(
document
.querySelector(`.${BASE_CLASS_PREFIX}-notification-list[placement=top] .${BASE_CLASS_PREFIX}-notification-notice-content-wrapper .${BASE_CLASS_PREFIX}-notification-notice-title`)
.textContent
).toEqual('top demo');
expect(
document
.querySelector(`.${BASE_CLASS_PREFIX}-notification-list[placement=bottom] .${BASE_CLASS_PREFIX}-notification-notice-content-wrapper .${BASE_CLASS_PREFIX}-notification-notice-title`)
).toEqual(null);
});
it('position-topLeft', () => {
Notification.destroyAll();
Notification.open({
title: 'topLeft demo',
content: 'ies dance dance dance',
duration: 1,
position: 'topLeft'
});
expect(
document
.querySelector(`.${BASE_CLASS_PREFIX}-notification-list[placement=topLeft] .${BASE_CLASS_PREFIX}-notification-notice-content-wrapper .${BASE_CLASS_PREFIX}-notification-notice-title`)
.textContent
).toEqual('topLeft demo');
});
it('position-bottomLeft', () => {
Notification.destroyAll();
Notification.open({
title: 'bottomLeft demo',
content: 'ies dance dance dance',
duration: 1,
position: 'bottomLeft'
});
expect(
document
.querySelector(`.${BASE_CLASS_PREFIX}-notification-list[placement=bottomLeft] .${BASE_CLASS_PREFIX}-notification-notice-content-wrapper .${BASE_CLASS_PREFIX}-notification-notice-title`)
.textContent
).toEqual('bottomLeft demo');
});
it('position-bottomRight', () => {
Notification.destroyAll();
Notification.open({
title: 'bottomRight demo',
content: 'ies dance dance dance',
duration: 1,
position: 'bottomRight'
});
expect(
document
.querySelector(`.${BASE_CLASS_PREFIX}-notification-list[placement=bottomRight] .${BASE_CLASS_PREFIX}-notification-notice-content-wrapper .${BASE_CLASS_PREFIX}-notification-notice-title`)
.textContent
).toEqual('bottomRight demo');
});
it('success', () => {
Notification.destroyAll();
Notification.success({
title: 'success demo',
duration: 1,
});
expect(
document
.querySelector(`.${BASE_CLASS_PREFIX}-notification-notice-success .${BASE_CLASS_PREFIX}-notification-notice-title`)
.textContent
).toEqual('success demo');
});
it('info', () => {
Notification.destroyAll();
Notification.info({
title: 'info demo',
duration: 1,
});
expect(
document
.querySelector(`.${BASE_CLASS_PREFIX}-notification-notice-info .${BASE_CLASS_PREFIX}-notification-notice-title`)
.textContent
).toEqual('info demo');
});
it('warning', () => {
Notification.destroyAll();
Notification.warning({
title: 'warning demo',
duration: 1,
});
expect(
document
.querySelector(`.${BASE_CLASS_PREFIX}-notification-notice-warning .${BASE_CLASS_PREFIX}-notification-notice-title`)
.textContent
).toEqual('warning demo');
});
it('error', () => {
Notification.destroyAll();
Notification.error({
title: 'error demo',
duration: 1,
});
expect(
document
.querySelector(`.${BASE_CLASS_PREFIX}-notification-notice-error .${BASE_CLASS_PREFIX}-notification-notice-title`)
.textContent
).toEqual('error demo');
});
it('theme error-light', () => {
Notification.destroyAll();
Notification.error({
title: 'light error demo',
duration: 1,
theme: 'light'
});
expect(
document
.querySelector(`.${BASE_CLASS_PREFIX}-notification-notice-light.${BASE_CLASS_PREFIX}-notification-notice-error .${BASE_CLASS_PREFIX}-notification-notice-title`)
.textContent
).toEqual('light error demo');
});
it('theme info-light', () => {
Notification.destroyAll();
Notification.info({
title: 'light info demo',
duration: 1,
theme: 'light'
});
expect(
document
.querySelector(`.${BASE_CLASS_PREFIX}-notification-notice-light.${BASE_CLASS_PREFIX}-notification-notice-info .${BASE_CLASS_PREFIX}-notification-notice-title`)
.textContent
).toEqual('light info demo');
});
it('theme warning-light', () => {
Notification.destroyAll();
Notification.warning({
title: 'light warning demo',
duration: 1,
theme: 'light'
});
expect(
document
.querySelector(`.${BASE_CLASS_PREFIX}-notification-notice-light.${BASE_CLASS_PREFIX}-notification-notice-warning .${BASE_CLASS_PREFIX}-notification-notice-title`)
.textContent
).toEqual('light warning demo');
});
it('theme success-light', () => {
Notification.destroyAll();
Notification.success({
title: 'light success demo',
duration: 1,
theme: 'light'
});
expect(
document
.querySelector(`.${BASE_CLASS_PREFIX}-notification-notice-light.${BASE_CLASS_PREFIX}-notification-notice-success .${BASE_CLASS_PREFIX}-notification-notice-title`)
.textContent
).toEqual('light success demo');
});
it('onClick', () => {
Notification.destroyAll();
const spyOnClick = sinon.spy(() => {});
const opts = {
onClick: spyOnClick,
content: 'content',
title: 'title',
};
const notification = mount();
notification.simulate('click', {});
expect(spyOnClick.calledOnce).toEqual(true);
})
it('onClose', () => {
Notification.destroyAll();
const spyOnClose = sinon.spy(() => {});
const opts = {
onClose: spyOnClose,
content: 'content',
title: 'title',
};
const notification = mount();
const closeBtn = notification.find(`.${BASE_CLASS_PREFIX}-notification-notice-inner .${BASE_CLASS_PREFIX}-button`);
closeBtn.simulate('click', {});
expect(spyOnClose.calledOnce).toEqual(true);
});
it('onCloseClick', () => {
Notification.destroyAll();
const spyOnCloseClick = sinon.spy(() => {});
const opts = {
onCloseClick: spyOnCloseClick,
content: 'content',
title: 'title',
};
const notification = mount();
const closeBtn = notification.find(`.${BASE_CLASS_PREFIX}-notification-notice-inner .${BASE_CLASS_PREFIX}-button`);
closeBtn.simulate('click', {});
expect(spyOnCloseClick.calledOnce).toEqual(true);
});
it('showClose', () => {
Notification.destroyAll();
const spyOnCloseClick = sinon.spy(() => {});
const opts = {
onCloseClick: spyOnCloseClick,
content: 'content',
title: 'title',
showClose: false
};
const notification = mount();
expect(
notification
.exists(`.${BASE_CLASS_PREFIX}-notification-notice-inner .${BASE_CLASS_PREFIX}-button`)
)
.toEqual(false);
});
it('icon', () => {
Notification.destroyAll();
const opts = {
content: 'content',
title: 'title',
icon: ,
};
const notification = mount();
expect(
notification
.exists(`.${BASE_CLASS_PREFIX}-notification-notice .${BASE_CLASS_PREFIX}-notification-notice-icon .${BASE_CLASS_PREFIX}-icon-toutiao_logo`)
)
.toEqual(true);
});
it('config', () => {
Notification.destroyAll();
const opts = {
content: 'content',
title: 'title',
};
Notification.config({
left:'300px',
top:'400px'
})
Notification.info({ ...opts, position: 'top' });
const notificationList = document.querySelector(`.${BASE_CLASS_PREFIX}-notification-list`);
expect(
notificationList
.style.left
).toEqual("300px");
expect(
notificationList
.style.top
).toEqual("400px");
});
});