/// import { mount } from 'cypress/react' import { TextInput } from './TextInput' describe('', () => { it('renders with default props', () => { mount() cy.get('input').should('have.attr', 'type', 'text') cy.get('input').should('have.attr', 'placeholder', '') cy.get('input').should('have.attr', 'required') cy.get('input').should('have.class', 'tw-input') cy.get('input').should('have.class', 'tw-input-bordered') cy.get('input').should('have.class', 'tw:w-full') }) it('renders with given labelTitle', () => { mount() cy.get('label').should('contain.text', 'Test Title') }) it('renders with given type', () => { mount() cy.get('input').should('have.attr', 'type', 'email') }) it('accepts user input', () => { mount() cy.get('input[name="test-input"]').type('Hello Test') cy.get('input[name="test-input"]').should('have.value', 'Hello Test') }) it('renders a label, if labelTitle is set', () => { mount() cy.contains('Test Label').should('exist') }) it('handles default value correctly', () => { mount() cy.get('input[name="test-input"]').should('have.value', 'Default Value') }) it('calls updateFormValue on change', () => { const onChangeSpy = cy.spy().as('updateFormValueSpy') mount() cy.get('input[name="test-input"]').type('Test') cy.get('@updateFormValueSpy').should('have.been.calledWith', 'Test') }) it('accepts a specific input type', () => { mount() cy.get('input[name="test-input"]').should('have.attr', 'type', 'email') }) it('respects the autocomplete attribute', () => { mount() cy.get('input[name="test-input"]').should('have.attr', 'autocomplete', 'off') }) it('updates form value on change', () => { const updateFormValue = cy.stub() mount() cy.get('input').type('Hello') cy.wrap(updateFormValue).should('have.been.calledWith', 'Hello') }) })