mirror of
https://github.com/maputnik/editor.git
synced 2026-09-17 01:37:27 +00:00
c3dd253737
Replace Cypress with Playwright for the end-to-end suite and drop
@shellygo/cypress-test-utils in favour of a hand-written MaputnikDriver
page object that keeps the fluent then(...).shouldX() assertion style
(now async). The InputAutocomplete component test moves to Vitest browser
mode using the Playwright provider.
- e2e/maputnik-driver.ts: driver + MaputnikAssertable over Playwright
- e2e/{fixtures,coverage,global-setup,global-teardown}.ts: test fixture,
istanbul coverage collection, and nyc report generation
- playwright.config.ts / vitest.config.ts
- Code coverage preserved: dev server is istanbul-instrumented, per-test
window.__coverage__ is merged via nyc into coverage/coverage-final.json
- CI: Cypress jobs replaced with Playwright; docker e2e runs against the
container via E2E_NO_WEBSERVER
- Remove Cypress deps, config and support files; update docs and .nycrc
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
25 lines
830 B
TypeScript
25 lines
830 B
TypeScript
import { expect, test } from "vitest";
|
|
import { render } from "vitest-browser-react";
|
|
import { page } from "vitest/browser";
|
|
import InputAutocomplete from "./InputAutocomplete";
|
|
|
|
const fruits = ["apple", "banana", "cherry"];
|
|
|
|
test("filters options when typing", async () => {
|
|
render(<InputAutocomplete aria-label="Fruit" options={fruits.map((f) => [f, f])} />);
|
|
|
|
const input = page.getByLabelText("Fruit");
|
|
await input.click();
|
|
|
|
const menuItems = page.getByRole("option");
|
|
await expect.element(menuItems.first()).toBeVisible();
|
|
expect(menuItems.all()).toHaveLength(3);
|
|
|
|
await input.fill("ch");
|
|
await expect.element(page.getByText("cherry")).toBeVisible();
|
|
expect(page.getByRole("option").all()).toHaveLength(1);
|
|
|
|
await page.getByText("cherry").click();
|
|
await expect.element(input).toHaveValue("cherry");
|
|
});
|