A manifest and icons rendered from icon.svg make the app installable. The native build emits a service worker that precaches exactly the built files and passes everything else to the network, so ROMs never reach its cache. New versions wait for the player's Update, which saves before reloading. Savegames offers installation, iPhone steps and persistent storage, and a full disk gets its own save error. Acceptance on physical iPhone and Android devices remains. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
28 lines
851 B
TypeScript
28 lines
851 B
TypeScript
import { defineConfig, devices } from "@playwright/test";
|
|
export default defineConfig({
|
|
testDir: "./tests",
|
|
testMatch: "**/*.spec.ts",
|
|
use: { baseURL: "http://127.0.0.1:5173", trace: "retain-on-failure" },
|
|
projects: [
|
|
{ name: "chromium", use: { ...devices["Desktop Chrome"] } },
|
|
{
|
|
name: "webkit",
|
|
use: { ...devices["iPhone 13"], defaultBrowserType: "webkit" },
|
|
},
|
|
],
|
|
webServer: [
|
|
{
|
|
command: "npm run dev -- --host 127.0.0.1",
|
|
url: "http://127.0.0.1:5173",
|
|
reuseExistingServer: !process.env.CI,
|
|
},
|
|
// The production build, for the service worker and offline checks.
|
|
{
|
|
command: "npm run build && npx vite preview --host 127.0.0.1 --port 4173 --strictPort",
|
|
url: "http://127.0.0.1:4173",
|
|
reuseExistingServer: !process.env.CI,
|
|
timeout: 120_000,
|
|
},
|
|
],
|
|
});
|