chore(deps): update Biome with config & other deps #492
2 errors, 1 fail, 89 pass in 3m 54s
92 tests 89 ✅ 3m 54s ⏱️
75 suites 0 💤
1 files 1 ❌ 2 🔥
Results for commit 9de2b56.
Annotations
Check failure on line 0 in example10.spec.ts
github-actions / Playwright E2E Test Results
Example 10 - Large Select Dataset with Virtual Scroll › select should use virtual scroll (example10.spec.ts) with error
artifacts/Playwright E2E Test Results/results.xml [took 1m 0s]
Raw output
Test timeout of 30000ms exceeded.
[chromium] › example10.spec.ts:4:7 › Example 10 - Large Select Dataset with Virtual Scroll › select should use virtual scroll
Test timeout of 30000ms exceeded.
Error: locator.click: Test timeout of 30000ms exceeded.
Call log:
- waiting for locator('[data-test="select10-1"] .ms-drop label').filter({ hasText: '5001' })
19 | await page.locator('[data-test="select10-1"].ms-parent').click();
20 | await ulElm1.evaluate(e => (e.scrollTop = e.scrollHeight / 2));
> 21 | await page.locator('[data-test="select10-1"] .ms-drop label').filter({ hasText: '5001' }).click();
| ^
22 | await page.getByRole('button', { name: '0, 1, 5001' });
23 |
24 | // scroll to the end and select last 2 labels
at /home/runner/work/multiple-select-vanilla/multiple-select-vanilla/playwright/e2e/example10.spec.ts:21:95
Error Context: ../../test-results/example10-Example-10---Lar-573b6-t-should-use-virtual-scroll-chromium/error-context.md
attachment #2: trace (application/zip) ─────────────────────────────────────────────────────────
../../test-results/example10-Example-10---Lar-573b6-t-should-use-virtual-scroll-chromium/trace.zip
Usage:
pnpm exec playwright show-trace ../../test-results/example10-Example-10---Lar-573b6-t-should-use-virtual-scroll-chromium/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Test timeout of 30000ms exceeded.
Error: locator.click: Test timeout of 30000ms exceeded.
Call log:
- waiting for locator('[data-test="select10-1"] .ms-drop label').filter({ hasText: '5001' })
19 | await page.locator('[data-test="select10-1"].ms-parent').click();
20 | await ulElm1.evaluate(e => (e.scrollTop = e.scrollHeight / 2));
> 21 | await page.locator('[data-test="select10-1"] .ms-drop label').filter({ hasText: '5001' }).click();
| ^
22 | await page.getByRole('button', { name: '0, 1, 5001' });
23 |
24 | // scroll to the end and select last 2 labels
at /home/runner/work/multiple-select-vanilla/multiple-select-vanilla/playwright/e2e/example10.spec.ts:21:95
attachment #1: video (video/webm) ──────────────────────────────────────────────────────────────
../../test-results/example10-Example-10---Lar-573b6-t-should-use-virtual-scroll-chromium-retry1/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
Error Context: ../../test-results/example10-Example-10---Lar-573b6-t-should-use-virtual-scroll-chromium-retry1/error-context.md
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
../../test-results/example10-Example-10---Lar-573b6-t-should-use-virtual-scroll-chromium-retry1/trace.zip
Usage:
pnpm exec playwright show-trace ../../test-results/example10-Example-10---Lar-573b6-t-should-use-virtual-scroll-chromium-retry1/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
[[ATTACHMENT|../test-results/example10-Example-10---Lar-573b6-t-should-use-virtual-scroll-chromium/error-context.md]]
[[ATTACHMENT|../test-results/example10-Example-10---Lar-573b6-t-should-use-virtual-scroll-chromium/trace.zip]]
[[ATTACHMENT|../test-results/example10-Example-10---Lar-573b6-t-should-use-virtual-scroll-chromium-retry1/video.webm]]
[[ATTACHMENT|../test-results/example10-Example-10---Lar-573b6-t-should-use-virtual-scroll-chromium-retry1/error-context.md]]
[[ATTACHMENT|../test-results/example10-Example-10---Lar-573b6-t-should-use-virtual-scroll-chromium-retry1/trace.zip]]
Check failure on line 0 in options36.spec.ts
github-actions / Playwright E2E Test Results
Options 36 - Infinite Scroll › select should use infinite scroll (options36.spec.ts) with error
artifacts/Playwright E2E Test Results/results.xml [took 1m 0s]
Raw output
Test timeout of 30000ms exceeded.
[chromium] › options36.spec.ts:4:7 › Options 36 - Infinite Scroll › select should use infinite scroll
Test timeout of 30000ms exceeded.
Error: locator.click: Test timeout of 30000ms exceeded.
Call log:
- waiting for locator('[data-test="select2"] .ms-drop label').filter({ hasText: '1003' })
42 | await selectLoc2.click();
43 | await ulElm2.evaluate(e => (e.scrollTop = e.scrollHeight / 2));
> 44 | await page.locator('[data-test="select2"] .ms-drop label').filter({ hasText: '1003' }).click();
| ^
45 | await page.getByRole('button', { name: '5, 6, 1003' });
46 |
47 | // scroll to near the end and select last 2 labels
at /home/runner/work/multiple-select-vanilla/multiple-select-vanilla/playwright/e2e/options36.spec.ts:44:92
Error Context: ../../test-results/options36-Options-36---Inf-3982c--should-use-infinite-scroll-chromium/error-context.md
attachment #2: trace (application/zip) ─────────────────────────────────────────────────────────
../../test-results/options36-Options-36---Inf-3982c--should-use-infinite-scroll-chromium/trace.zip
Usage:
pnpm exec playwright show-trace ../../test-results/options36-Options-36---Inf-3982c--should-use-infinite-scroll-chromium/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Test timeout of 30000ms exceeded.
Error: locator.click: Test timeout of 30000ms exceeded.
Call log:
- waiting for locator('[data-test="select2"] .ms-drop label').filter({ hasText: '1003' })
42 | await selectLoc2.click();
43 | await ulElm2.evaluate(e => (e.scrollTop = e.scrollHeight / 2));
> 44 | await page.locator('[data-test="select2"] .ms-drop label').filter({ hasText: '1003' }).click();
| ^
45 | await page.getByRole('button', { name: '5, 6, 1003' });
46 |
47 | // scroll to near the end and select last 2 labels
at /home/runner/work/multiple-select-vanilla/multiple-select-vanilla/playwright/e2e/options36.spec.ts:44:92
attachment #1: video (video/webm) ──────────────────────────────────────────────────────────────
../../test-results/options36-Options-36---Inf-3982c--should-use-infinite-scroll-chromium-retry1/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
Error Context: ../../test-results/options36-Options-36---Inf-3982c--should-use-infinite-scroll-chromium-retry1/error-context.md
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
../../test-results/options36-Options-36---Inf-3982c--should-use-infinite-scroll-chromium-retry1/trace.zip
Usage:
pnpm exec playwright show-trace ../../test-results/options36-Options-36---Inf-3982c--should-use-infinite-scroll-chromium-retry1/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
[[ATTACHMENT|../test-results/options36-Options-36---Inf-3982c--should-use-infinite-scroll-chromium/error-context.md]]
[[ATTACHMENT|../test-results/options36-Options-36---Inf-3982c--should-use-infinite-scroll-chromium/trace.zip]]
[[ATTACHMENT|../test-results/options36-Options-36---Inf-3982c--should-use-infinite-scroll-chromium-retry1/video.webm]]
[[ATTACHMENT|../test-results/options36-Options-36---Inf-3982c--should-use-infinite-scroll-chromium-retry1/error-context.md]]
[[ATTACHMENT|../test-results/options36-Options-36---Inf-3982c--should-use-infinite-scroll-chromium-retry1/trace.zip]]
Check warning on line 0 in options37.spec.ts
github-actions / Playwright E2E Test Results
Option 37 - Navigation Highlight › first select with single group select (options37.spec.ts) failed
artifacts/Playwright E2E Test Results/results.xml [took 13s]
Raw output
expect(locator).toBeChecked() failed
[chromium] › options37.spec.ts:4:7 › Option 37 - Navigation Highlight › first select with single group select
Error: expect(locator).toBeChecked() failed
Locator: locator('[data-test=select4] .ms-select-all input[type=checkbox]')
Expected: checked
Received: unchecked
Timeout: 5000ms
Call log:
- Expect "toBeChecked" with timeout 5000ms
- waiting for locator('[data-test=select4] .ms-select-all input[type=checkbox]')
9 × locator resolved to <input type="checkbox" aria-checked="false" data-name="selectAll"/>
- unexpected value "unchecked"
60 | await page.getByRole('option', { name: 'cde' }).click();
61 | const selectAllLoc = await page.locator('[data-test=select4] .ms-select-all input[type=checkbox]');
> 62 | expect(selectAllLoc).toBeChecked();
| ^
63 | await expect(page.locator('[data-test=select4].ms-drop input[data-name="selectItem"]')).toHaveCount(2);
64 | await expect(page.locator('[data-test=select4].ms-drop ul li.selected input[data-name="selectItem"]')).toHaveCount(2);
65 | await expect(page.locator('[data-test=select4] .ms-choice span')).toHaveText('abc, cde, def');
at /home/runner/work/multiple-select-vanilla/multiple-select-vanilla/playwright/e2e/options37.spec.ts:62:26
Error: expect(locator).toHaveCount(expected) failed
Locator: locator('[data-test=select4].ms-drop ul li.selected input[data-name="selectItem"]')
Expected: 2
Received: 0
Timeout: 5000ms
Call log:
- Expect "toHaveCount" with timeout 5000ms
- waiting for locator('[data-test=select4].ms-drop ul li.selected input[data-name="selectItem"]')
9 × locator resolved to 0 elements
- unexpected value "0"
62 | expect(selectAllLoc).toBeChecked();
63 | await expect(page.locator('[data-test=select4].ms-drop input[data-name="selectItem"]')).toHaveCount(2);
> 64 | await expect(page.locator('[data-test=select4].ms-drop ul li.selected input[data-name="selectItem"]')).toHaveCount(2);
| ^
65 | await expect(page.locator('[data-test=select4] .ms-choice span')).toHaveText('abc, cde, def');
66 | await expect(page.getByRole('button', { name: 'cde, def' })).toHaveCount(1);
67 | });
at /home/runner/work/multiple-select-vanilla/multiple-select-vanilla/playwright/e2e/options37.spec.ts:64:108
Error Context: ../../test-results/options37-Option-37---Navi-4abaf-ct-with-single-group-select-chromium/error-context.md
attachment #2: trace (application/zip) ─────────────────────────────────────────────────────────
../../test-results/options37-Option-37---Navi-4abaf-ct-with-single-group-select-chromium/trace.zip
Usage:
pnpm exec playwright show-trace ../../test-results/options37-Option-37---Navi-4abaf-ct-with-single-group-select-chromium/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: expect(locator).toBeChecked() failed
Locator: locator('[data-test=select4] .ms-select-all input[type=checkbox]')
Expected: checked
Received: unchecked
Timeout: 5000ms
Call log:
- Expect "toBeChecked" with timeout 5000ms
- waiting for locator('[data-test=select4] .ms-select-all input[type=checkbox]')
9 × locator resolved to <input type="checkbox" aria-checked="false" data-name="selectAll"/>
- unexpected value "unchecked"
60 | await page.getByRole('option', { name: 'cde' }).click();
61 | const selectAllLoc = await page.locator('[data-test=select4] .ms-select-all input[type=checkbox]');
> 62 | expect(selectAllLoc).toBeChecked();
| ^
63 | await expect(page.locator('[data-test=select4].ms-drop input[data-name="selectItem"]')).toHaveCount(2);
64 | await expect(page.locator('[data-test=select4].ms-drop ul li.selected input[data-name="selectItem"]')).toHaveCount(2);
65 | await expect(page.locator('[data-test=select4] .ms-choice span')).toHaveText('abc, cde, def');
at /home/runner/work/multiple-select-vanilla/multiple-select-vanilla/playwright/e2e/options37.spec.ts:62:26
Error: expect(locator).toHaveCount(expected) failed
Locator: locator('[data-test=select4].ms-drop ul li.selected input[data-name="selectItem"]')
Expected: 2
Received: 0
Timeout: 5000ms
Call log:
- Expect "toHaveCount" with timeout 5000ms
- waiting for locator('[data-test=select4].ms-drop ul li.selected input[data-name="selectItem"]')
9 × locator resolved to 0 elements
- unexpected value "0"
62 | expect(selectAllLoc).toBeChecked();
63 | await expect(page.locator('[data-test=select4].ms-drop input[data-name="selectItem"]')).toHaveCount(2);
> 64 | await expect(page.locator('[data-test=select4].ms-drop ul li.selected input[data-name="selectItem"]')).toHaveCount(2);
| ^
65 | await expect(page.locator('[data-test=select4] .ms-choice span')).toHaveText('abc, cde, def');
66 | await expect(page.getByRole('button', { name: 'cde, def' })).toHaveCount(1);
67 | });
at /home/runner/work/multiple-select-vanilla/multiple-select-vanilla/playwright/e2e/options37.spec.ts:64:108
attachment #1: video (video/webm) ──────────────────────────────────────────────────────────────
../../test-results/options37-Option-37---Navi-4abaf-ct-with-single-group-select-chromium-retry1/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
Error Context: ../../test-results/options37-Option-37---Navi-4abaf-ct-with-single-group-select-chromium-retry1/error-context.md
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
../../test-results/options37-Option-37---Navi-4abaf-ct-with-single-group-select-chromium-retry1/trace.zip
Usage:
pnpm exec playwright show-trace ../../test-results/options37-Option-37---Navi-4abaf-ct-with-single-group-select-chromium-retry1/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
[[ATTACHMENT|../test-results/options37-Option-37---Navi-4abaf-ct-with-single-group-select-chromium/error-context.md]]
[[ATTACHMENT|../test-results/options37-Option-37---Navi-4abaf-ct-with-single-group-select-chromium/trace.zip]]
[[ATTACHMENT|../test-results/options37-Option-37---Navi-4abaf-ct-with-single-group-select-chromium-retry1/video.webm]]
[[ATTACHMENT|../test-results/options37-Option-37---Navi-4abaf-ct-with-single-group-select-chromium-retry1/error-context.md]]
[[ATTACHMENT|../test-results/options37-Option-37---Navi-4abaf-ct-with-single-group-select-chromium-retry1/trace.zip]]
Check notice on line 0 in .github
github-actions / Playwright E2E Test Results
92 tests found
There are 92 tests, see "Raw output" for the full list of tests.
Raw output
events.spec.ts ‑ Events Demo › executing multiple actions with ms-select should fire multiple events
example01.spec.ts ‑ Example 01 - Basic Select › basic select should have dropdown with certain list items
example02.spec.ts ‑ Example 02 - Multiple Select › first select with multiple selection
example02.spec.ts ‑ Example 02 - Multiple Select › second select with multiple selection with optgroup and expect entire group to be selected
example03.spec.ts ‑ Example 03 - Multiple Width › each item should be around 44px wide and expect item selected to show in select parent element
example03.spec.ts ‑ Example 03 - Multiple Width › second select and expect optgroup selection to select the entire group when optgroup is selected
example04.spec.ts ‑ Example 04 - Select Auto-Width › every select drop parent should have different width
example05.spec.ts ‑ Example 05 - disabled select › should expect a disabled select element
example06.spec.ts ‑ Example 06 - Disabled items › first select disabled selection February, March are shown but not clickable
example06.spec.ts ‑ Example 06 - Disabled items › second select disabled group selection Group1, Option1,2,3 should not be toggable
example07.spec.ts ‑ Example 07 - Submit Data › submit form and display alert with serialized form data in an alert
example07.spec.ts ‑ Example 07 - Submit Data › submit form with multiple data in second select and display alert with serialized form data in an alert
example08.spec.ts ‑ Example 08 - Data Property › all select dropdown should have data
example09.spec.ts ‑ Example 09 - Locale › changing locale should be reflected in dropdown & selected text
example09.spec.ts ‑ Example 09 - Locale › fixed named Locale import
example10.spec.ts ‑ Example 10 - Large Select Dataset with Virtual Scroll › select should use virtual scroll
example11.spec.ts ‑ Example 11 - Bootstrap Theme › select element have different element height & text font size
example12.spec.ts ‑ Example 12 - Checkbox/Radio icons › 1st select show radio icons & 2nd select shows checkbox icons
example13.spec.ts ‑ Example 13 - Destroy Select › creating & destroying select multiple times
example13.spec.ts ‑ Example 13 - Destroy Select › modifying option data
example14.spec.ts ‑ Example 14 - The Divider › multiple select with divider list items
example15.spec.ts ‑ Example 15 - Dark Mode › multiple select with dark mode
example16.spec.ts ‑ Example 16 - Avatar Images as Text Template › show avatar images
i18n.spec.ts ‑ I18N Demo › select drop is using French locale
methods01.spec.ts ‑ Methods 01 - getOptions() › method returns default options when calling the method
methods02.spec.ts ‑ Methods 02 - refreshOtions() › clicking on the 1st button "refreshOptions" will remove the search filter
methods02.spec.ts ‑ Methods 02 - refreshOtions() › clicking on the 2nd button "toggleDarkMode" will toggle dark mode on 2nd select
methods03.spec.ts ‑ Methods 03 - setSelects() / getSelects() › calling setSelects(1,3) and expect values & options to be displayed in alert
methods04.spec.ts ‑ Methods 04 - enable/disable › disabling & enabling drop dynamically
methods05.spec.ts ‑ Methods 05 - open/close › open & close drop dynamically
methods06.spec.ts ‑ Methods 06 - check/uncheck › clicking Check and Uncheck should change selection on all select drops
methods07.spec.ts ‑ Methods 07 - checkAll/uncheckAll › calling checkAll/uncheckAll should be reflected in the select dropdown
methods08.spec.ts ‑ Methods 08 - checkAll/uncheckAll › calling checkAll/uncheckAll should be reflected in the select dropdown
methods09.spec.ts ‑ Methods 09 - focus/blur methods › calling focus or blur method should apply it to the input
methods10.spec.ts ‑ Methods 10 - refresh() method › adding new options with disabled or selected in select drop
methods11.spec.ts ‑ Methods 11 - Destroy() method › destroy & recreating the ms-select could be called multiple times
methods12.spec.ts ‑ Methods 12 - getData() › method returns default options when calling the method
methods13.spec.ts ‑ Methods 13 - setData() › should update options and data length after setData (basic array)
methods13.spec.ts ‑ Methods 13 - setData() › should update options and data length after setData (group array)
methods13.spec.ts ‑ Methods 13 - setData() › should update options and data length after setData (object)
methods13.spec.ts ‑ Methods 13 - setData() › should update options and data length after setData (string array)
options01.spec.ts ‑ Options 01 - Placeholder › first and second select have placeholder
options02.spec.ts ‑ Options 02 - Single Radio › have radio button and expect drop to close after each selection
options03.spec.ts ‑ Options 03 - Hide Select All › multiple select does not show Select All
options04.spec.ts ‑ Options 04 - Hide OptGroup › no optgroup input should be found
options05.spec.ts ‑ Options 05 - Custom Drop Width › drop width is ~580px
options06.spec.ts ‑ Options 06 - Custom Drop Width › drop height is ~130px
options07.spec.ts ‑ Options 07 - Max Height Unit › drop should display 5 labels at first and expect a fixed height when changing height unit input
options08.spec.ts ‑ Options 08 - Drop Up showing on top of select › drop shows up (upward)
options09.spec.ts ‑ Options 09 - Display Number Values › select February & March and expect drop parent to show "2, 3" value numbers
options10.spec.ts ‑ Options 10 - Display Selected Titles › select February & March and expect drop parent to show "February, March" selected text
options11.spec.ts ‑ Options 11 - Display Delimiter › select February & March and expect drop parent to show pipe separator as in "February | March"
options12.spec.ts ‑ Options 12 - Minimum Count Selected › shows a maximum of 8 selected options but 9 selection will show 9 of 19 selected
options13.spec.ts ‑ Options 13 - The Ellipsis › ellipsis is shown after selecting 6+ options
options14.spec.ts ‑ Options 14 - Select is opened › select is already opened when routing to the page
options15.spec.ts ‑ Options 15 - Select keep open › select stays open even when clicking outside the drop but will close when clicking on drop
options16.spec.ts ‑ Options 16 - Open on Hover › drop shows only after hovering the select element
options17.spec.ts ‑ Options 17 - Drop Container › first select should not be visible without a container but all other selects should be visible
options18.spec.ts ‑ Options 18 - Drop Filtering › filtering on all type of select
options19.spec.ts ‑ Options 19 - Filter Only Optgroup › filtering by optgroup
options20.spec.ts ‑ Options 20 - Filter Placeholder › select drop filter has a placeholder text
options21.spec.ts ‑ Options 21 - Filter Accept On Enter › select drop filter has a placeholder text
options22.spec.ts ‑ Options 22 - Filter By Data Length › filter shows only when data collection has over 10 items
options23.spec.ts ‑ Options 23 - Custom Filter › filter starts with text
options24.spec.ts ‑ Options 24 - Show Clear button › clear button expect input to be cleared
options25.spec.ts ‑ Options 25 - Show OK Button › Tab and Shift+Tab to switch from OK button to List
options25.spec.ts ‑ Options 25 - Show OK Button › show OK button on multiple select only
options26.spec.ts ‑ Options 26 - The Styler / CSS Styler › 1st select has February & April with custom CSS styler
options26.spec.ts ‑ Options 26 - The Styler / CSS Styler › 2nd select has January & June with custom styling
options27.spec.ts ‑ Options 27 - Text Template › option labels & selected options shows as html
options28.spec.ts ‑ Options 28 - Label Template › option labels & selected options shows as html
options29.spec.ts ‑ Options 29 - Auto-Adjust Drop Position › first select is showing dropdown & second select is showing dropup
options30.spec.ts ‑ Options 30 - Auto-Adjust Drop Height/Width › each select have different height/width by available space
options31.spec.ts ‑ Options 31 - Use Select Option as Label › both select show selected value numbers & 2nd select can also render value number with html
options32.spec.ts ‑ Options 32 - Sanitizer › select shows image not found and JS alert should be sanitized and not trigger
options33.spec.ts ‑ Example 33 - Classes › select element have different element height & text font size
options34.spec.ts ‑ Options 34 - Show Search Clear button › filtering on all type of select & clear search input
options35.spec.ts ‑ Options 35 - Diacritic Parser › filtering on all type of select & clear search input
options36.spec.ts ‑ Options 36 - Infinite Scroll › select should use infinite scroll
options37.spec.ts ‑ Option 37 - Navigation Highlight › first select with single group select
options38.spec.ts ‑ Options 38 - Dark Mode › clicking on "toggleDarkMode" button will toggle dark mode on all select
options38.spec.ts ‑ Options 38 - Dark Mode › multiple select with dark mode
options39.spec.ts ‑ Options 39 - Label ID › adding a Label id to the select button
options40.spec.ts ‑ Options 40 - Pre-Filter Data › all select dropdown should have data pre-filtered
options41.spec.ts ‑ Options 41 - Pre-Sort Data › all select dropdown should have data pre-filtered
options42.spec.ts ‑ Options 42 - Lazy Load Data › 1st select - lazy load with regular array
options42.spec.ts ‑ Options 42 - Lazy Load Data › 2nd select - lazy load with data array
options42.spec.ts ‑ Options 42 - Lazy Load Data › 3rd select - lazy load with Option Groups
options42.spec.ts ‑ Options 42 - Lazy Load Data › 4th select - lazy load with Filter & OK button
options42.spec.ts ‑ Options 42 - Lazy Load Data › 5th select should show loading then failure icon and text on lazyData reject
options43.spec.ts ‑ Options 43 - Close on Tab › multiple select to close on Tab
options44.spec.ts ‑ Options 44 - tabIndex › adding a tabindex to the select button