Constimport { Effect } from "effect";
import { Playwright } from "effect-playwright";
import { expect, test } from "effect-playwright/test";
test.effect("loads a page", () =>
Effect.gen(function* () {
const page = yield* Playwright.Page;
yield* page.goto("data:text/html,<title>Effect</title>");
expect(yield* page.title).toBe("Effect");
}),
);
import { test as base } from "@playwright/test";
import { Effect } from "effect";
import { expect, makeMethods } from "effect-playwright/test";
const test = makeMethods(
base.extend<{ answer: number }>({
answer: async ({}, use) => use(42),
}),
);
test.effect("uses a custom fixture", ({ answer }) =>
Effect.sync(() => expect(answer).toBe(42)),
);
Adds Effect-based test methods to a Playwright
TestType.Call
makeMethodsaftertest.extend(...)ormergeTests(...), because those APIs return a newTestType.