-
Notifications
You must be signed in to change notification settings - Fork 102
/
Copy pathquery-parameters.spec.ts
64 lines (59 loc) · 2.4 KB
/
query-parameters.spec.ts
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
import { test, expect } from "@playwright/test";
test("when directly open the story, remain non-ladle query parameters", async ({
page,
}) => {
await page.goto("/?story=query-parameters--query-parameters");
await page.waitForSelector("[data-storyloaded]");
await page.waitForTimeout(1000);
const url = page.url();
expect(url).toContain("story=query-parameters--query-parameters");
expect(url).toContain("foo=bar");
});
test("when click the menu and open the story, remain non-ladle query parameters", async ({
page,
}) => {
await page.goto("/?story=a11y--issues"); // Open a some story
await page.getByText("Query parameters").click(); // Open the accordion of query parameters stories
await page.getByRole("link", { name: "Query parameters" }).click(); // Open the target story
await page.waitForSelector("[data-storyloaded]");
await page.waitForTimeout(1000);
const url = page.url();
expect(url).toContain("story=query-parameters--query-parameters");
expect(url).toContain("foo=bar");
});
test("when move a story from the query parameters story, remove non-ladle query parameters", async ({
page,
}) => {
// Open the query parameters story
await page.goto("/?story=query-parameters--query-parameters");
await page.waitForSelector("[data-storyloaded]");
// Open a some story
await page.getByText("A11y").click();
await page.getByRole("link", { name: "Issues" }).click();
await page.waitForSelector("[data-storyloaded]");
await page.waitForTimeout(1000);
const url = page.url();
expect(url).toContain("story=a11y--issues");
expect(url).not.toContain("foo=bar"); // The non-ladle query parameter is removed
});
test("preserve user query params after ladle query param update", async ({
page,
}) => {
await page.goto("/?story=query-parameters--query-parameters");
await page.waitForSelector("[data-storyloaded]");
const button = page.locator('[data-testid="addon-width"]');
await button.click();
const medium = page.locator("#width-medium");
await medium.click();
await page.waitForTimeout(1000);
const url = page.url();
expect(url).toContain("story=query-parameters--query-parameters");
expect(url).toContain("foo=bar");
expect(url).toContain("width=768");
const unset = page.locator("#width-unset");
await unset.click();
await page.waitForTimeout(1000);
const newUrl = page.url();
expect(newUrl).toContain("foo=bar");
expect(newUrl).not.toContain("width=768");
});