UNPKG

@shopgate/pwa-common

Version:

Common library for the Shopgate Connect PWA.

77 lines 2.29 kB
import React from 'react'; import { mount, shallow } from 'enzyme'; import Drawer from "./index"; import { jsx as _jsx } from "react/jsx-runtime"; jest.mock('@shopgate/engage/a11y/components'); describe('<Drawer />', () => { const onOpen = jest.fn(); const onClose = jest.fn(); const onDidOpen = jest.fn(); const onDidClose = jest.fn(); beforeEach(() => { jest.clearAllMocks(); }); it('should render', () => { const wrapper = shallow(/*#__PURE__*/_jsx(Drawer, {})); expect(wrapper).toMatchSnapshot(); }); it('should execute callback when drawer is opened', () => { const wrapper = mount(/*#__PURE__*/_jsx(Drawer, { onOpen: onOpen })); wrapper.setProps({ isOpen: true }); expect(onOpen).toBeCalled(); }); it('should execute callback when drawer is closed', () => { const wrapper = mount(/*#__PURE__*/_jsx(Drawer, { isOpen: true, onClose: onClose })); wrapper.setProps({ isOpen: false }); expect(onClose).toBeCalled(); }); it('should add custom classes', () => { const wrapper = mount(/*#__PURE__*/_jsx(Drawer, { className: "custom-class-name", isOpen: true })); expect(wrapper).toMatchSnapshot(); expect(wrapper.hasClass('custom-class-name')).toEqual(true); }); it('should execute callback when drawer open animation did end', () => { const wrapper = mount(/*#__PURE__*/_jsx(Drawer, { className: "custom-class-name", isOpen: false, onOpen: onOpen, onDidOpen: onDidOpen })); expect(wrapper).toMatchSnapshot(); wrapper.setProps({ isOpen: true }); expect(onOpen).toBeCalled(); expect(onDidOpen).not.toBeCalled(); wrapper.simulate('animationEnd'); expect(onDidOpen).toBeCalled(); }); it('should execute callback when drawer close animation did end', () => { const wrapper = mount(/*#__PURE__*/_jsx(Drawer, { className: "custom-class-name", isOpen: true, onClose: onClose, onDidClose: onDidClose })); expect(wrapper).toMatchSnapshot(); wrapper.setProps({ isOpen: false }); expect(onClose).toBeCalled(); expect(onDidClose).not.toBeCalled(); wrapper.simulate('animationEnd'); expect(onDidClose).toBeCalled(); }); });