UNPKG

wix-style-react

Version:
157 lines (138 loc) • 5.22 kB
import React from 'react'; import InputAreaWithLabelComposite from './InputAreaWithLabelComposite'; import Label from '../../Label'; import Input from '../../Input'; import InputArea from '../../InputArea'; import AutoComplete from '../../AutoComplete'; import textAreaDriverFactory from '../../TextArea/TextArea.driver'; import textFieldDriverFactory from '../../TextField/TextField.driver'; import autoCompleteCompositeDriverFactory from '../../AutoCompleteComposite/AutoCompleteComposite.driver'; import { createDriverFactory } from 'wix-ui-test-utils/driver-factory'; import Tooltip from '../../Tooltip/Tooltip'; describe('InputAreaWithLabelComposite', function () { var createTextAreaDriver = createDriverFactory(textAreaDriverFactory); var createTextFieldDriver = createDriverFactory(textFieldDriverFactory); var createAutoCompleteDriver = createDriverFactory(autoCompleteCompositeDriverFactory); it('should remove label wrapping when label not given', function () { var driver = createTextFieldDriver(React.createElement( InputAreaWithLabelComposite, null, React.createElement(Input, null) )); expect(driver.hasLabel()).toBe(false); expect(driver.getNumberOfChildren()).toBe(1); }); it('should render Label with Input', function () { var driver = createTextFieldDriver(React.createElement( InputAreaWithLabelComposite, null, React.createElement( Label, null, 'myLabel' ), React.createElement(Input, null) )); expect(driver.hasLabel()).toBe(true); expect(driver.getLabel()).toBe('myLabel'); expect(driver.hasInput()).toBe(true); }); it('should render Label with InputArea', function () { var driver = createTextAreaDriver(React.createElement( InputAreaWithLabelComposite, null, React.createElement(Label, null), React.createElement(InputArea, null) )); expect(driver.hasLabel()).toBe(true); expect(driver.hasInputArea()).toBe(true); }); it('should render Label with AutoComplete', function () { var driver = createAutoCompleteDriver(React.createElement( InputAreaWithLabelComposite, null, React.createElement(Label, null), React.createElement(AutoComplete, null) )); expect(driver.hasLabel()).toBe(true); expect(driver.hasAutoComplete()).toBe(true); }); describe('label attributes', function () { it('should FieldLabelAttributes not exists if all attributes empty or false', function () { var driver = createAutoCompleteDriver(React.createElement( InputAreaWithLabelComposite, null, React.createElement( Label, null, 'label' ), React.createElement(InputArea, null) )); expect(driver.hasFieldLabelAttributes()).toBe(false); }); it('should FieldLabelAttributes exists if required', function () { var driver = createAutoCompleteDriver(React.createElement( InputAreaWithLabelComposite, { required: true }, React.createElement( Label, null, 'label' ), React.createElement(InputArea, null) )); expect(driver.hasFieldLabelAttributes()).toBe(true); }); it('should FieldLabelAttributes exists if required and with one child', function () { var driver = createAutoCompleteDriver(React.createElement( InputAreaWithLabelComposite, { required: true }, React.createElement(InputArea, null) )); expect(driver.hasFieldLabelAttributes()).toBe(true); }); it('should FieldLabelAttributes exists if info', function () { var driver = createAutoCompleteDriver(React.createElement( InputAreaWithLabelComposite, { info: 'info' }, React.createElement( Label, null, 'label' ), React.createElement(InputArea, null) )); expect(driver.hasFieldLabelAttributes()).toBe(true); }); it('should FieldLabelAttributes exists if info and with one child', function () { var driver = createAutoCompleteDriver(React.createElement( InputAreaWithLabelComposite, { info: 'info' }, React.createElement(InputArea, null) )); expect(driver.hasFieldLabelAttributes()).toBe(true); }); it('should FieldLabelAttributes exists if tooltip', function () { var driver = createAutoCompleteDriver(React.createElement( InputAreaWithLabelComposite, { tooltip: React.createElement(Tooltip, { content: 'content' }) }, React.createElement( Label, null, 'label' ), React.createElement(InputArea, null) )); expect(driver.hasFieldLabelAttributes()).toBe(true); }); it('should FieldLabelAttributes exists if tooltip and with one child', function () { var driver = createAutoCompleteDriver(React.createElement( InputAreaWithLabelComposite, { tooltip: React.createElement(Tooltip, { content: 'content' }) }, React.createElement(InputArea, null) )); expect(driver.hasFieldLabelAttributes()).toBe(true); }); }); });