@shopgate/pwa-common
Version:
Common library for the Shopgate Connect PWA.
77 lines • 2.29 kB
JavaScript
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();
});
});