-
-
Notifications
You must be signed in to change notification settings - Fork 260
Expand file tree
/
Copy pathVersionSelect_.test.res
More file actions
80 lines (61 loc) · 2.12 KB
/
VersionSelect_.test.res
File metadata and controls
80 lines (61 loc) · 2.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
open Vitest
test("renders current version label", async () => {
let screen = await render(<VersionSelect />)
let el = await screen->getByTestId("version-select")
await element(el)->toBeVisible
let label = await screen->getByText("v12 (latest)")
await element(label)->toBeVisible
})
test("clicking button shows older versions", async () => {
let screen = await render(<VersionSelect />)
// Menu should be hidden initially
let v11 = await screen->getByText("v11")
await element(v11)->notToBeVisible
// Click the trigger button
let button = await screen->getByRole(#button)
await button->click
// Older versions should now be visible
let v11After = await screen->getByText("v11")
await element(v11After)->toBeVisible
let v9 = await screen->getByText("v9.1 - v10.1")
await element(v9)->toBeVisible
let v8 = await screen->getByText("v8.2 - v9.0")
await element(v8)->toBeVisible
let v6 = await screen->getByText("v6.0 - v8.1")
await element(v6)->toBeVisible
})
test("clicking button again closes older versions", async () => {
let screen = await render(<VersionSelect />)
let button = await screen->getByRole(#button)
// Open
await button->click
let v11 = await screen->getByText("v11")
await element(v11)->toBeVisible
// Close
await button->click
let v11After = await screen->getByText("v11")
await element(v11After)->notToBeVisible
})
test("multiple instances have unique popover IDs", async () => {
let screen = await render(
<div>
<div dataTestId="first">
<VersionSelect />
</div>
<div dataTestId="second">
<VersionSelect />
</div>
</div>,
)
let first = await screen->getByTestId("first")
let second = await screen->getByTestId("second")
// Click the button in the first instance
let firstButton = await first->getByRole(#button)
await firstButton->click
// First instance menu should be visible
let firstV11 = await first->getByText("v11")
await element(firstV11)->toBeVisible
// Second instance menu should remain hidden
let secondV11 = await second->getByText("v11")
await element(secondV11)->notToBeVisible
})