import * as React from 'react'; import {toggleSwitchDriverFactory} from './ToggleSwitch.driver'; import {ToggleSwitch} from './'; import {createDriverFactory} from 'wix-ui-test-utils/driver-factory'; import {isEnzymeTestkitExists} from 'wix-ui-test-utils/enzyme'; import {isTestkitExists} from 'wix-ui-test-utils/vanilla'; import {mount} from 'enzyme'; import {toggleSwitchTestkitFactory} from '../../testkit'; import {toggleSwitchTestkitFactory as enzymeToggleSwitchTestkitFactory} from '../../testkit/enzyme'; import {SKINS, SIZES, Skin, Size} from './constants'; describe('ToggleSwitch', () => { const createDriver = createDriverFactory(toggleSwitchDriverFactory); describe('skin prop', () => { it(`should be ${SKINS.standard} by default`, () => { const wrapper = createDriver(); expect(wrapper.getSkin()).toBe(SKINS.standard); }); Object.keys(SKINS).forEach((skin: Skin) => { it(`should be ${skin}`, () => { const wrapper = createDriver(); expect(wrapper.getSkin()).toBe(skin); }); }); }); describe('size prop', () => { it(`should be ${SIZES.large} by default`, () => { const wrapper = createDriver(); expect(wrapper.getSize()).toBe(SIZES.large); }); Object.keys(SIZES).forEach((size: Size) => { it(`should be ${size}`, () => { const wrapper = createDriver(); expect(wrapper.getSize()).toBe(size); }); }); }); describe('knobIcons', () => { const getSvgViewBoxSize = wrapper => Number(wrapper.getKnobIcon().querySelector('svg').getAttribute('viewBox').slice(4, 6)); describe('checkedIcon', () => { it('should be bigger when when size=large comparing to size=medium', () => { const largeIconwrapper = createDriver(); const mediumIconWrapper = createDriver(); const largeViewBoxSize = getSvgViewBoxSize(largeIconwrapper); const mediumViewBoxSize = getSvgViewBoxSize(mediumIconWrapper); expect(largeViewBoxSize).toBeGreaterThan(mediumViewBoxSize); }); it('should not be visible when size=small', () => { const wrapper = createDriver(); expect(wrapper.hasKnobIcon()).toBe(false); }); }); describe('uncheckedIcon', () => { it('should be bigger when when size=large comparing to size=medium', () => { const largeIconwrapper = createDriver(); const mediumIconWrapper = createDriver(); const largeViewBoxSize = getSvgViewBoxSize(largeIconwrapper); const mediumViewBoxSize = getSvgViewBoxSize(mediumIconWrapper); expect(largeViewBoxSize).toBeGreaterThan(mediumViewBoxSize); }); it('should not be visible when size=small', () => { const wrapper = createDriver(); expect(wrapper.hasKnobIcon()).toBe(false); }); }); }); describe('block props', () => { it('should not pass inline styles prop', () => { const styles = {root: {color: 'green'}}; const wrapper = createDriver(); expect(wrapper.getRootStyles().color).not.toBe('green'); }); }); describe('testkit', () => { it('should exist', () => { expect(isTestkitExists(, toggleSwitchTestkitFactory)).toBe(true); }); }); describe('enzyme testkit', () => { it('should exist', () => { expect(isEnzymeTestkitExists(, enzymeToggleSwitchTestkitFactory, mount)).toBe(true); }); }); });