Skip to content

Commit 00cd477

Browse files
committed
update expectUrl
1 parent a47e239 commit 00cd477

File tree

1 file changed

+16
-13
lines changed

1 file changed

+16
-13
lines changed

site/e2e/expectUrl.ts

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,29 @@
1-
import { expect, type Page, waitFor } from "@playwright/test";
1+
import { expect, type Page } from "@playwright/test";
22

3-
export const expectUrl = expect.extend({
4-
async toHavePath(page: Page, pathname: string) {
5-
let url;
6-
let pass;
3+
type PollingOptions = { timeout?: number; intervals?: number[] };
74

5+
export const expectUrl = expect.extend({
6+
/**
7+
* toHavePathName is an alternative to `toHaveURL` that won't fail if the URL contains query parameters.
8+
*/
9+
async toHavePathName(page: Page, expected: string, options?: PollingOptions) {
10+
let actual: string = new URL(page.url()).pathname;
11+
let pass: boolean;
812
try {
9-
await waitFor(() => {
10-
url = new URL(page.url());
11-
expect(url.pathname).toBe(pathname);
12-
});
13+
expect
14+
.poll(() => (actual = new URL(page.url()).pathname), options)
15+
.toBe(expected);
1316
pass = true;
1417
} catch {
1518
pass = false;
1619
}
1720

1821
return {
19-
message: () => "foob",
22+
name: "toHavePathName",
2023
pass,
21-
name: "toHavePath",
22-
expected: pathname,
23-
actual: url.toString(),
24+
actual,
25+
expected,
26+
message: () => "The page does not have the expected URL pathname.",
2427
};
2528
},
2629
});

0 commit comments

Comments
 (0)