import * as React from 'react'; import {badgeDriverFactory} from './Badge.driver'; import {Badge} 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 {badgeTestkitFactory} from '../../testkit'; import {badgeTestkitFactory as enzymeBadgeTestkitFactory} from '../../testkit/enzyme'; import {SKIN, TYPE, SIZE, Skin, Type, Size} from './constants'; import Email from 'wix-ui-icons-common/Email'; describe('Badge', () => { const createDriver = createDriverFactory(badgeDriverFactory); describe('type prop', () => { it('should be solid by default', () => { const wrapper = createDriver(Hello); expect(wrapper.getType()).toBe(TYPE.solid); }); Object.keys(TYPE).forEach((type: Type) => { it(`should be ${type}`, () => { const wrapper = createDriver(Hello); expect(wrapper.getType()).toBe(type); }); }); }); describe('skin prop', () => { it('should be general by default', () => { const wrapper = createDriver(Hello); expect(wrapper.getSkin()).toBe(SKIN.general); }); Object.keys(SKIN).forEach((skin: Skin) => { it(`should be ${skin}`, () => { const wrapper = createDriver(Hello); expect(wrapper.getSkin()).toBe(skin); }); }); }); describe('uppercase prop', () => { it('should be uppercase by default', () => { const wrapper = createDriver(Hello); expect(wrapper.isUppercase()).toBeTruthy(); }); it('should be freecase when value is false', () => { const wrapper = createDriver(Hello); expect(wrapper.isUppercase()).toBeFalsy(); }); }); describe('size prop', () => { it('should be medium by default', () => { const wrapper = createDriver(Hello); expect(wrapper.getSize()).toBe(SIZE.medium); }); Object.keys(SIZE).forEach((size: Size) => { it(`should be ${size}`, () => { const wrapper = createDriver(Hello); expect(wrapper.getSize()).toBe(size); }); }); }); describe('onClick prop', () => { it('cursor should be default when no onClick', () => { const wrapper = createDriver(Hello); expect(wrapper.hasClickCursor()).toBeFalsy(); }); it('cursor should be pointer when onClick set', () => { const wrapper = createDriver(e}>Hello); expect(wrapper.hasClickCursor()).toBeTruthy(); }); it('should call event handler on badge click', () => { const handler = jest.fn(); const wrapper = createDriver(handler()}>Hello); wrapper.click(); expect(handler).toHaveBeenCalled(); }); }); describe('children prop', () => { it('should render the text given as a children prop', () => { const wrapper = createDriver(Hello); expect(wrapper.text()).toBe('Hello'); }); it('should not have any icons by default', () => { const wrapper = createDriver(Hello); expect(wrapper.getPrefixIcon()).toBeFalsy(); expect(wrapper.getSuffixIcon()).toBeFalsy(); }); it('should have prefix icon', () => { const wrapper = createDriver(}>Hello); expect(wrapper.getPrefixIcon()).toBeTruthy(); }); it('should have suffix icon', () => { const wrapper = createDriver(}>Hello); expect(wrapper.getSuffixIcon()).toBeTruthy(); }); }); describe('testkit', () => { it('should exist', () => { expect(isTestkitExists(Hello, badgeTestkitFactory)).toBe(true); }); }); describe('enzyme testkit', () => { it('should exist', () => { expect(isEnzymeTestkitExists(Hello, enzymeBadgeTestkitFactory, mount)).toBe(true); }); }); });