import * as React from 'react'; import { counterBadgeDriverFactory } from './CounterBadge.driver'; import { CounterBadge } from './'; import { createDriverFactory } from 'wix-ui-test-utils/driver-factory'; import { isTestkitExists } from 'wix-ui-test-utils/vanilla'; import { isEnzymeTestkitExists } from 'wix-ui-test-utils/enzyme'; import { stylableCounterBadgeTestkitFactory as counterBadgeTestkitFactory } from '../../testkit'; import { stylableCounterBadgeTestkitFactory as enzymeCounterBadgeTestkitFactory } from '../../testkit/enzyme'; import { mount } from 'enzyme'; import { SKIN, Skin } from './constants'; import Email from 'wix-ui-icons-common/Email'; describe('CounterBadge', () => { const createDriver = createDriverFactory(counterBadgeDriverFactory); describe('children prop', () => { it('should render the children', () => { const driver = createDriver(12); expect(driver.text()).toBe('12'); }); it('should render a number type children', () => { const children = 12; const driver = createDriver({children}); expect(driver.text()).toBe('12'); }); it('should render the children as icon', () => { const driver = createDriver( ); expect(driver.getIcon()).toBeTruthy(); }); it('should render a default empty child', () => { const driver = createDriver(); expect(driver.text()).toBe(''); }); }); describe('skin prop', () => { it('should be general by default', () => { const wrapper = createDriver(12); expect(wrapper.getSkin()).toBe(SKIN.general); }); Object.keys(SKIN).forEach((skin: Skin) => { it(`should be ${skin}`, () => { const wrapper = createDriver( 12 ); expect(wrapper.getSkin()).toBe(skin); }); }); }); describe('width', () => { it('should be wide when content is string with length > 1', () => { const wrapper = createDriver(12); expect(wrapper.isWide()).toBe(true); }); it('should not be wide when content is string with length <= 1', () => { const wrapper = createDriver(1); expect(wrapper.isWide()).toBe(false); }); it('should not be wide when content is an icon', () => { const wrapper = createDriver( ); expect(wrapper.isWide()).toBe(false); }); }); describe('behavior', () => { it('should display 99+ when content is a number > 99', () => { const wrapper = createDriver(777); expect(wrapper.text()).toBe('99+'); }); }); describe('testkit', () => { it('should exist', () => { expect( isTestkitExists( 12, counterBadgeTestkitFactory ) ).toBe(true); }); }); describe('enzyme testkit', () => { it('should exist', () => { expect( isEnzymeTestkitExists( 12, enzymeCounterBadgeTestkitFactory, mount ) ).toBe(true); }); }); });