7450006ed3
Vitest + @testing-library/jest-dom matchers wired through tests/setup.ts. Playwright with four projects: chromium-desktop, webkit-desktop, chromium-mobile-iphone-13, chromium-mobile-pixel-5; traces and screenshots retained on failure. .gitea/workflows/ui-test.yaml runs Tier 1 on every push and pull request: monorepo Go service tests (backend with -p 1 to dodge testcontainer contention; gateway, game, every pkg/<name> module), pnpm install --frozen-lockfile, playwright install --with-deps, pnpm test, pnpm exec playwright test. Uploads playwright-report and test-results on failure. Integration suite stays gated behind make -C integration integration; deprecated client/ excluded. .gitea/workflows/ui-release.yaml mirrors Tier 1 on v* tag push and keeps commented placeholders for visual regression (Phase 33) and macOS iOS smoke (Phase 32). ui/docs/testing.md documents both tiers and the local invocations that mirror what CI runs. ui/PLAN.md Phase 2 marked done; Phase 3 gains a bullet to extend the go test command with ./ui/core/...; Phase 36 has the renamed release workflow path. tools/local-ci/ ships a self-contained docker-compose for verifying workflows against a local Gitea + arm64 act_runner before pushing to a real instance. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
14 lines
480 B
TypeScript
14 lines
480 B
TypeScript
import { render } from "@testing-library/svelte";
|
|
import { describe, expect, it } from "vitest";
|
|
import Page from "../src/routes/+page.svelte";
|
|
|
|
describe("landing page", () => {
|
|
it("renders a non-empty version string in the footer", () => {
|
|
const { getByTestId } = render(Page);
|
|
const footer = getByTestId("app-version");
|
|
expect(footer).toBeInTheDocument();
|
|
expect(footer.textContent?.trim()).not.toBe("");
|
|
expect(footer.textContent).toMatch(/version\s+\S+/);
|
|
});
|
|
});
|