import { beVisible, beHidden, haveAttribute, haveClasses, notHaveClasses, haveText, contain, notContain, html, notBeVisible, notHaveAttribute, notExist, haveFocus, test, haveValue} from '../../../utils' test.only('it works with x-model', [html`

No people match your query.

`], ({ get }) => { get('ul').should(notBeVisible()) get('button').click() get('ul').should(beVisible()) get('button').click() get('ul').should(notBeVisible()) get('button').click() get('[option="2"]').click() get('ul').should(notBeVisible()) get('input').should(haveValue('Arlene Mccoy')) get('article').should(haveText('Arlene Mccoy')) get('button').click() get('ul').should(contain('Wade Cooper')) .should(contain('Arlene Mccoy')) .should(contain('Devon Webb')) get('[option="3"]').click() get('ul').should(notBeVisible()) get('input').should(haveValue('Devon Webb')) get('article').should(haveText('Devon Webb')) get('button').click() get('ul').should(contain('Wade Cooper')) .should(contain('Arlene Mccoy')) .should(contain('Devon Webb')) get('[option="1"]').click() get('ul').should(notBeVisible()) get('input').should(haveValue('Wade Cooper')) get('article').should(haveText('Wade Cooper')) }, ) test('it works with internal state', [html`
`], ({ get }) => { get('ul').should(notBeVisible()) get('button') .should(haveText('Select Person')) .click() get('ul').should(beVisible()) get('button').click() get('ul').should(notBeVisible()) get('button').click() get('[option="2"]').click() get('ul').should(notBeVisible()) get('button').should(haveText('Arlene Mccoy')) get('input').should(haveValue('Arlene Mccoy')) }, ) test('$combobox/$comboboxOption', [html`

`], ({ get }) => { get('article').should(haveText('')) get('[option="5"]').should(haveClasses(['disabled'])) get('button') .should(haveText('Select Person')) .click() get('[option="1"]').should(haveClasses(['active'])) get('input').type('{downarrow}') get('article').should(haveText('Arlene Mccoy')) get('p').should(haveText('1')) get('[option="2"]').should(haveClasses(['active'])) get('button').should(haveText('Select Person')) get('[option="2"]').click() get('button').should(haveText('Arlene Mccoy')) get('[option="2"]').should(haveClasses(['selected'])) }, ) test('"name" prop', [html`
`], ({ get }) => { get('input').should(haveAttribute('value', 'null')) get('button').click() get('input').should(haveAttribute('value', 'null')) get('[option="2"]').click() get('input').should(beHidden()) .should(haveAttribute('name', 'person')) .should(haveAttribute('value', '2')) .should(haveAttribute('type', 'hidden')) get('button').click() get('[option="4"]').click() get('input').should(beHidden()) .should(haveAttribute('name', 'person')) .should(haveAttribute('value', '4')) .should(haveAttribute('type', 'hidden')) }, ); test('"name" prop with object value', [html`
`], ({ get }) => { get('input[name="person"]').should(haveAttribute('value', 'null')) get('button').click() get('[name="person[id]"]').should(notExist()) get('[option="2"]').click() get('input[name="person"]').should(notExist()) get('[name="person[id]"]').should(beHidden()) .should(haveAttribute('value', '2')) .should(haveAttribute('type', 'hidden')) get('[name="person[name]"]').should(beHidden()) .should(haveAttribute('value', 'Arlene Mccoy')) .should(haveAttribute('type', 'hidden')) get('button').click() get('[option="4"]').click() get('[name="person[id]"]').should(beHidden()) .should(haveAttribute('value', '4')) .should(haveAttribute('type', 'hidden')) get('[name="person[name]"]').should(beHidden()) .should(haveAttribute('value', 'Tom Cook')) .should(haveAttribute('type', 'hidden')) }, ); test('"default-value" prop', [html`
`], ({ get }) => { get('input[name="person"]').should(beHidden()) .should(haveAttribute('value', '2')) .should(haveAttribute('type', 'hidden')) }, ); test('"multiple" prop', [html`
`], ({ get }) => { get('button').click() get('[option="2"]').click() get('ul').should(beVisible()) get('button').should(haveText('2')) get('[option="4"]').click() get('button').should(haveText('2,4')) get('ul').should(beVisible()) get('[option="4"]').click() get('button').should(haveText('2')) get('ul').should(beVisible()) }, ); test('"multiple" and "name" props together', [html`
`], ({ get }) => { // get('input[name="people"]').should(haveAttribute('value', 'null')) get('button').click() get('[name="people[0][id]"]').should(notExist()) get('[option="2"]').click() get('ul').should(beVisible()) get('button').should(haveText('2')) get('input[name="people"]').should(notExist()) get('[name="people[0][id]"]').should(beHidden()) .should(haveAttribute('value', '2')) .should(haveAttribute('type', 'hidden')) get('[name="people[0][name]"]').should(beHidden()) .should(haveAttribute('value', 'Arlene Mccoy')) .should(haveAttribute('type', 'hidden')) get('[option="4"]').click() get('[name="people[0][id]"]').should(beHidden()) .should(haveAttribute('value', '2')) .should(haveAttribute('type', 'hidden')) get('[name="people[0][name]"]').should(beHidden()) .should(haveAttribute('value', 'Arlene Mccoy')) .should(haveAttribute('type', 'hidden')) get('[name="people[1][id]"]').should(beHidden()) .should(haveAttribute('value', '4')) .should(haveAttribute('type', 'hidden')) get('[name="people[1][name]"]').should(beHidden()) .should(haveAttribute('value', 'Tom Cook')) .should(haveAttribute('type', 'hidden')) get('button').should(haveText('2,4')) get('ul').should(beVisible()) get('[option="4"]').click() get('[name="people[0][id]"]').should(beHidden()) .should(haveAttribute('value', '2')) .should(haveAttribute('type', 'hidden')) get('[name="people[0][name]"]').should(beHidden()) .should(haveAttribute('value', 'Arlene Mccoy')) .should(haveAttribute('type', 'hidden')) get('[name="people[1][id]"]').should(notExist()) get('[name="people[1][name]"]').should(notExist()) get('button').should(haveText('2')) get('ul').should(beVisible()) }, ); test('keyboard controls', [html`
`], ({ get }) => { get('.active').should(notExist()) get('button').click() get('[options]') .should(beVisible()) get('input').should(haveFocus()) get('[option="1"]') .should(haveClasses(['active'])) get('input') .type('{downarrow}') get('[option="2"]') .should(haveClasses(['active'])) get('input') .type('{downarrow}') get('[option="4"]') .should(haveClasses(['active'])) get('input') .type('{uparrow}') get('[option="2"]') .should(haveClasses(['active'])) get('input') .type('{home}') get('[option="1"]') .should(haveClasses(['active'])) get('input') .type('{end}') get('[option="10"]') .should(haveClasses(['active'])) get('input') .type('{pageUp}') get('[option="1"]') .should(haveClasses(['active'])) get('input') .type('{pageDown}') get('[option="10"]') .should(haveClasses(['active'])) get('input') .tab() .should(haveFocus()) get('[options]') .should(beVisible()) get('input') .type('{esc}') get('[options]') .should(notBeVisible()) }, ) test('changing value manually changes internal state', [html`
`], ({ get }) => { get('[select-tim]').click() get('[option="4"]').should(haveClasses(['selected'])) get('[option="1"]').should(notHaveClasses(['selected'])) get('[toggle]').should(haveText('4')) }, ) test('has accessibility attributes', [html`
`], ({ get }) => { get('button') .should(haveAttribute('aria-haspopup', 'true')) .should(haveAttribute('aria-labelledby', 'alpine-combobox-label-1 alpine-combobox-button-1')) .should(haveAttribute('aria-expanded', 'false')) .should(notHaveAttribute('aria-controls')) .should(haveAttribute('id', 'alpine-combobox-button-1')) .click() .should(haveAttribute('aria-expanded', 'true')) .should(haveAttribute('aria-controls', 'alpine-combobox-options-1')) get('[options]') .should(haveAttribute('role', 'combobox')) .should(haveAttribute('id', 'alpine-combobox-options-1')) .should(haveAttribute('aria-labelledby', 'alpine-combobox-label-1')) .should(notHaveAttribute('aria-activedescendant')) .should(haveAttribute('aria-activedescendant', 'alpine-combobox-option-1')) get('[option="1"]') .should(haveAttribute('role', 'option')) .should(haveAttribute('id', 'alpine-combobox-option-1')) .should(haveAttribute('tabindex', '-1')) .should(haveAttribute('aria-selected', 'false')) get('[option="2"]') .should(haveAttribute('role', 'option')) .should(haveAttribute('id', 'alpine-combobox-option-2')) .should(haveAttribute('tabindex', '-1')) .should(haveAttribute('aria-selected', 'false')) get('input') .type('{downarrow}') .should(haveAttribute('aria-activedescendant', 'alpine-combobox-option-2')) get('[option="2"]') .click() .should(haveAttribute('aria-selected', 'true')) }, ) test('"static" prop', [html`
`], ({ get }) => { get('ul').should(notBeVisible()) get('[normal-toggle]') .should(haveText('Select Person')) .click() get('ul').should(notBeVisible()) get('[real-toggle]').click() get('ul').should(beVisible()) get('[option="2"]').click() get('ul').should(beVisible()) get('[normal-toggle]').should(haveText('Arlene Mccoy')) }, )