CI / Typecheck, lint, tests, e2e (push) Failing after 3m51s
- Title screen over a real-time voxel office rendered at low resolution and quantized to a rotating 32-colour palette with Bayer dithering; day part and season re-light the scene and every surface. - 16-bit UI kit: name-plate dialogs, menu cursor, inventory, XP bar, badges, NPC speech, GAME OVER with CONTINUE, hand-placed 12x12 icons, Fusion Pixel font (Latin subset preloaded). - Sections as a game: quest log (onboarding), character select (AI CEO / AI Co-Founder), inventory (features), party roster (providers), live download XP, save point (all v1.5.1 builds), FAQ as NPC dialog, credits. - Downloads and source point to the Gitea release; the download function only redirects to git.zacharyzhang.com. - Tailwind and the old components removed; unit tests for platform/downloads, rewritten e2e suite. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
50 lines
1.5 KiB
TypeScript
50 lines
1.5 KiB
TypeScript
import { defineConfig, devices } from "@playwright/test";
|
|
|
|
const PORT = 4319;
|
|
const baseURL = `http://127.0.0.1:${PORT}`;
|
|
|
|
// Optional override for the Chromium binary (useful when the standard
|
|
// `playwright install` revision is unavailable locally); CI uses the bundled
|
|
// browser and leaves this unset.
|
|
const executablePath = process.env.PW_CHROME || undefined;
|
|
const swiftshader = ["--use-angle=swiftshader", "--enable-unsafe-swiftshader", "--ignore-gpu-blocklist"];
|
|
|
|
export default defineConfig({
|
|
testDir: "./tests/e2e",
|
|
fullyParallel: true,
|
|
forbidOnly: !!process.env.CI,
|
|
retries: process.env.CI ? 2 : 0,
|
|
reporter: process.env.CI ? "line" : "list",
|
|
use: {
|
|
baseURL,
|
|
trace: "on-first-retry",
|
|
},
|
|
projects: [
|
|
{
|
|
name: "desktop",
|
|
grepInvert: /@no-webgl/,
|
|
use: {
|
|
...devices["Desktop Chrome"],
|
|
viewport: { width: 1440, height: 900 },
|
|
launchOptions: { executablePath, args: swiftshader },
|
|
},
|
|
},
|
|
{
|
|
name: "no-webgl",
|
|
grep: /@no-webgl/,
|
|
use: {
|
|
...devices["Desktop Chrome"],
|
|
viewport: { width: 1440, height: 900 },
|
|
launchOptions: { executablePath, args: ["--disable-webgl", "--disable-webgl2"] },
|
|
},
|
|
},
|
|
],
|
|
// `npm run test:e2e` builds the static export first; this only serves `out/` (with 404.html for unknown paths).
|
|
webServer: {
|
|
command: `node tests/e2e/serve.mjs out ${PORT}`,
|
|
url: baseURL,
|
|
reuseExistingServer: !process.env.CI,
|
|
timeout: 60_000,
|
|
},
|
|
});
|