UNPKG

wix-style-react

Version:
114 lines (97 loc) 4.04 kB
import React from 'react'; import sectionHelperDriverFactory from './SectionHelper.driver'; import { createDriverFactory } from 'wix-ui-test-utils/driver-factory'; import SectionHelper from '.'; import { sectionHelperTestkitFactory } from '../../testkit'; import { sectionHelperTestkitFactory as enzymeSectionHelperTestkitFactory } from '../../testkit/enzyme'; import { isTestkitExists, isEnzymeTestkitExists } from '../../test/utils/testkit-sanity'; import { mount } from 'enzyme'; var renderWithProps = function renderWithProps() { var properties = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; return React.createElement( SectionHelper, properties, properties.children || React.createElement( 'div', null, 'Hello, World!' ) ); }; describe('SectionHelper', function () { var createDriver = createDriverFactory(sectionHelperDriverFactory); it('should render', function () { var driver = createDriver(renderWithProps()); expect(driver.exists()).toBeTruthy(); }); it('should render children', function () { var driver = createDriver(renderWithProps({ children: 'Muffins are the best!' })); expect(driver.textContent()).toEqual('Muffins are the best!'); }); it('should render title', function () { var driver = createDriver(renderWithProps({ title: 'Muffins are the best!' })); expect(driver.titleText()).toEqual('Muffins are the best!'); }); describe('given `actionText` & `onAction` props', function () { it('should render button', function () { var driver = createDriver(renderWithProps({ actionText: 'Muffins are the best!', onAction: function onAction() { return null; } })); expect(driver.actionText()).toEqual('Muffins are the best!'); }); it('should call `onAction` when clicked', function () { var onAction = jest.fn(); var driver = createDriver(renderWithProps({ onAction: onAction, actionText: 'hello' })); driver.clickAction(); expect(onAction).toBeCalled(); }); }); describe('close button', function () { it('should call `onClose` when close btn clicked', function () { var onClose = jest.fn(); var driver = createDriver(renderWithProps({ onClose: onClose })); driver.clickClose(); expect(driver.isCloseButtonDisplayed()).toBeTruthy(); expect(onClose).toBeCalled(); }); it('should not display the close button on demand', function () { var driver = createDriver(renderWithProps({ showCloseButton: false })); expect(driver.isCloseButtonDisplayed()).toBeFalsy(); }); }); describe('Themes', function () { it('should support standard theme by default', function () { var driver = createDriver(renderWithProps()); expect(driver.isWarning()).toBeTruthy(); }); it('should support standard theme', function () { var driver = createDriver(renderWithProps({ appearance: 'standard' })); expect(driver.isStandard()).toBeTruthy(); }); it('should support danger theme', function () { var driver = createDriver(renderWithProps({ appearance: 'danger' })); expect(driver.isDanger()).toBeTruthy(); }); it('should support success theme', function () { var driver = createDriver(renderWithProps({ appearance: 'success' })); expect(driver.isSuccess()).toBeTruthy(); }); it('should support premium theme', function () { var driver = createDriver(renderWithProps({ appearance: 'premium' })); expect(driver.isPremium()).toBeTruthy(); }); }); describe('testkit', function () { it('should exist', function () { expect(isTestkitExists(React.createElement(SectionHelper, null), sectionHelperTestkitFactory)).toBe(true); }); }); describe('enzyme testkit', function () { it('should exist', function () { expect(isEnzymeTestkitExists(React.createElement(SectionHelper, null), enzymeSectionHelperTestkitFactory, mount)).toBe(true); }); }); });