Skip to content

Commit 38df2dc

Browse files
committed
fix(web-host): fix e2e tests
1 parent 7654109 commit 38df2dc

File tree

2 files changed

+30
-23
lines changed

2 files changed

+30
-23
lines changed

packages/web-host/src/components/HomePage.tsx

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,29 +6,41 @@ interface HomePageProps {
66
onStartRepl: () => void;
77
}
88

9-
export const HomePage = ({ onStartRepl }: HomePageProps) => {
10-
const [targetUrl, setTargetUrl] = useState<string | null>(null);
11-
12-
useEffect(() => {
13-
const [url] = window.location.href.split("#");
14-
setTargetUrl(url);
15-
}, []);
16-
17-
const startReplButton = (
9+
function StartReplButton({
10+
onStartRepl,
11+
"data-testid-button": testId,
12+
}: {
13+
onStartRepl: () => void;
14+
"data-testid-button": string;
15+
}) {
16+
return (
1817
<div className="text-center mb-14">
1918
<button
2019
type="button"
2120
onClick={onStartRepl}
2221
className="cursor-pointer bg-gradient-to-r from-[var(--color-wasi-violet)] to-[var(--color-wasi-purple)] shadow-lg hover:from-[var(--color-wasi-purple)] hover:to-[var(--color-wasi-violet)] text-white font-bold py-4 px-12 rounded-full text-xl transition-transform duration-300 ease-out transform hover:scale-[1.3] focus:outline-none focus:ring-4 focus:ring-[var(--color-wasi-violet)]/40 animate-[pulse110_2s_ease-in-out_infinite]"
22+
data-testid={testId}
2323
>
2424
✨ Start REPL ✨
2525
</button>
2626
</div>
2727
);
28+
}
29+
30+
export const HomePage = ({ onStartRepl }: HomePageProps) => {
31+
const [targetUrl, setTargetUrl] = useState<string | null>(null);
32+
33+
useEffect(() => {
34+
const [url] = window.location.href.split("#");
35+
setTargetUrl(url);
36+
}, []);
2837

2938
return (
3039
<div className="container mx-auto px-4 py-12 max-w-4xl">
31-
{startReplButton}
40+
<StartReplButton
41+
onStartRepl={onStartRepl}
42+
data-testid-button="start-repl-button-top"
43+
/>
3244

3345
<div className="bg-white rounded-2xl p-8 border border-[var(--color-wasi-purple)]/20 shadow-lg mb-12">
3446
<h3 className="text-2xl font-bold mb-4">What is it?</h3>
@@ -95,7 +107,10 @@ export const HomePage = ({ onStartRepl }: HomePageProps) => {
95107
</div>
96108
</div>
97109

98-
{startReplButton}
110+
<StartReplButton
111+
onStartRepl={onStartRepl}
112+
data-testid-button="start-repl-button-bottom"
113+
/>
99114

100115
{targetUrl && (
101116
<div className="flex flex-col items-center justify-center">

packages/web-host/tests/navigation.spec.ts

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@ import { clickWandButton } from "./utils";
33

44
test("start REPL link", async ({ page }) => {
55
await page.goto("/");
6-
await page
7-
.getByRole("button", { name: "✨ Start REPL ✨" })
8-
.click({ force: true });
6+
await page.getByTestId("start-repl-button-top").click({ force: true });
97
await expect(page).toHaveURL(
108
"/webassembly-component-model-experiments/#repl",
119
);
@@ -36,9 +34,7 @@ test("back to home button", async ({ page }) => {
3634

3735
test("back button", async ({ page }) => {
3836
await page.goto("/");
39-
await page
40-
.getByRole("button", { name: "✨ Start REPL ✨" })
41-
.click({ force: true });
37+
await page.getByTestId("start-repl-button-top").click({ force: true });
4238
await expect(page).toHaveURL(
4339
"/webassembly-component-model-experiments/#repl",
4440
);
@@ -55,9 +51,7 @@ test("back button", async ({ page }) => {
5551

5652
test("history should be preserved + wand button", async ({ page }) => {
5753
await page.goto("/");
58-
await page
59-
.getByRole("button", { name: "✨ Start REPL ✨" })
60-
.click({ force: true });
54+
await page.getByTestId("start-repl-button-top").click({ force: true });
6155
await expect(page).toHaveURL(
6256
"/webassembly-component-model-experiments/#repl",
6357
);
@@ -70,9 +64,7 @@ test("history should be preserved + wand button", async ({ page }) => {
7064
name: "WebAssembly Component Model Experiments",
7165
}),
7266
).toBeVisible();
73-
await page
74-
.getByRole("button", { name: "✨ Start REPL ✨" })
75-
.click({ force: true });
67+
await page.getByTestId("start-repl-button-top").click({ force: true });
7668
await expect(page).toHaveURL(
7769
"/webassembly-component-model-experiments/#repl",
7870
);

0 commit comments

Comments
 (0)