1
- import { test } from '@playwright/test' ;
1
+ import { expect , test } from '@playwright/test' ;
2
2
3
3
test . describe ( 'Options 25 - Show OK Button' , ( ) => {
4
4
test ( 'show OK button on multiple select only' , async ( { page } ) => {
@@ -8,18 +8,45 @@ test.describe('Options 25 - Show OK Button', () => {
8
8
await page . getByRole ( 'option' ) . filter ( { hasText : 'March' } ) . locator ( 'span' ) . click ( ) ;
9
9
await page . getByRole ( 'option' ) . filter ( { hasText : 'February' } ) . locator ( 'span' ) . click ( ) ;
10
10
await page . getByRole ( 'button' , { name : 'OK' } ) . click ( ) ;
11
+ await expect ( page . locator ( 'div[data-test=select1] .ms-drop' ) ) . toBeHidden ( ) ;
11
12
12
13
await page . locator ( '[data-test=select2].ms-parent' ) . click ( ) ;
13
14
await page . getByRole ( 'option' , { name : 'Group 1' } ) . click ( ) ;
14
15
await page . getByRole ( 'option' , { name : 'Group 2' } ) . click ( ) ;
15
16
await page . getByRole ( 'button' , { name : 'OK' } ) . click ( ) ;
17
+ await expect ( page . locator ( 'div[data-test=select2] .ms-drop' ) ) . toBeHidden ( ) ;
16
18
17
19
await page . locator ( '[data-test=select3].ms-parent' ) . click ( ) ;
18
20
await page . locator ( 'div:nth-child(2) > label > .icon-checkbox-container' ) . click ( ) ;
19
21
await page . getByRole ( 'button' , { name : 'OK' } ) . click ( ) ;
22
+ await expect ( page . locator ( 'div[data-test=select3] .ms-drop' ) ) . toBeHidden ( ) ;
20
23
21
24
await page . locator ( '[data-test=select4].ms-parent' ) . click ( ) ;
22
25
await page . locator ( '[data-test=select4] ul > li' ) . nth ( 2 ) . click ( ) ;
23
26
await page . locator ( 'span' ) . filter ( { hasText : 'Third' } ) ;
27
+ await expect ( page . locator ( 'div[data-test=select4] .ms-drop' ) ) . toBeHidden ( ) ;
28
+ } ) ;
29
+
30
+ test ( 'Tab and Shift+Tab to switch from OK button to List' , async ( { page } ) => {
31
+ // 1st select
32
+ await page . goto ( '#/options25' ) ;
33
+ await page . locator ( '[data-test=select1].ms-parent' ) . click ( ) ;
34
+ await page . getByRole ( 'option' , { name : 'April' } ) . click ( ) ;
35
+ await page . getByRole ( 'option' ) . filter ( { hasText : 'March' } ) . locator ( 'span' ) . click ( ) ;
36
+ await page . getByRole ( 'option' ) . filter ( { hasText : 'February' } ) . locator ( 'span' ) . click ( ) ;
37
+ await expect ( page . locator ( 'div[data-test=select1] .ms-drop' ) ) . not . toBeHidden ( ) ;
38
+ await page . keyboard . press ( 'Tab' ) ;
39
+ await expect ( page . locator ( 'div[data-test=select1] .ms-ok-button' ) ) . toBeFocused ( ) ;
40
+ await page . keyboard . press ( 'Shift+Tab' ) ;
41
+ await expect ( page . locator ( 'div[data-test=select1] .ms-select-all input' ) ) . toBeFocused ( ) ;
42
+ await page . keyboard . press ( 'Shift+Tab' ) ;
43
+ await expect ( page . locator ( 'div[data-test=select1] .ms-drop' ) ) . toBeHidden ( ) ;
44
+
45
+ // last select Shift+Tab will close drop
46
+ await page . locator ( '[data-test=select4].ms-parent' ) . click ( ) ;
47
+ await page . keyboard . press ( 'ArrowDown' ) ;
48
+ await page . keyboard . press ( 'ArrowDown' ) ;
49
+ await page . keyboard . press ( 'Shift+Tab' ) ;
50
+ await expect ( page . locator ( 'div[data-test=select4] .ms-drop' ) ) . toBeHidden ( ) ;
24
51
} ) ;
25
52
} ) ;
0 commit comments