wcs-core 7.2.1 → 7.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -226,6 +226,58 @@ describe('Select component', () => {
226
226
  // We check that all options are available to ensure the filter is no longer active
227
227
  expect(availableOptions.length).toBe(4);
228
228
  });
229
+ it('[Autocomplete] should not opened when initial value is set', async () => {
230
+ // Given - When
231
+ const page = await newE2EPage();
232
+ await setWcsContent(page, `
233
+ <wcs-select autocomplete value="1">
234
+ <wcs-select-option value="1">One</wcs-select-option>
235
+ <wcs-select-option value="2">Two</wcs-select-option>
236
+ <wcs-select-option value="3">Three</wcs-select-option>
237
+ <wcs-select-option value="4">Four</wcs-select-option>
238
+ </wcs-select>
239
+ `);
240
+ const select = await page.find('wcs-select');
241
+ // Then
242
+ expect(select).not.toHaveClass('expanded');
243
+ });
244
+ it('[Autocomplete] should not opened when set value programmatically', async () => {
245
+ // Given - When
246
+ const page = await newE2EPage();
247
+ await setWcsContent(page, `
248
+ <wcs-select autocomplete value="1">
249
+ <wcs-select-option value="1">One</wcs-select-option>
250
+ <wcs-select-option value="2">Two</wcs-select-option>
251
+ <wcs-select-option value="3">Three</wcs-select-option>
252
+ <wcs-select-option value="4">Four</wcs-select-option>
253
+ </wcs-select>
254
+ `);
255
+ const select = await page.find('wcs-select');
256
+ select.setProperty('value', '1');
257
+ await page.waitForChanges();
258
+ // Then
259
+ expect(select).not.toHaveClass('expanded');
260
+ });
261
+ it('[Autocomplete] should opened when set value with user interaction', async () => {
262
+ // Given
263
+ const page = await newE2EPage();
264
+ await setWcsContent(page, `
265
+ <wcs-select autocomplete>
266
+ <wcs-select-option value="1">One</wcs-select-option>
267
+ <wcs-select-option value="2">Two</wcs-select-option>
268
+ <wcs-select-option value="3">Three</wcs-select-option>
269
+ <wcs-select-option value="4">Four</wcs-select-option>
270
+ </wcs-select>
271
+ `);
272
+ const select = await page.find('wcs-select');
273
+ const autocompleteInput = await page.find('wcs-select >>> input.autocomplete-field');
274
+ // When
275
+ await autocompleteInput.focus();
276
+ await page.keyboard.type('O');
277
+ await page.waitForChanges();
278
+ // Then
279
+ expect(select).toHaveClass('expanded');
280
+ });
229
281
  it(`Propagate wcsSelectChangeEvent when a new value is selected`, async () => {
230
282
  // Given
231
283
  const page = await newE2EPage({
@@ -1 +1 @@
1
- {"version":3,"file":"select.e2e.js","sourceRoot":"","sources":["../../../src/components/select/select.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { newE2EPage } from '@stencil/core/testing';\nimport { setWcsContent } from \"../../utils/tests\";\n\ndescribe('Select component', () => {\n it('Expands when clicked', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n\n // When\n await select.click();\n\n // Then\n expect(select).toHaveClass('expanded');\n });\n\n it('Expands using the open method', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n\n // When\n await select.callMethod('open');\n await page.waitForChanges();\n\n // Then\n expect(select).toHaveClass('expanded');\n });\n\n it('Closes using the open method', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n\n // When\n await select.click();\n await select.callMethod('close');\n await page.waitForChanges();\n\n // Then\n expect(select).not.toHaveClass('expanded');\n });\n\n it('Closes when user click outside', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n </wcs-select>\n <div class=\"outside\"></div>\n `);\n const select = await page.find('wcs-select');\n\n // When\n await select.click();\n // XXX: Page.click() doesn't work\n await page.$eval('div.outside', (elem: HTMLDivElement) => elem.click());\n await page.waitForChanges();\n\n // Then\n expect(select).not.toHaveClass('expanded');\n });\n\n it('Closes when user click on another select', async () => {\n // Given\n const page = await newE2EPage();\n await page.setViewport({width: 1024, height: 1600});\n await setWcsContent(page, `\n <div style=\"display: flex\">\n <wcs-select id=\"select-1\">\n <wcs-select-option value=\"1\">One</wcs-select-option>\n <wcs-select-option value=\"2\">Two</wcs-select-option>\n <wcs-select-option value=\"3\">Three</wcs-select-option>\n </wcs-select>\n <wcs-select id=\"select-2\">\n <wcs-select-option value=\"1\">One</wcs-select-option>\n <wcs-select-option value=\"2\">Two</wcs-select-option>\n <wcs-select-option value=\"3\">Three</wcs-select-option>\n </wcs-select>\n </div>\n `);\n const select1 = await page.find('#select-1');\n const select2 = await page.find('#select-2');\n\n // When\n await select1.click();\n await page.waitForChanges();\n\n // Then\n expect(select1).toHaveClass('expanded');\n\n await select2.click(); // select another select component in page\n expect(select1).not.toHaveClass('expanded');\n expect(select2).toHaveClass('expanded');\n });\n\n it('Let us select a value and fire event correctly', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n const firstSelectOption = await page.find('wcs-select > wcs-select-option');\n const label = await page.find('wcs-select >>> label');\n const changeSpy = await select.spyOnEvent('wcsChange');\n\n // When\n await select.click();\n await firstSelectOption.click();\n await page.waitForChanges();\n\n // Then\n expect(changeSpy).toHaveReceivedEventTimes(1);\n expect(changeSpy).toHaveReceivedEventDetail({ value: '1' });\n expect(label.innerText).toBe('One');\n });\n\n describe('select event', () => {\n it('should not emit event if we set the value in js', async () => {\n // Given\n const page = await newE2EPage({\n html: `\n <wcs-select value=\"1\">\n <wcs-select-option value=\"1\">One</wcs-select-option>\n <wcs-select-option value=\"2\">Two</wcs-select-option>\n </wcs-select>\n `\n });\n const select = await page.find('wcs-select');\n const changeSpy = await select.spyOnEvent('wcsChange');\n\n // When\n await select.setProperty('value', '2');\n await page.waitForChanges();\n\n // Then\n expect(changeSpy).toHaveReceivedEventTimes(0);\n });\n });\n\n describe('setSelectedValue', () => {\n it('Let user change selected value programmatically', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n <wcs-select-option value=\"2\">Two</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n\n // When\n await select.setProperty('value', '2');\n await page.waitForChanges();\n\n // Then\n expect(select.shadowRoot.querySelector('.wcs-select-value')).toEqualText(\"Two\");\n });\n\n it('Let user change selected values programmatically', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select multiple>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n <wcs-select-option value=\"2\">Two</wcs-select-option>\n <wcs-select-option value=\"3\">Three</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n\n // When\n const newValue = ['2', '3'];\n await select.setProperty('value', newValue);\n await page.waitForChanges();\n\n // Then\n expect(select.shadowRoot.querySelector('.wcs-select-value')).toEqualText(\"Two, Three\");\n });\n });\n\n\n it('Is focusable', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n\n // When\n await select.focus();\n const focusedEl = await page.find('wcs-select:focus');\n\n // Then\n expect(focusedEl).toBeDefined();\n });\n\n it('[Autocomplete] Input field is focusable', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select autocomplete=\"true\">\n <wcs-select-option value=\"1\">One</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n\n // When\n await select.focus();\n const focusedEl = await page.find('wcs-select > input.autocomplete-field:focus');\n\n // Then\n expect(focusedEl).toBeDefined();\n })\n\n it('[Autocomplete] filter is cleared when the select value is set to a falsy value', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select autocomplete>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n <wcs-select-option value=\"2\">Two</wcs-select-option>\n <wcs-select-option value=\"3\">Three</wcs-select-option>\n <wcs-select-option value=\"4\">Four</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n\n // When\n await select.click();\n\n await page.keyboard.type('One');\n const firstSelectOption = await page.find('wcs-select > wcs-select-option');\n\n await firstSelectOption.click();\n await page.waitForChanges();\n\n select.setProperty('value', '');\n await page.waitForChanges();\n\n // Then\n await select.click();\n const availableOptions = await page.findAll('wcs-select > *:not([hidden])');\n // We check that all options are available to ensure the filter is no longer active\n expect(availableOptions.length).toBe(4);\n });\n\n it(`Propagate wcsSelectChangeEvent when a new value is selected`, async () => {\n // Given\n const page = await newE2EPage({\n html: `\n <wcs-select>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n </wcs-select>\n `\n });\n const select = await page.find('wcs-select');\n const opt = await page.find('wcs-select > wcs-select-option');\n const changeSpy = await select.spyOnEvent('wcsChange');\n // When\n await select.click();\n await opt.click();\n await page.waitForChanges();\n\n // Then\n expect(changeSpy).toHaveReceivedEventTimes(1);\n expect(changeSpy).toHaveReceivedEventDetail({ value: '1' });\n });\n\n xit(`Can have pre-selected option`, async () => {\n // TODO:\n });\n\n describe('Disabled', () => {\n it('Must not expand when disabled', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select disabled>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n\n // When\n await select.click();\n\n // Then\n expect(select).not.toHaveClass('expanded');\n });\n\n it('Is not focusable when disabled', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select disabled>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n\n // When\n await select.focus();\n const focusedEl = await page.find('wcs-select:focus');\n\n // Then\n expect(focusedEl).toBeNull();\n });\n });\n\n describe('Options', () => {\n it('Adds selected attribute to selected option', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n const option = await page.find('wcs-select > wcs-select-option');\n\n // When\n await select.click();\n await option.click();\n await page.waitForChanges();\n\n // Then\n expect(option).toHaveAttribute('selected');\n });\n\n it(`Removes selected attribute from previously selected options`, async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n <wcs-select-option value=\"2\">Two</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n const [opt1, opt2] = (await page.findAll('wcs-select > wcs-select-option'));\n\n // When\n await select.click();\n await opt1.click();\n await select.click(); // As it is not multiple we need to open it once again\n await opt2.click();\n await page.waitForChanges();\n\n // Then\n expect(opt1).not.toHaveAttribute('selected');\n expect(opt2).toHaveAttribute('selected');\n });\n\n it(`Must not let a user select a disabled option`, async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select>\n <wcs-select-option value=\"1\" disabled>One</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n const option = await page.find('wcs-select > wcs-select-option');\n\n // When\n await select.click();\n await option.click();\n await page.waitForChanges();\n\n // Then\n expect(select).not.toHaveAttribute('value');\n });\n });\n\n describe('Multiple', () => {\n it(`Musn't close when we select a value`, async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select multiple>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n const firstSelectOption = await page.find('wcs-select > wcs-select-option');\n\n // When\n await select.click();\n await firstSelectOption.click();\n await page.waitForChanges();\n\n // Then\n expect(select).toHaveClass('expanded');\n });\n\n it(`Allows to select multiple values`, async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select multiple>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n <wcs-select-option value=\"2\">Two</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n const changeSpy = await select.spyOnEvent('wcsChange');\n const [opt1, opt2] = (await page.findAll('wcs-select > wcs-select-option'));\n\n // When\n await select.click();\n await opt1.click();\n await opt2.click();\n await page.waitForChanges();\n\n // Then\n expect(changeSpy).toHaveReceivedEventTimes(2);\n expect(changeSpy).toHaveReceivedEventDetail({ value: ['1', '2'] });\n });\n\n\n it('Allows to unselect a value', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select multiple>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n <wcs-select-option value=\"2\">Two</wcs-select-option>\n <wcs-select-option value=\"3\">Three</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n const changeSpy = await select.spyOnEvent('wcsChange');\n const [opt1, opt2] = (await page.findAll('wcs-select > wcs-select-option'));\n\n // When\n await select.click();\n await opt1.click();\n await opt2.click();\n await opt1.click();\n await page.waitForChanges();\n\n // Then\n expect(changeSpy).toHaveReceivedEventTimes(3);\n expect(changeSpy).toHaveReceivedEventDetail({ value: ['2'] });\n });\n it(`Displays all values separated by a comma`, async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select multiple>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n <wcs-select-option value=\"2\">Two</wcs-select-option>\n <wcs-select-option value=\"3\">Three</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n const [opt1, opt2, opt3] = (await page.findAll('wcs-select > wcs-select-option'));\n const label = await page.find('wcs-select >>> label');\n\n // When\n await select.click();\n await opt1.click();\n await opt2.click();\n await opt3.click();\n await page.waitForChanges();\n\n // Then\n expect(label.innerText).toEqual('One, Two, Three');\n });\n\n it(`Tells the option that they should display as multiple`, async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select multiple>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n </wcs-select>\n `);\n const option = await page.find('wcs-select > wcs-select-option');\n\n // When\n await page.waitForChanges();\n\n // Then\n expect(option).toHaveAttribute('multiple');\n });\n\n it(`Propagate event when values are select`, async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select multiple>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n <wcs-select-option value=\"2\">Two</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n const [opt1, opt2] = (await page.findAll('wcs-select > wcs-select-option'));\n const changeSpy = await select.spyOnEvent('wcsChange');\n\n // When\n await select.click();\n await opt1.click();\n await opt2.click();\n\n // Then\n expect(changeSpy).toHaveReceivedEventTimes(2);\n expect(changeSpy).toHaveReceivedEventDetail({ value: ['1', '2'] });\n });\n });\n\n describe('Keyboard navigation when select is closed and not multiple', () => {\n let page;\n let wcsSelect;\n\n beforeEach(async () => {\n // Given\n page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select>\n <wcs-select-option value=\"option1\" disabled>Option 1</wcs-select-option>\n <wcs-select-option value=\"option2\">Option 2</wcs-select-option>\n <wcs-select-option value=\"option3\">Option 3</wcs-select-option>\n </wcs-select>\n `);\n wcsSelect = await page.find('wcs-select');\n });\n\n it('select value of first option enabled on Down Arrow key pressed', async () => {\n // Given\n const firstDisplayedValueOfEnableOption = \"Option 2\";\n const firstValueOfEnableOption = \"option2\";\n const displayValue: HTMLLabelElement = await page.find('wcs-select >>> label');\n const changeSpy = await wcsSelect.spyOnEvent('wcsChange');\n\n // When\n await wcsSelect.focus();\n await page.keyboard.press('ArrowDown');\n await page.waitForChanges();\n\n // Then\n expect(displayValue.innerText).toEqual(firstDisplayedValueOfEnableOption);\n expect(changeSpy).toHaveReceivedEventTimes(1);\n expect(changeSpy).toHaveReceivedEventDetail({ value: firstValueOfEnableOption });\n });\n it('select value of last option enabled on PageDown key pressed', async () => {\n // Given\n const lastValueOfEnableOption = \"Option 3\";\n const displayValue: HTMLLabelElement = await page.find('wcs-select >>> label');\n const changeSpy = await wcsSelect.spyOnEvent('wcsChange');\n\n // When\n await wcsSelect.focus();\n await page.keyboard.press('PageDown');\n await page.waitForChanges();\n\n // Then\n expect(displayValue.innerText).toEqual(lastValueOfEnableOption);\n expect(changeSpy).toHaveReceivedEventTimes(1);\n expect(changeSpy).toHaveReceivedEventDetail({ value: 'option3' });\n });\n it('select value of first option enabled on PageUp key pressed', async () => {\n // Given\n const fistDisplayedValueOfEnableOption = \"Option 2\";\n const firstValueOfEnableOption = \"option2\";\n const displayValue: HTMLLabelElement = await page.find('wcs-select >>> label');\n const changeSpy = await wcsSelect.spyOnEvent('wcsChange');\n\n // When\n await wcsSelect.focus();\n await page.keyboard.press('PageUp');\n await page.waitForChanges();\n\n // Then\n expect(displayValue.innerText).toEqual(fistDisplayedValueOfEnableOption);\n expect(changeSpy).toHaveReceivedEventTimes(1);\n expect(changeSpy).toHaveReceivedEventDetail({ value: firstValueOfEnableOption });\n });\n it('open the overlay on Enter key press', async () => {\n // When\n await wcsSelect.focus();\n await page.keyboard.press('Enter');\n await page.waitForChanges();\n\n // Then\n expect(wcsSelect).toHaveClass(\"expanded\");\n });\n it('open the overlay on Alt + Down Arrow key pressed', async () => {\n // When\n await wcsSelect.focus();\n await page.keyboard.down('Alt');\n await page.keyboard.press('ArrowDown');\n await page.keyboard.up('Alt');\n await page.waitForChanges();\n\n // Then\n expect(wcsSelect).toHaveClass(\"expanded\");\n\n });\n\n it('focuses last selected option when opening with keyboard after programmatic value change', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select>\n <wcs-select-option value=\"option1\">Option 1</wcs-select-option>\n <wcs-select-option value=\"option2\">Option 2</wcs-select-option>\n <wcs-select-option value=\"option3\">Option 3</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n \n // When\n await select.setProperty('value', 'option2');\n await page.waitForChanges();\n await select.focus();\n await page.keyboard.press('Enter'); // Open select with keyboard\n await page.waitForChanges();\n\n // Then\n const focusedOption = await page.find('wcs-select-option:focus');\n expect(focusedOption.getAttribute('value')).toBe('option2');\n });\n });\n describe('Keyboard navigation when select is opened and not multiple', () => {\n let page;\n let wcsSelect;\n let selectOptions;\n\n beforeEach(async () => {\n // Given\n page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select>\n <wcs-select-option value=\"option1\" disabled>Option 1</wcs-select-option>\n <wcs-select-option value=\"option2\">Option 2</wcs-select-option>\n <wcs-select-option value=\"option3\">Option 3</wcs-select-option>\n </wcs-select>\n `);\n wcsSelect = await page.find('wcs-select');\n selectOptions = await page.findAll('wcs-select > wcs-select-option');\n // Open by default the overlay for each test\n await wcsSelect.focus();\n await page.keyboard.press('Enter');\n await page.waitForChanges();\n });\n\n it('close the overlay on Escape key pressed and focus select control', async () => {\n // Given\n // The overlay is open (makes in beforeEach)\n\n // When\n await page.keyboard.press('Escape');\n const focusedEl = await page.find('wcs-select:focus');\n await page.waitForChanges();\n\n // Then\n expect(wcsSelect).not.toHaveClass(\"expanded\");\n expect(focusedEl).toBeDefined();\n });\n\n it('close the overlay on Alt + ArrowUp keys pressed and focus select control', async () => {\n // Given\n // The overlay is open (makes in beforeEach)\n\n // When\n await page.keyboard.down('Alt');\n await page.keyboard.press('ArrowUp');\n await page.keyboard.up('Alt');\n const focusedEl = await page.find('wcs-select:focus');\n await page.waitForChanges();\n\n // Then\n expect(wcsSelect).not.toHaveClass(\"expanded\");\n expect(focusedEl).toBeDefined();\n });\n it('close the overlay on Tab key pressed', async () => {\n // Given\n // The overlay is open (makes in beforeEach)\n\n // When\n await page.keyboard.press('Tab');\n const focusedEl = await page.find('wcs-select:focus');\n await page.waitForChanges();\n\n // Then\n expect(wcsSelect).not.toHaveClass(\"expanded\");\n expect(focusedEl).toBeDefined();\n });\n it('close the overlay on Tab + Shift keys pressed', async () => {\n // Given\n // The overlay is open (makes in beforeEach)\n\n // When\n await page.keyboard.down('Shift');\n await page.keyboard.press('Tab');\n await page.keyboard.up('Shift');\n await page.waitForChanges();\n\n // Then\n expect(wcsSelect).not.toHaveClass(\"expanded\");\n const focusedSelect = await page.find('wcs-select:focus');\n expect(focusedSelect).toBeDefined();\n });\n it('choose the current option on Enter key pressed', async () => {\n // Given\n // The overlay is open (makes in beforeEach)\n const firstDisplayedValueOfEnableOption = \"Option 2\";\n const firstValueOfEnabledOption = \"option2\";\n const displayValue: HTMLLabelElement = await page.find('wcs-select >>> label');\n const changeSpy = await wcsSelect.spyOnEvent('wcsChange');\n\n // When\n await page.keyboard.press('Enter');\n await page.waitForChanges();\n\n // Then\n expect(displayValue.innerText).toEqual(firstDisplayedValueOfEnableOption);\n expect(changeSpy).toHaveReceivedEventTimes(1);\n expect(changeSpy).toHaveReceivedEventDetail({ value: firstValueOfEnabledOption });\n });\n it('move focus to next option on Down Arrow key down', async () => {\n // Given\n // The overlay is open (makes in beforeEach)\n const nextValueOfEnableOption = selectOptions[2];\n const changeSpy = await wcsSelect.spyOnEvent('wcsChange');\n\n // When\n await page.keyboard.press('ArrowDown');\n const focusedOption = await page.find('wcs-select-option:focus');\n\n // Then\n expect(focusedOption.value).toEqual(nextValueOfEnableOption.value);\n expect(changeSpy).toHaveReceivedEventTimes(0)\n });\n });\n describe('Keyboard navigation when select is closed and multiple', () => {\n let page;\n let wcsSelect;\n let selectOptions;\n\n beforeEach(async () => {\n // Given\n page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select multiple=\"\">\n <wcs-select-option value=\"option1\" disabled>Option 1</wcs-select-option>\n <wcs-select-option value=\"option2\">Option 2</wcs-select-option>\n <wcs-select-option value=\"option3\">Option 3</wcs-select-option>\n </wcs-select>\n `);\n wcsSelect = await page.find('wcs-select');\n selectOptions = await page.findAll('wcs-select > wcs-select-option');\n });\n\n it('move focus into the first enabled option on Down Arrow key pressed', async () => {\n // Given\n const firstOptionEnabled = selectOptions[1];\n const changeSpy = await wcsSelect.spyOnEvent('wcsChange');\n\n // When\n await wcsSelect.focus();\n await page.keyboard.press('ArrowDown');\n await page.waitForChanges();\n\n // Then\n const focusedOption = await page.find('wcs-select-option:focus');\n expect(focusedOption).toEqual(firstOptionEnabled);\n expect(changeSpy).toHaveReceivedEventTimes(0)\n });\n it('move focus into the first enabled option on Enter key pressed', async () => {\n // Given\n const firstOptionEnabled = selectOptions[1];\n const changeSpy = await wcsSelect.spyOnEvent('wcsChange');\n\n // When\n await wcsSelect.focus();\n await page.keyboard.press('Enter');\n await page.waitForChanges();\n\n // Then\n const focusedOption = await page.find('wcs-select-option:focus');\n expect(focusedOption).toEqual(firstOptionEnabled);\n expect(changeSpy).toHaveReceivedEventTimes(0)\n });\n\n it('focuses last selected option when opening with keyboard after programmatic value change', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select multiple>\n <wcs-select-option value=\"option1\">Option 1</wcs-select-option>\n <wcs-select-option value=\"option2\">Option 2</wcs-select-option>\n <wcs-select-option value=\"option3\">Option 3</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n \n // When\n await select.setProperty('value', ['option1', 'option2']);\n await page.waitForChanges();\n await select.focus();\n await page.keyboard.press('Enter'); // Open select with keyboard\n await page.waitForChanges();\n\n // Then\n const focusedOption = await page.find('wcs-select-option:focus');\n expect(focusedOption.getAttribute('value')).toBe('option2'); // Should focus the last option in the array\n });\n });\n describe('Keyboard navigation when select opened and multiple', () => {\n let page;\n let wcsSelect;\n\n beforeEach(async () => {\n // Given\n page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select multiple=\"\">\n <wcs-select-option value=\"option1\" disabled>Option 1</wcs-select-option>\n <wcs-select-option value=\"option2\">Option 2</wcs-select-option>\n <wcs-select-option value=\"option3\">Option 3</wcs-select-option>\n </wcs-select>\n `);\n wcsSelect = await page.find('wcs-select');\n // Open by default the overlay for each test\n await wcsSelect.focus();\n await page.keyboard.press('Enter');\n await page.waitForChanges();\n });\n\n it('close the overlay on Tab key pressed and not focus an checkbox', async () => {\n // Given\n // The overlay is open (makes in beforeEach)\n\n // When\n await page.keyboard.press('Tab');\n const focusedEl = await page.find('wcs-select:focus');\n await page.waitForChanges();\n\n // Then\n expect(wcsSelect).not.toHaveClass(\"expanded\");\n expect(focusedEl).toBeDefined();\n });\n });\n //region Autocomplete tests\n describe('[Autocomplete] Keyboard navigation when select closed', () => {\n let page;\n let wcsSelect;\n let selectOptions;\n let wcsAutocompleteInput;\n\n beforeEach(async () => {\n // Given\n page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select autocomplete=\"\">\n <wcs-select-option value=\"option1\" disabled>Option 1</wcs-select-option>\n <wcs-select-option value=\"option2\">Option 2</wcs-select-option>\n <wcs-select-option value=\"option3\">Option 3</wcs-select-option>\n </wcs-select>\n `);\n wcsSelect = await page.find('wcs-select');\n selectOptions = await page.findAll('wcs-select > wcs-select-option');\n wcsAutocompleteInput = await page.find('wcs-select >>> input.autocomplete-field');\n });\n\n it('open listbox and move focus into the first enabled option on Arrow Down pressed', async () => {\n const firstOptionEnabled = selectOptions[1];\n\n // When\n await wcsSelect.focus();\n await page.keyboard.press('ArrowDown');\n await page.waitForChanges();\n\n // Then\n const visuallyFocusedOption = await page.find('wcs-select-option[highlighted]');\n expect(visuallyFocusedOption).toEqual(firstOptionEnabled);\n expect(wcsSelect).toHaveClass(\"expanded\");\n });\n\n it('open listbox without moveing on Alt + Arrow Down pressed', async () => {\n // When\n await wcsSelect.focus();\n await page.keyboard.down('Alt');\n await page.keyboard.press('ArrowDown');\n await page.keyboard.up('Alt');\n await page.waitForChanges();\n\n // Then\n const anyVisuallyFocusedOption= await page.find('wcs-select-option[highlighted]');\n expect(wcsSelect).toHaveClass(\"expanded\");\n expect(anyVisuallyFocusedOption).toBeNull();\n });\n it('clear textbox on Escape pressed', async () => {\n // Given\n await wcsAutocompleteInput.type('test');\n await page.waitForChanges();\n\n // When\n await wcsAutocompleteInput.click();\n await page.keyboard.press('Escape');\n await page.waitForChanges();\n\n // Then\n const value = await wcsAutocompleteInput.getProperty('value');\n expect(value).toEqual('');\n });\n });\n describe('[Autocomplete] Keyboard navigation when select expanded', () => {\n let page;\n let wcsSelect;\n let selectOptions;\n let autocompleteInput;\n\n beforeEach(async () => {\n // Given\n page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select autocomplete=\"\">\n <wcs-select-option value=\"option1\" disabled>Apple</wcs-select-option>\n <wcs-select-option value=\"option2\">Banana</wcs-select-option>\n <wcs-select-option value=\"option3\">Peach</wcs-select-option>\n </wcs-select>\n `);\n wcsSelect = await page.find('wcs-select');\n selectOptions = await page.findAll('wcs-select > wcs-select-option');\n autocompleteInput = await page.find('wcs-select >>> input.autocomplete-field');\n });\n\n it('close listbox on Escape', async () => {\n // When\n await autocompleteInput.click();\n await page.keyboard.press('Escape');\n await page.waitForChanges();\n\n // Then\n expect(wcsSelect).not.toHaveClass(\"expanded\");\n });\n it('stay opened on Enter when no option are highlighted', async () => {\n // When\n await autocompleteInput.click();\n await page.waitForChanges();\n await page.keyboard.press('Enter');\n await page.waitForChanges();\n\n // Then\n expect(wcsSelect).toHaveClass(\"expanded\");\n });\n it('Close overlay when an highlighted option is selected with Enter keypress', async () => {\n // When\n await autocompleteInput.click();\n await page.waitForChanges();\n await page.keyboard.press('ArrowDown');\n await page.waitForChanges();\n await page.keyboard.press('Enter');\n await page.waitForChanges();\n\n // Then\n expect(wcsSelect).not.toHaveClass(\"expanded\");\n });\n it('focus last option on Arrow Up', async () => {\n // Given\n const lastOption = selectOptions[selectOptions.length - 1];\n\n // When\n await autocompleteInput.focus();\n await page.keyboard.press('ArrowUp');\n await page.waitForChanges();\n\n // Then\n const visuallyFocusedOption = await page.find('wcs-select-option[highlighted]');\n expect(visuallyFocusedOption).toEqual(lastOption);\n });\n it('focus first option on Arrow Down', async () => {\n // Given\n const firstOption = selectOptions[1]; // Because first option is disabled\n\n // When\n await autocompleteInput.focus();\n await page.keyboard.press('ArrowDown');\n await page.waitForChanges();\n\n // Then\n const visuallyFocusedOption = await page.find('wcs-select-option[highlighted]');\n expect(visuallyFocusedOption).toEqual(firstOption);\n });\n it('replace text, close listbox, focus textbox on Enter', async () => {\n // Given\n const firstOption = selectOptions[1]; // Because first option is disabled\n\n // When\n await autocompleteInput.focus();\n await page.keyboard.press('ArrowDown');\n await page.keyboard.press('Enter');\n await page.waitForChanges();\n\n // Then\n expect(await autocompleteInput.getProperty('value')).toEqual(firstOption.textContent);\n expect(wcsSelect).not.toHaveClass(\"expanded\");\n const focusedInput = await page.find('wcs-select > input.autocomplete-field:focus');\n expect(focusedInput).toBeDefined();\n });\n it('close listbox, focus textbox on Escape', async () => {\n // When\n await page.keyboard.press('Escape');\n await page.waitForChanges();\n\n // Then\n expect(wcsSelect).not.toHaveClass(\"expanded\");\n const focusedInput = await page.find('wcs-select > input.autocomplete-field:focus');\n expect(focusedInput).toBeDefined();\n });\n it('cycle to next option when Arrow Down', async () => {\n // Given\n const firstSelectableOption = selectOptions[1];\n\n // When\n await wcsSelect.focus();\n await page.keyboard.press('ArrowDown'); // Going to option[1]\n await page.keyboard.press('ArrowDown'); // Going to option[2]\n await page.keyboard.press('ArrowDown'); // Going back to option[1]\n await page.waitForChanges();\n\n // Then\n const visuallyFocusedOption = await page.find('wcs-select-option[highlighted]');\n expect(visuallyFocusedOption).toEqual(firstSelectableOption);\n });\n it('cycle to previous option when Arrow Up', async () => {\n // Given\n const lastSelectableOption = selectOptions[2];\n\n // When\n await wcsSelect.focus();\n await page.keyboard.press('ArrowUp'); // Going to option[2]\n await page.keyboard.press('ArrowUp'); // Going to option[1]\n await page.keyboard.press('ArrowUp'); // Going back to option[2]\n await page.waitForChanges();\n\n // Then\n const visuallyFocusedOption = await page.find('wcs-select-option[highlighted]');\n expect(visuallyFocusedOption).toEqual(lastSelectableOption);\n });\n it('focus textbox, move cursor when Left or Right Arrow', async () => {\n // Given\n const typedText = 'test';\n\n // When\n await wcsSelect.focus();\n await autocompleteInput.type(typedText);\n await page.keyboard.press('ArrowLeft');\n await page.keyboard.press('ArrowRight');\n await page.waitForChanges();\n\n // Then\n const cursorPositionAfter = await autocompleteInput.getProperty('selectionStart');\n expect(cursorPositionAfter).toEqual(typedText.length);\n const focusedInput = await page.find('wcs-select > input.autocomplete-field:focus');\n expect(focusedInput).toBeDefined();\n });\n it('focus textbox, move cursor to the start of the text when Home pressed', async () => {\n // Given\n const typedText = 'test';\n\n // When\n await autocompleteInput.type(typedText);\n await page.keyboard.press('Home');\n await page.waitForChanges();\n\n // Then\n const cursorPositionAfter = await autocompleteInput.getProperty('selectionStart');\n expect(cursorPositionAfter).toEqual(0);\n const focusedInput = await page.find('wcs-select > input.autocomplete-field:focus');\n expect(focusedInput).toBeDefined();\n });\n it('focus textbox, move cursor to the end of the text when End pressed', async () => {\n // Given\n const typedText = 'test';\n\n // When\n await autocompleteInput.press('t');\n await autocompleteInput.press('e');\n await autocompleteInput.press('s');\n await autocompleteInput.press('t');\n await page.keyboard.press('End');\n await page.waitForChanges();\n\n // Then\n const cursorPositionAfter = await autocompleteInput.getProperty('selectionStart');\n expect(cursorPositionAfter).toEqual(typedText.length);\n const focusedInput = await page.find('wcs-select > input.autocomplete-field:focus');\n expect(focusedInput).toBeDefined();\n });\n it('focus textbox, filter listbox, remove visual focus from listbox when any printable character', async () => {\n // Given\n const allOptions = await page.findAll('wcs-select-option');\n\n // When\n await wcsSelect.focus();\n await page.keyboard.press('a');\n await page.waitForChanges();\n\n // Then\n const focusedInput = await page.find('wcs-select > input.autocomplete-field:focus');\n expect(focusedInput).toBeDefined(); // Focus textbox\n const optionsWithFilter = await page.findAll('wcs-select-option:not([aria-hidden])');\n expect(optionsWithFilter.length).toBeLessThan(allOptions.length); // Filter listbox\n const visuallyFocusedOption = await page.find('wcs-select-option[highlighted]');\n expect(visuallyFocusedOption).toBeNull(); // Remove visual focus from listbox\n });\n });\n //endregion\n\n it('Should handle asynchronous options loading with an initial value and update the label', async () => {\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select value=\"2\">\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n\n expect(select.shadowRoot.querySelector('.wcs-select-value')).toBeNull(); // Verify initial value is displayed\n\n // Add options\n await page.$eval('wcs-select', (el: HTMLElement) => {\n el.innerHTML = `\n <wcs-select-option value=\"1\">One</wcs-select-option>\n <wcs-select-option value=\"2\">Two</wcs-select-option>\n <wcs-select-option value=\"3\">Three</wcs-select-option>\n <wcs-select-option value=\"4\">Four</wcs-select-option>\n `;\n });\n await page.waitForChanges();\n \n expect(select.shadowRoot.querySelector('.wcs-select-value')).toEqualText(\"Two\"); // Verify initial value is displayed\n });\n\n it('[Multiple] Should handle asynchronous options loading with an initial value and update the label', async () => {\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select multiple>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n select.setProperty('value', ['2', '3']);\n await page.waitForChanges();\n\n expect(select.shadowRoot.querySelector('.wcs-select-value')).toBeNull(); // Verify initial value is displayed\n\n // Add options\n await page.$eval('wcs-select', (el: HTMLElement) => {\n el.innerHTML = `\n <wcs-select-option value=\"1\">One</wcs-select-option>\n <wcs-select-option value=\"2\">Two</wcs-select-option>\n <wcs-select-option value=\"3\">Three</wcs-select-option>\n <wcs-select-option value=\"4\">Four</wcs-select-option>\n `;\n });\n await page.waitForChanges();\n \n expect(select.shadowRoot.querySelector('.wcs-select-value')).toEqualText(\"Two, Three\"); // Verify initial value is displayed\n });\n\n});\n\n"]}
1
+ {"version":3,"file":"select.e2e.js","sourceRoot":"","sources":["../../../src/components/select/select.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { newE2EPage } from '@stencil/core/testing';\nimport { setWcsContent } from \"../../utils/tests\";\n\ndescribe('Select component', () => {\n it('Expands when clicked', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n\n // When\n await select.click();\n\n // Then\n expect(select).toHaveClass('expanded');\n });\n\n it('Expands using the open method', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n\n // When\n await select.callMethod('open');\n await page.waitForChanges();\n\n // Then\n expect(select).toHaveClass('expanded');\n });\n\n it('Closes using the open method', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n\n // When\n await select.click();\n await select.callMethod('close');\n await page.waitForChanges();\n\n // Then\n expect(select).not.toHaveClass('expanded');\n });\n\n it('Closes when user click outside', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n </wcs-select>\n <div class=\"outside\"></div>\n `);\n const select = await page.find('wcs-select');\n\n // When\n await select.click();\n // XXX: Page.click() doesn't work\n await page.$eval('div.outside', (elem: HTMLDivElement) => elem.click());\n await page.waitForChanges();\n\n // Then\n expect(select).not.toHaveClass('expanded');\n });\n\n it('Closes when user click on another select', async () => {\n // Given\n const page = await newE2EPage();\n await page.setViewport({width: 1024, height: 1600});\n await setWcsContent(page, `\n <div style=\"display: flex\">\n <wcs-select id=\"select-1\">\n <wcs-select-option value=\"1\">One</wcs-select-option>\n <wcs-select-option value=\"2\">Two</wcs-select-option>\n <wcs-select-option value=\"3\">Three</wcs-select-option>\n </wcs-select>\n <wcs-select id=\"select-2\">\n <wcs-select-option value=\"1\">One</wcs-select-option>\n <wcs-select-option value=\"2\">Two</wcs-select-option>\n <wcs-select-option value=\"3\">Three</wcs-select-option>\n </wcs-select>\n </div>\n `);\n const select1 = await page.find('#select-1');\n const select2 = await page.find('#select-2');\n\n // When\n await select1.click();\n await page.waitForChanges();\n\n // Then\n expect(select1).toHaveClass('expanded');\n\n await select2.click(); // select another select component in page\n expect(select1).not.toHaveClass('expanded');\n expect(select2).toHaveClass('expanded');\n });\n\n it('Let us select a value and fire event correctly', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n const firstSelectOption = await page.find('wcs-select > wcs-select-option');\n const label = await page.find('wcs-select >>> label');\n const changeSpy = await select.spyOnEvent('wcsChange');\n\n // When\n await select.click();\n await firstSelectOption.click();\n await page.waitForChanges();\n\n // Then\n expect(changeSpy).toHaveReceivedEventTimes(1);\n expect(changeSpy).toHaveReceivedEventDetail({ value: '1' });\n expect(label.innerText).toBe('One');\n });\n\n describe('select event', () => {\n it('should not emit event if we set the value in js', async () => {\n // Given\n const page = await newE2EPage({\n html: `\n <wcs-select value=\"1\">\n <wcs-select-option value=\"1\">One</wcs-select-option>\n <wcs-select-option value=\"2\">Two</wcs-select-option>\n </wcs-select>\n `\n });\n const select = await page.find('wcs-select');\n const changeSpy = await select.spyOnEvent('wcsChange');\n\n // When\n await select.setProperty('value', '2');\n await page.waitForChanges();\n\n // Then\n expect(changeSpy).toHaveReceivedEventTimes(0);\n });\n });\n\n describe('setSelectedValue', () => {\n it('Let user change selected value programmatically', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n <wcs-select-option value=\"2\">Two</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n\n // When\n await select.setProperty('value', '2');\n await page.waitForChanges();\n\n // Then\n expect(select.shadowRoot.querySelector('.wcs-select-value')).toEqualText(\"Two\");\n });\n\n it('Let user change selected values programmatically', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select multiple>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n <wcs-select-option value=\"2\">Two</wcs-select-option>\n <wcs-select-option value=\"3\">Three</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n\n // When\n const newValue = ['2', '3'];\n await select.setProperty('value', newValue);\n await page.waitForChanges();\n\n // Then\n expect(select.shadowRoot.querySelector('.wcs-select-value')).toEqualText(\"Two, Three\");\n });\n });\n\n\n it('Is focusable', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n\n // When\n await select.focus();\n const focusedEl = await page.find('wcs-select:focus');\n\n // Then\n expect(focusedEl).toBeDefined();\n });\n\n it('[Autocomplete] Input field is focusable', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select autocomplete=\"true\">\n <wcs-select-option value=\"1\">One</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n\n // When\n await select.focus();\n const focusedEl = await page.find('wcs-select > input.autocomplete-field:focus');\n\n // Then\n expect(focusedEl).toBeDefined();\n })\n\n it('[Autocomplete] filter is cleared when the select value is set to a falsy value', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select autocomplete>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n <wcs-select-option value=\"2\">Two</wcs-select-option>\n <wcs-select-option value=\"3\">Three</wcs-select-option>\n <wcs-select-option value=\"4\">Four</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n\n // When\n await select.click();\n\n await page.keyboard.type('One');\n const firstSelectOption = await page.find('wcs-select > wcs-select-option');\n\n await firstSelectOption.click();\n await page.waitForChanges();\n\n select.setProperty('value', '');\n await page.waitForChanges();\n\n // Then\n await select.click();\n const availableOptions = await page.findAll('wcs-select > *:not([hidden])');\n // We check that all options are available to ensure the filter is no longer active\n expect(availableOptions.length).toBe(4);\n });\n\n it('[Autocomplete] should not opened when initial value is set', async () => {\n // Given - When\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select autocomplete value=\"1\">\n <wcs-select-option value=\"1\">One</wcs-select-option>\n <wcs-select-option value=\"2\">Two</wcs-select-option>\n <wcs-select-option value=\"3\">Three</wcs-select-option>\n <wcs-select-option value=\"4\">Four</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n\n // Then\n expect(select).not.toHaveClass('expanded');\n });\n\n it('[Autocomplete] should not opened when set value programmatically', async () => {\n // Given - When\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select autocomplete value=\"1\">\n <wcs-select-option value=\"1\">One</wcs-select-option>\n <wcs-select-option value=\"2\">Two</wcs-select-option>\n <wcs-select-option value=\"3\">Three</wcs-select-option>\n <wcs-select-option value=\"4\">Four</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n select.setProperty('value', '1');\n await page.waitForChanges();\n\n // Then\n expect(select).not.toHaveClass('expanded');\n })\n\n it('[Autocomplete] should opened when set value with user interaction', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select autocomplete>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n <wcs-select-option value=\"2\">Two</wcs-select-option>\n <wcs-select-option value=\"3\">Three</wcs-select-option>\n <wcs-select-option value=\"4\">Four</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n const autocompleteInput = await page.find('wcs-select >>> input.autocomplete-field');\n\n // When\n await autocompleteInput.focus();\n await page.keyboard.type('O');\n await page.waitForChanges();\n\n // Then\n expect(select).toHaveClass('expanded');\n })\n\n it(`Propagate wcsSelectChangeEvent when a new value is selected`, async () => {\n // Given\n const page = await newE2EPage({\n html: `\n <wcs-select>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n </wcs-select>\n `\n });\n const select = await page.find('wcs-select');\n const opt = await page.find('wcs-select > wcs-select-option');\n const changeSpy = await select.spyOnEvent('wcsChange');\n // When\n await select.click();\n await opt.click();\n await page.waitForChanges();\n\n // Then\n expect(changeSpy).toHaveReceivedEventTimes(1);\n expect(changeSpy).toHaveReceivedEventDetail({ value: '1' });\n });\n\n xit(`Can have pre-selected option`, async () => {\n // TODO:\n });\n\n describe('Disabled', () => {\n it('Must not expand when disabled', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select disabled>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n\n // When\n await select.click();\n\n // Then\n expect(select).not.toHaveClass('expanded');\n });\n\n it('Is not focusable when disabled', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select disabled>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n\n // When\n await select.focus();\n const focusedEl = await page.find('wcs-select:focus');\n\n // Then\n expect(focusedEl).toBeNull();\n });\n });\n\n describe('Options', () => {\n it('Adds selected attribute to selected option', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n const option = await page.find('wcs-select > wcs-select-option');\n\n // When\n await select.click();\n await option.click();\n await page.waitForChanges();\n\n // Then\n expect(option).toHaveAttribute('selected');\n });\n\n it(`Removes selected attribute from previously selected options`, async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n <wcs-select-option value=\"2\">Two</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n const [opt1, opt2] = (await page.findAll('wcs-select > wcs-select-option'));\n\n // When\n await select.click();\n await opt1.click();\n await select.click(); // As it is not multiple we need to open it once again\n await opt2.click();\n await page.waitForChanges();\n\n // Then\n expect(opt1).not.toHaveAttribute('selected');\n expect(opt2).toHaveAttribute('selected');\n });\n\n it(`Must not let a user select a disabled option`, async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select>\n <wcs-select-option value=\"1\" disabled>One</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n const option = await page.find('wcs-select > wcs-select-option');\n\n // When\n await select.click();\n await option.click();\n await page.waitForChanges();\n\n // Then\n expect(select).not.toHaveAttribute('value');\n });\n });\n\n describe('Multiple', () => {\n it(`Musn't close when we select a value`, async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select multiple>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n const firstSelectOption = await page.find('wcs-select > wcs-select-option');\n\n // When\n await select.click();\n await firstSelectOption.click();\n await page.waitForChanges();\n\n // Then\n expect(select).toHaveClass('expanded');\n });\n\n it(`Allows to select multiple values`, async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select multiple>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n <wcs-select-option value=\"2\">Two</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n const changeSpy = await select.spyOnEvent('wcsChange');\n const [opt1, opt2] = (await page.findAll('wcs-select > wcs-select-option'));\n\n // When\n await select.click();\n await opt1.click();\n await opt2.click();\n await page.waitForChanges();\n\n // Then\n expect(changeSpy).toHaveReceivedEventTimes(2);\n expect(changeSpy).toHaveReceivedEventDetail({ value: ['1', '2'] });\n });\n\n\n it('Allows to unselect a value', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select multiple>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n <wcs-select-option value=\"2\">Two</wcs-select-option>\n <wcs-select-option value=\"3\">Three</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n const changeSpy = await select.spyOnEvent('wcsChange');\n const [opt1, opt2] = (await page.findAll('wcs-select > wcs-select-option'));\n\n // When\n await select.click();\n await opt1.click();\n await opt2.click();\n await opt1.click();\n await page.waitForChanges();\n\n // Then\n expect(changeSpy).toHaveReceivedEventTimes(3);\n expect(changeSpy).toHaveReceivedEventDetail({ value: ['2'] });\n });\n it(`Displays all values separated by a comma`, async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select multiple>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n <wcs-select-option value=\"2\">Two</wcs-select-option>\n <wcs-select-option value=\"3\">Three</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n const [opt1, opt2, opt3] = (await page.findAll('wcs-select > wcs-select-option'));\n const label = await page.find('wcs-select >>> label');\n\n // When\n await select.click();\n await opt1.click();\n await opt2.click();\n await opt3.click();\n await page.waitForChanges();\n\n // Then\n expect(label.innerText).toEqual('One, Two, Three');\n });\n\n it(`Tells the option that they should display as multiple`, async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select multiple>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n </wcs-select>\n `);\n const option = await page.find('wcs-select > wcs-select-option');\n\n // When\n await page.waitForChanges();\n\n // Then\n expect(option).toHaveAttribute('multiple');\n });\n\n it(`Propagate event when values are select`, async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select multiple>\n <wcs-select-option value=\"1\">One</wcs-select-option>\n <wcs-select-option value=\"2\">Two</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n const [opt1, opt2] = (await page.findAll('wcs-select > wcs-select-option'));\n const changeSpy = await select.spyOnEvent('wcsChange');\n\n // When\n await select.click();\n await opt1.click();\n await opt2.click();\n\n // Then\n expect(changeSpy).toHaveReceivedEventTimes(2);\n expect(changeSpy).toHaveReceivedEventDetail({ value: ['1', '2'] });\n });\n });\n\n describe('Keyboard navigation when select is closed and not multiple', () => {\n let page;\n let wcsSelect;\n\n beforeEach(async () => {\n // Given\n page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select>\n <wcs-select-option value=\"option1\" disabled>Option 1</wcs-select-option>\n <wcs-select-option value=\"option2\">Option 2</wcs-select-option>\n <wcs-select-option value=\"option3\">Option 3</wcs-select-option>\n </wcs-select>\n `);\n wcsSelect = await page.find('wcs-select');\n });\n\n it('select value of first option enabled on Down Arrow key pressed', async () => {\n // Given\n const firstDisplayedValueOfEnableOption = \"Option 2\";\n const firstValueOfEnableOption = \"option2\";\n const displayValue: HTMLLabelElement = await page.find('wcs-select >>> label');\n const changeSpy = await wcsSelect.spyOnEvent('wcsChange');\n\n // When\n await wcsSelect.focus();\n await page.keyboard.press('ArrowDown');\n await page.waitForChanges();\n\n // Then\n expect(displayValue.innerText).toEqual(firstDisplayedValueOfEnableOption);\n expect(changeSpy).toHaveReceivedEventTimes(1);\n expect(changeSpy).toHaveReceivedEventDetail({ value: firstValueOfEnableOption });\n });\n it('select value of last option enabled on PageDown key pressed', async () => {\n // Given\n const lastValueOfEnableOption = \"Option 3\";\n const displayValue: HTMLLabelElement = await page.find('wcs-select >>> label');\n const changeSpy = await wcsSelect.spyOnEvent('wcsChange');\n\n // When\n await wcsSelect.focus();\n await page.keyboard.press('PageDown');\n await page.waitForChanges();\n\n // Then\n expect(displayValue.innerText).toEqual(lastValueOfEnableOption);\n expect(changeSpy).toHaveReceivedEventTimes(1);\n expect(changeSpy).toHaveReceivedEventDetail({ value: 'option3' });\n });\n it('select value of first option enabled on PageUp key pressed', async () => {\n // Given\n const fistDisplayedValueOfEnableOption = \"Option 2\";\n const firstValueOfEnableOption = \"option2\";\n const displayValue: HTMLLabelElement = await page.find('wcs-select >>> label');\n const changeSpy = await wcsSelect.spyOnEvent('wcsChange');\n\n // When\n await wcsSelect.focus();\n await page.keyboard.press('PageUp');\n await page.waitForChanges();\n\n // Then\n expect(displayValue.innerText).toEqual(fistDisplayedValueOfEnableOption);\n expect(changeSpy).toHaveReceivedEventTimes(1);\n expect(changeSpy).toHaveReceivedEventDetail({ value: firstValueOfEnableOption });\n });\n it('open the overlay on Enter key press', async () => {\n // When\n await wcsSelect.focus();\n await page.keyboard.press('Enter');\n await page.waitForChanges();\n\n // Then\n expect(wcsSelect).toHaveClass(\"expanded\");\n });\n it('open the overlay on Alt + Down Arrow key pressed', async () => {\n // When\n await wcsSelect.focus();\n await page.keyboard.down('Alt');\n await page.keyboard.press('ArrowDown');\n await page.keyboard.up('Alt');\n await page.waitForChanges();\n\n // Then\n expect(wcsSelect).toHaveClass(\"expanded\");\n\n });\n\n it('focuses last selected option when opening with keyboard after programmatic value change', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select>\n <wcs-select-option value=\"option1\">Option 1</wcs-select-option>\n <wcs-select-option value=\"option2\">Option 2</wcs-select-option>\n <wcs-select-option value=\"option3\">Option 3</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n\n // When\n await select.setProperty('value', 'option2');\n await page.waitForChanges();\n await select.focus();\n await page.keyboard.press('Enter'); // Open select with keyboard\n await page.waitForChanges();\n\n // Then\n const focusedOption = await page.find('wcs-select-option:focus');\n expect(focusedOption.getAttribute('value')).toBe('option2');\n });\n });\n describe('Keyboard navigation when select is opened and not multiple', () => {\n let page;\n let wcsSelect;\n let selectOptions;\n\n beforeEach(async () => {\n // Given\n page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select>\n <wcs-select-option value=\"option1\" disabled>Option 1</wcs-select-option>\n <wcs-select-option value=\"option2\">Option 2</wcs-select-option>\n <wcs-select-option value=\"option3\">Option 3</wcs-select-option>\n </wcs-select>\n `);\n wcsSelect = await page.find('wcs-select');\n selectOptions = await page.findAll('wcs-select > wcs-select-option');\n // Open by default the overlay for each test\n await wcsSelect.focus();\n await page.keyboard.press('Enter');\n await page.waitForChanges();\n });\n\n it('close the overlay on Escape key pressed and focus select control', async () => {\n // Given\n // The overlay is open (makes in beforeEach)\n\n // When\n await page.keyboard.press('Escape');\n const focusedEl = await page.find('wcs-select:focus');\n await page.waitForChanges();\n\n // Then\n expect(wcsSelect).not.toHaveClass(\"expanded\");\n expect(focusedEl).toBeDefined();\n });\n\n it('close the overlay on Alt + ArrowUp keys pressed and focus select control', async () => {\n // Given\n // The overlay is open (makes in beforeEach)\n\n // When\n await page.keyboard.down('Alt');\n await page.keyboard.press('ArrowUp');\n await page.keyboard.up('Alt');\n const focusedEl = await page.find('wcs-select:focus');\n await page.waitForChanges();\n\n // Then\n expect(wcsSelect).not.toHaveClass(\"expanded\");\n expect(focusedEl).toBeDefined();\n });\n it('close the overlay on Tab key pressed', async () => {\n // Given\n // The overlay is open (makes in beforeEach)\n\n // When\n await page.keyboard.press('Tab');\n const focusedEl = await page.find('wcs-select:focus');\n await page.waitForChanges();\n\n // Then\n expect(wcsSelect).not.toHaveClass(\"expanded\");\n expect(focusedEl).toBeDefined();\n });\n it('close the overlay on Tab + Shift keys pressed', async () => {\n // Given\n // The overlay is open (makes in beforeEach)\n\n // When\n await page.keyboard.down('Shift');\n await page.keyboard.press('Tab');\n await page.keyboard.up('Shift');\n await page.waitForChanges();\n\n // Then\n expect(wcsSelect).not.toHaveClass(\"expanded\");\n const focusedSelect = await page.find('wcs-select:focus');\n expect(focusedSelect).toBeDefined();\n });\n it('choose the current option on Enter key pressed', async () => {\n // Given\n // The overlay is open (makes in beforeEach)\n const firstDisplayedValueOfEnableOption = \"Option 2\";\n const firstValueOfEnabledOption = \"option2\";\n const displayValue: HTMLLabelElement = await page.find('wcs-select >>> label');\n const changeSpy = await wcsSelect.spyOnEvent('wcsChange');\n\n // When\n await page.keyboard.press('Enter');\n await page.waitForChanges();\n\n // Then\n expect(displayValue.innerText).toEqual(firstDisplayedValueOfEnableOption);\n expect(changeSpy).toHaveReceivedEventTimes(1);\n expect(changeSpy).toHaveReceivedEventDetail({ value: firstValueOfEnabledOption });\n });\n it('move focus to next option on Down Arrow key down', async () => {\n // Given\n // The overlay is open (makes in beforeEach)\n const nextValueOfEnableOption = selectOptions[2];\n const changeSpy = await wcsSelect.spyOnEvent('wcsChange');\n\n // When\n await page.keyboard.press('ArrowDown');\n const focusedOption = await page.find('wcs-select-option:focus');\n\n // Then\n expect(focusedOption.value).toEqual(nextValueOfEnableOption.value);\n expect(changeSpy).toHaveReceivedEventTimes(0)\n });\n });\n describe('Keyboard navigation when select is closed and multiple', () => {\n let page;\n let wcsSelect;\n let selectOptions;\n\n beforeEach(async () => {\n // Given\n page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select multiple=\"\">\n <wcs-select-option value=\"option1\" disabled>Option 1</wcs-select-option>\n <wcs-select-option value=\"option2\">Option 2</wcs-select-option>\n <wcs-select-option value=\"option3\">Option 3</wcs-select-option>\n </wcs-select>\n `);\n wcsSelect = await page.find('wcs-select');\n selectOptions = await page.findAll('wcs-select > wcs-select-option');\n });\n\n it('move focus into the first enabled option on Down Arrow key pressed', async () => {\n // Given\n const firstOptionEnabled = selectOptions[1];\n const changeSpy = await wcsSelect.spyOnEvent('wcsChange');\n\n // When\n await wcsSelect.focus();\n await page.keyboard.press('ArrowDown');\n await page.waitForChanges();\n\n // Then\n const focusedOption = await page.find('wcs-select-option:focus');\n expect(focusedOption).toEqual(firstOptionEnabled);\n expect(changeSpy).toHaveReceivedEventTimes(0)\n });\n it('move focus into the first enabled option on Enter key pressed', async () => {\n // Given\n const firstOptionEnabled = selectOptions[1];\n const changeSpy = await wcsSelect.spyOnEvent('wcsChange');\n\n // When\n await wcsSelect.focus();\n await page.keyboard.press('Enter');\n await page.waitForChanges();\n\n // Then\n const focusedOption = await page.find('wcs-select-option:focus');\n expect(focusedOption).toEqual(firstOptionEnabled);\n expect(changeSpy).toHaveReceivedEventTimes(0)\n });\n\n it('focuses last selected option when opening with keyboard after programmatic value change', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select multiple>\n <wcs-select-option value=\"option1\">Option 1</wcs-select-option>\n <wcs-select-option value=\"option2\">Option 2</wcs-select-option>\n <wcs-select-option value=\"option3\">Option 3</wcs-select-option>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n\n // When\n await select.setProperty('value', ['option1', 'option2']);\n await page.waitForChanges();\n await select.focus();\n await page.keyboard.press('Enter'); // Open select with keyboard\n await page.waitForChanges();\n\n // Then\n const focusedOption = await page.find('wcs-select-option:focus');\n expect(focusedOption.getAttribute('value')).toBe('option2'); // Should focus the last option in the array\n });\n });\n describe('Keyboard navigation when select opened and multiple', () => {\n let page;\n let wcsSelect;\n\n beforeEach(async () => {\n // Given\n page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select multiple=\"\">\n <wcs-select-option value=\"option1\" disabled>Option 1</wcs-select-option>\n <wcs-select-option value=\"option2\">Option 2</wcs-select-option>\n <wcs-select-option value=\"option3\">Option 3</wcs-select-option>\n </wcs-select>\n `);\n wcsSelect = await page.find('wcs-select');\n // Open by default the overlay for each test\n await wcsSelect.focus();\n await page.keyboard.press('Enter');\n await page.waitForChanges();\n });\n\n it('close the overlay on Tab key pressed and not focus an checkbox', async () => {\n // Given\n // The overlay is open (makes in beforeEach)\n\n // When\n await page.keyboard.press('Tab');\n const focusedEl = await page.find('wcs-select:focus');\n await page.waitForChanges();\n\n // Then\n expect(wcsSelect).not.toHaveClass(\"expanded\");\n expect(focusedEl).toBeDefined();\n });\n });\n //region Autocomplete tests\n describe('[Autocomplete] Keyboard navigation when select closed', () => {\n let page;\n let wcsSelect;\n let selectOptions;\n let wcsAutocompleteInput;\n\n beforeEach(async () => {\n // Given\n page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select autocomplete=\"\">\n <wcs-select-option value=\"option1\" disabled>Option 1</wcs-select-option>\n <wcs-select-option value=\"option2\">Option 2</wcs-select-option>\n <wcs-select-option value=\"option3\">Option 3</wcs-select-option>\n </wcs-select>\n `);\n wcsSelect = await page.find('wcs-select');\n selectOptions = await page.findAll('wcs-select > wcs-select-option');\n wcsAutocompleteInput = await page.find('wcs-select >>> input.autocomplete-field');\n });\n\n it('open listbox and move focus into the first enabled option on Arrow Down pressed', async () => {\n const firstOptionEnabled = selectOptions[1];\n\n // When\n await wcsSelect.focus();\n await page.keyboard.press('ArrowDown');\n await page.waitForChanges();\n\n // Then\n const visuallyFocusedOption = await page.find('wcs-select-option[highlighted]');\n expect(visuallyFocusedOption).toEqual(firstOptionEnabled);\n expect(wcsSelect).toHaveClass(\"expanded\");\n });\n\n it('open listbox without moveing on Alt + Arrow Down pressed', async () => {\n // When\n await wcsSelect.focus();\n await page.keyboard.down('Alt');\n await page.keyboard.press('ArrowDown');\n await page.keyboard.up('Alt');\n await page.waitForChanges();\n\n // Then\n const anyVisuallyFocusedOption= await page.find('wcs-select-option[highlighted]');\n expect(wcsSelect).toHaveClass(\"expanded\");\n expect(anyVisuallyFocusedOption).toBeNull();\n });\n it('clear textbox on Escape pressed', async () => {\n // Given\n await wcsAutocompleteInput.type('test');\n await page.waitForChanges();\n\n // When\n await wcsAutocompleteInput.click();\n await page.keyboard.press('Escape');\n await page.waitForChanges();\n\n // Then\n const value = await wcsAutocompleteInput.getProperty('value');\n expect(value).toEqual('');\n });\n });\n describe('[Autocomplete] Keyboard navigation when select expanded', () => {\n let page;\n let wcsSelect;\n let selectOptions;\n let autocompleteInput;\n\n beforeEach(async () => {\n // Given\n page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select autocomplete=\"\">\n <wcs-select-option value=\"option1\" disabled>Apple</wcs-select-option>\n <wcs-select-option value=\"option2\">Banana</wcs-select-option>\n <wcs-select-option value=\"option3\">Peach</wcs-select-option>\n </wcs-select>\n `);\n wcsSelect = await page.find('wcs-select');\n selectOptions = await page.findAll('wcs-select > wcs-select-option');\n autocompleteInput = await page.find('wcs-select >>> input.autocomplete-field');\n });\n\n it('close listbox on Escape', async () => {\n // When\n await autocompleteInput.click();\n await page.keyboard.press('Escape');\n await page.waitForChanges();\n\n // Then\n expect(wcsSelect).not.toHaveClass(\"expanded\");\n });\n it('stay opened on Enter when no option are highlighted', async () => {\n // When\n await autocompleteInput.click();\n await page.waitForChanges();\n await page.keyboard.press('Enter');\n await page.waitForChanges();\n\n // Then\n expect(wcsSelect).toHaveClass(\"expanded\");\n });\n it('Close overlay when an highlighted option is selected with Enter keypress', async () => {\n // When\n await autocompleteInput.click();\n await page.waitForChanges();\n await page.keyboard.press('ArrowDown');\n await page.waitForChanges();\n await page.keyboard.press('Enter');\n await page.waitForChanges();\n\n // Then\n expect(wcsSelect).not.toHaveClass(\"expanded\");\n });\n it('focus last option on Arrow Up', async () => {\n // Given\n const lastOption = selectOptions[selectOptions.length - 1];\n\n // When\n await autocompleteInput.focus();\n await page.keyboard.press('ArrowUp');\n await page.waitForChanges();\n\n // Then\n const visuallyFocusedOption = await page.find('wcs-select-option[highlighted]');\n expect(visuallyFocusedOption).toEqual(lastOption);\n });\n it('focus first option on Arrow Down', async () => {\n // Given\n const firstOption = selectOptions[1]; // Because first option is disabled\n\n // When\n await autocompleteInput.focus();\n await page.keyboard.press('ArrowDown');\n await page.waitForChanges();\n\n // Then\n const visuallyFocusedOption = await page.find('wcs-select-option[highlighted]');\n expect(visuallyFocusedOption).toEqual(firstOption);\n });\n it('replace text, close listbox, focus textbox on Enter', async () => {\n // Given\n const firstOption = selectOptions[1]; // Because first option is disabled\n\n // When\n await autocompleteInput.focus();\n await page.keyboard.press('ArrowDown');\n await page.keyboard.press('Enter');\n await page.waitForChanges();\n\n // Then\n expect(await autocompleteInput.getProperty('value')).toEqual(firstOption.textContent);\n expect(wcsSelect).not.toHaveClass(\"expanded\");\n const focusedInput = await page.find('wcs-select > input.autocomplete-field:focus');\n expect(focusedInput).toBeDefined();\n });\n it('close listbox, focus textbox on Escape', async () => {\n // When\n await page.keyboard.press('Escape');\n await page.waitForChanges();\n\n // Then\n expect(wcsSelect).not.toHaveClass(\"expanded\");\n const focusedInput = await page.find('wcs-select > input.autocomplete-field:focus');\n expect(focusedInput).toBeDefined();\n });\n it('cycle to next option when Arrow Down', async () => {\n // Given\n const firstSelectableOption = selectOptions[1];\n\n // When\n await wcsSelect.focus();\n await page.keyboard.press('ArrowDown'); // Going to option[1]\n await page.keyboard.press('ArrowDown'); // Going to option[2]\n await page.keyboard.press('ArrowDown'); // Going back to option[1]\n await page.waitForChanges();\n\n // Then\n const visuallyFocusedOption = await page.find('wcs-select-option[highlighted]');\n expect(visuallyFocusedOption).toEqual(firstSelectableOption);\n });\n it('cycle to previous option when Arrow Up', async () => {\n // Given\n const lastSelectableOption = selectOptions[2];\n\n // When\n await wcsSelect.focus();\n await page.keyboard.press('ArrowUp'); // Going to option[2]\n await page.keyboard.press('ArrowUp'); // Going to option[1]\n await page.keyboard.press('ArrowUp'); // Going back to option[2]\n await page.waitForChanges();\n\n // Then\n const visuallyFocusedOption = await page.find('wcs-select-option[highlighted]');\n expect(visuallyFocusedOption).toEqual(lastSelectableOption);\n });\n it('focus textbox, move cursor when Left or Right Arrow', async () => {\n // Given\n const typedText = 'test';\n\n // When\n await wcsSelect.focus();\n await autocompleteInput.type(typedText);\n await page.keyboard.press('ArrowLeft');\n await page.keyboard.press('ArrowRight');\n await page.waitForChanges();\n\n // Then\n const cursorPositionAfter = await autocompleteInput.getProperty('selectionStart');\n expect(cursorPositionAfter).toEqual(typedText.length);\n const focusedInput = await page.find('wcs-select > input.autocomplete-field:focus');\n expect(focusedInput).toBeDefined();\n });\n it('focus textbox, move cursor to the start of the text when Home pressed', async () => {\n // Given\n const typedText = 'test';\n\n // When\n await autocompleteInput.type(typedText);\n await page.keyboard.press('Home');\n await page.waitForChanges();\n\n // Then\n const cursorPositionAfter = await autocompleteInput.getProperty('selectionStart');\n expect(cursorPositionAfter).toEqual(0);\n const focusedInput = await page.find('wcs-select > input.autocomplete-field:focus');\n expect(focusedInput).toBeDefined();\n });\n it('focus textbox, move cursor to the end of the text when End pressed', async () => {\n // Given\n const typedText = 'test';\n\n // When\n await autocompleteInput.press('t');\n await autocompleteInput.press('e');\n await autocompleteInput.press('s');\n await autocompleteInput.press('t');\n await page.keyboard.press('End');\n await page.waitForChanges();\n\n // Then\n const cursorPositionAfter = await autocompleteInput.getProperty('selectionStart');\n expect(cursorPositionAfter).toEqual(typedText.length);\n const focusedInput = await page.find('wcs-select > input.autocomplete-field:focus');\n expect(focusedInput).toBeDefined();\n });\n it('focus textbox, filter listbox, remove visual focus from listbox when any printable character', async () => {\n // Given\n const allOptions = await page.findAll('wcs-select-option');\n\n // When\n await wcsSelect.focus();\n await page.keyboard.press('a');\n await page.waitForChanges();\n\n // Then\n const focusedInput = await page.find('wcs-select > input.autocomplete-field:focus');\n expect(focusedInput).toBeDefined(); // Focus textbox\n const optionsWithFilter = await page.findAll('wcs-select-option:not([aria-hidden])');\n expect(optionsWithFilter.length).toBeLessThan(allOptions.length); // Filter listbox\n const visuallyFocusedOption = await page.find('wcs-select-option[highlighted]');\n expect(visuallyFocusedOption).toBeNull(); // Remove visual focus from listbox\n });\n });\n //endregion\n\n it('Should handle asynchronous options loading with an initial value and update the label', async () => {\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select value=\"2\">\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n\n expect(select.shadowRoot.querySelector('.wcs-select-value')).toBeNull(); // Verify initial value is displayed\n\n // Add options\n await page.$eval('wcs-select', (el: HTMLElement) => {\n el.innerHTML = `\n <wcs-select-option value=\"1\">One</wcs-select-option>\n <wcs-select-option value=\"2\">Two</wcs-select-option>\n <wcs-select-option value=\"3\">Three</wcs-select-option>\n <wcs-select-option value=\"4\">Four</wcs-select-option>\n `;\n });\n await page.waitForChanges();\n\n expect(select.shadowRoot.querySelector('.wcs-select-value')).toEqualText(\"Two\"); // Verify initial value is displayed\n });\n\n it('[Multiple] Should handle asynchronous options loading with an initial value and update the label', async () => {\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-select multiple>\n </wcs-select>\n `);\n const select = await page.find('wcs-select');\n select.setProperty('value', ['2', '3']);\n await page.waitForChanges();\n\n expect(select.shadowRoot.querySelector('.wcs-select-value')).toBeNull(); // Verify initial value is displayed\n\n // Add options\n await page.$eval('wcs-select', (el: HTMLElement) => {\n el.innerHTML = `\n <wcs-select-option value=\"1\">One</wcs-select-option>\n <wcs-select-option value=\"2\">Two</wcs-select-option>\n <wcs-select-option value=\"3\">Three</wcs-select-option>\n <wcs-select-option value=\"4\">Four</wcs-select-option>\n `;\n });\n await page.waitForChanges();\n\n expect(select.shadowRoot.querySelector('.wcs-select-value')).toEqualText(\"Two, Three\"); // Verify initial value is displayed\n });\n\n});\n\n"]}
@@ -752,7 +752,7 @@ export class Select {
752
752
  onAutocompleteInputEvent(e) {
753
753
  var _a;
754
754
  const filter = (_a = this.autocompleteInput.value) !== null && _a !== void 0 ? _a : '';
755
- this.setAutocompleteValue(filter);
755
+ this.setAutocompleteValue(filter, false, true); // fromUserInteraction = true
756
756
  // Avoid the inputEvent event to bubble and be emitted, we rather use wcsFilterChange in this case :
757
757
  e.stopPropagation();
758
758
  }
@@ -760,13 +760,15 @@ export class Select {
760
760
  * Set the autocomplete value and open the select if needed.
761
761
  * @param filter - The new filter value
762
762
  * @param isReset - If true, the filter is reset and the select is closed
763
+ * @param fromUserInteraction - If true, the change comes from user interaction (typing), if false it's programmatic
763
764
  * @private
764
765
  */
765
- setAutocompleteValue(filter, isReset = false) {
766
+ setAutocompleteValue(filter, isReset = false, fromUserInteraction = false) {
766
767
  var _a, _b;
767
768
  this.clearHighlightOnLastHighlightedOption();
768
769
  const newValueIsDifferentFromLastModifiedOption = this.lastModifiedOptionElement == null || ((_a = this.lastModifiedOptionElement) === null || _a === void 0 ? void 0 : _a.textContent) !== this.autocompleteValue;
769
- if (!this.expanded && newValueIsDifferentFromLastModifiedOption && !isReset) {
770
+ // Only open the select automatically when the change comes from user interaction
771
+ if (!this.expanded && newValueIsDifferentFromLastModifiedOption && !isReset && fromUserInteraction) {
770
772
  this.open();
771
773
  }
772
774
  // Prevents client-side filtering logic from being applied when serverMode is enabled.
@@ -835,14 +837,14 @@ export class Select {
835
837
  var _a;
836
838
  const ariaLabelValue = `${this.labelElement ? this.labelElement.innerText : ''} ${this.hasValue ? this.displayText : ''}`.trimEnd();
837
839
  const noResultContainerId = 'no-result-container';
838
- return (h(Host, Object.assign({ key: '6a973d4f68de6f668fda8b17de1da78b94076dc0', class: this.expanded ? 'expanded ' : '', overlayDirection: this.overlayDirection }, this.focusedAttributes(), { role: !this.autocomplete ? "combobox" : null, "aria-haspopup": !this.autocomplete ? "listbox" : null, "aria-owns": !this.autocomplete ? this.optionsId : null, "aria-controls": !this.autocomplete ? this.optionsId : null, "aria-disabled": !this.autocomplete ? (this.disabled ? 'true' : null) : null, "aria-required": !this.autocomplete ? (this.required ? 'true' : 'false') : null, "aria-expanded": !this.autocomplete ? (this.expanded ? 'true' : 'false') : null, "aria-multiselectable": !this.autocomplete ? (this.multiple ? 'true' : 'false') : null, "aria-label": !this.autocomplete ? ariaLabelValue : null }), h("div", { key: '190343789a5d2b4227b4a9822348aa087b4bbbad', class: "wcs-select-control" }, h("div", { key: '2f61ddd11d08bd25d8acf00ecfdced4a97a33320', class: "wcs-select-value-container" }, this.hasValue
840
+ return (h(Host, Object.assign({ key: '71154caab9c0b2244716f5c5626cc0de3ed7d327', class: this.expanded ? 'expanded ' : '', overlayDirection: this.overlayDirection }, this.focusedAttributes(), { role: !this.autocomplete ? "combobox" : null, "aria-haspopup": !this.autocomplete ? "listbox" : null, "aria-owns": !this.autocomplete ? this.optionsId : null, "aria-controls": !this.autocomplete ? this.optionsId : null, "aria-disabled": !this.autocomplete ? (this.disabled ? 'true' : null) : null, "aria-required": !this.autocomplete ? (this.required ? 'true' : 'false') : null, "aria-expanded": !this.autocomplete ? (this.expanded ? 'true' : 'false') : null, "aria-multiselectable": !this.autocomplete ? (this.multiple ? 'true' : 'false') : null, "aria-label": !this.autocomplete ? ariaLabelValue : null }), h("div", { key: '2dff342eb864a28ac960583102de88cfd7f63d98', class: "wcs-select-control" }, h("div", { key: '0f2028f2eb8245fa08da06ccebbfbac880d0e090', class: "wcs-select-value-container" }, this.hasValue
839
841
  ?
840
842
  (this.chips ?
841
843
  this.values.map((option) => h(SelectChips, { disabled: this.disabled, option: option, onRemove: this.removeChip.bind(this) }))
842
844
  : (!this.autocomplete || this.autocomplete && this.multiple) &&
843
845
  h("label", { class: "wcs-select-value" }, this.displayText))
844
- : !this.autocomplete && h("label", { class: "wcs-select-placeholder" }, this.placeholder), this.autocomplete && h("input", Object.assign({ key: '7f2fc76276628b45ebcbcb40f64a82acafa5e192', class: "autocomplete-field", value: this.autocompleteValue, role: "combobox", "aria-haspopup": "listbox", "aria-label": ariaLabelValue, "aria-describedby": noResultContainerId, "aria-disabled": this.disabled ? 'true' : null, "aria-expanded": this.expanded ? 'true' : 'false', "aria-controls": this.optionsId, "aria-owns": this.optionsId, "aria-multiselectable": this.multiple ? 'true' : 'false', "aria-autocomplete": "list", autocomplete: "off", disabled: this.disabled, required: this.required, onBlur: (e) => this.onAutocompleteFieldBlur(e), placeholder: ((_a = this.values) === null || _a === void 0 ? void 0 : _a.length) ? null : this.placeholder, onInput: (e) => this.onAutocompleteInputEvent(e), ref: el => this.autocompleteInput = el }, this.inheritedAttributes))), h(SelectArrow, { key: 'a6075fc5a325bc1e19cc3d62ddbffb8a3409d454', up: this.expanded })), h("div", { key: '36a6ea6029659db97f174c12a4a5ff3c4c0bfd69', class: "wcs-select-options", id: this.optionsId, role: "listbox" }, h("slot", { key: '3a02c19f0b77c98807a684ae77f2612c422cb096', name: "options", onSlotchange: this.onSlotchange.bind(this) }), (this.autocomplete && this.showNoResultFoundLabel) &&
845
- h("div", { key: '82ecd4b70ed11d8497e9d5d3aea0c3c95f20ec36', role: "alert", id: noResultContainerId, class: "noresult-container" }, h("slot", { key: '607e7d9c3c112e64218d2170ca4e07aaf5cbd25c', name: "filter-no-result" }, h("span", { key: 'da3800fefd8f57c0d7b62e261933e3293bea2161' }, "Aucun r\u00E9sultat"))))));
846
+ : !this.autocomplete && h("label", { class: "wcs-select-placeholder" }, this.placeholder), this.autocomplete && h("input", Object.assign({ key: '000f05300690b402f77b210b4e6808e73647d607', class: "autocomplete-field", value: this.autocompleteValue, role: "combobox", "aria-haspopup": "listbox", "aria-label": ariaLabelValue, "aria-describedby": noResultContainerId, "aria-disabled": this.disabled ? 'true' : null, "aria-expanded": this.expanded ? 'true' : 'false', "aria-controls": this.optionsId, "aria-owns": this.optionsId, "aria-multiselectable": this.multiple ? 'true' : 'false', "aria-autocomplete": "list", autocomplete: "off", disabled: this.disabled, required: this.required, onBlur: (e) => this.onAutocompleteFieldBlur(e), placeholder: ((_a = this.values) === null || _a === void 0 ? void 0 : _a.length) ? null : this.placeholder, onInput: (e) => this.onAutocompleteInputEvent(e), ref: el => this.autocompleteInput = el }, this.inheritedAttributes))), h(SelectArrow, { key: 'cbbb2ef8b0c49b69c2a3509e6444f52d114efd23', up: this.expanded })), h("div", { key: '9330811ed0b8e0a2380692cdca34f2196b087466', class: "wcs-select-options", id: this.optionsId, role: "listbox" }, h("slot", { key: '9efd1b1d83e7bc1af1733909060854025c21df07', name: "options", onSlotchange: this.onSlotchange.bind(this) }), (this.autocomplete && this.showNoResultFoundLabel) &&
847
+ h("div", { key: 'a8438df62c26f1d4cfcd25c43d5636031138c71f', role: "alert", id: noResultContainerId, class: "noresult-container" }, h("slot", { key: '95397947cdef93512fec2c168ca42893500950ba', name: "filter-no-result" }, h("span", { key: 'd5fc78e9ba099a017f6ed3116b23aa929c34dcb9' }, "Aucun r\u00E9sultat"))))));
846
848
  }
847
849
  static get is() { return "wcs-select"; }
848
850
  static get encapsulation() { return "shadow"; }