/* global describe it expect */ import * as React from 'react'; import {timePickerDriverFactory} from './TimePicker.driver'; import {TimePicker} from './TimePicker'; import {createDriverFactory} from 'wix-ui-test-utils/driver-factory'; import {ReactDOMTestContainer} from 'wix-ui-core/dist/test/dom-test-container'; import {timePickerTestkitFactory} from '../../testkit'; import {timePickerTestkitFactory as enzymeTimePickerTestkitFactory} from '../../testkit/enzyme'; import {runTestkitExistsSuite} from '../../common/testkitTests'; describe('TimePicker', () => { const createDriver = createDriverFactory(timePickerDriverFactory); describe('time display', () => { it('should render given value', () => { const driver = createDriver(); expect(driver.getValue()).toBe('12:34'); }); it('should render --:-- when no value given', () => { const driver = createDriver(); expect(driver.getValue()).toBe('--:--'); }); it('should allow rendering time in 24 hours mode', () => { const props = { value: '23:59', disableAmPm: true }; const driver = createDriver(); expect(driver.getValue()).toBe(props.value); }); it('should display am/pm indicator when in 12 hours mode', () => { const props = { value: '15:04', disableAmPm: false }; const driver = createDriver(); expect(driver.isAmPmIndicatorExist()).toBeTruthy(); expect(driver.getValue()).toBe('03:04'); }); it('should display AM indicator when in 12 hours mode and the time displayed is AM', () => { const props = { value: '11:59', disableAmPm: false }; const driver = createDriver(); expect(driver.getAmPmIndicatorText()).toBe('am'); }); it('should display AM indicator when in 12 hours mode and the time displayed is PM', () => { const props = { value: '19:27', disableAmPm: false }; const driver = createDriver(); expect(driver.getAmPmIndicatorText()).toBe('pm'); }); }); describe('`width` prop', () => { it('should not pass inline styles prop', () => { const driver = createDriver(); expect(driver.getInlineStyle().width).toEqual('432px'); }); }); describe('`style` prop', () => { it('should pass through the style prop', () => { const driver = createDriver(); expect(driver.getInlineStyle().width).toEqual('543px'); }); it('should not override the width prop (if passed)', () => { const driver = createDriver(); expect(driver.getInlineStyle().width).toEqual('111px'); }); }); it('should support focus() and blur() methods', async () => { const container = new ReactDOMTestContainer().unmountAfterEachTest(); container.create(); const reactInstance = await container.renderWithRef(); const inputElement = container.componentNode.querySelector('input'); expect(document.activeElement).not.toBe(inputElement); reactInstance.focus(); expect(document.activeElement).toBe(inputElement); reactInstance.blur(); expect(document.activeElement).not.toBe(inputElement); }); runTestkitExistsSuite({ Element: , testkitFactory: timePickerTestkitFactory, enzymeTestkitFactory: enzymeTimePickerTestkitFactory }); });