123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325 |
- 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(<NotificationItem {...opts} />);
- 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(<NotificationItem {...opts} />);
- 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(<NotificationItem {...opts} />);
- 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(<NotificationItem {...opts} />);
- 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: <IconToutiaoLogo style={{ color: 'red' }} size="large" />,
- };
- const notification = mount(<NotificationItem {...opts} />);
- 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");
- });
- });
|