Sets up the initial project infrastructure only, no business modules yet: - apps/api: Express/TypeScript backend skeleton (healthcheck route, zod-validated env config, error handling, Prisma initialized with no models yet, Postgres as the target DB) - apps/web: React/Vite/TypeScript frontend skeleton, Capacitor-ready for the future mobile app - packages/shared: empty placeholder for types/schemas shared between api and web once the data model is defined - Tooling: Biome (lint/format), Mocha+Chai+Supertest (api tests), Cypress (web e2e smoke test), GitHub Actions CI (lint + test + build + e2e) - docker-compose.yml for local Postgres - README documents setup steps, including the Cypress binary caveat (pnpm install doesn't always fetch the native binary — needs `cypress install` run locally per machine) Fixes along the way: - apps/web/cypress.config.ts: disable GPU on browser launch for headless/sandboxed environments - apps/web/tsconfig.*: split into solution/app/node tsconfig files (standard Vite pattern) — the previous single-file setup caused `tsc -b` to emit compiled .js/.d.ts next to vite.config.ts and cypress.config.ts
17 lines
508 B
TypeScript
17 lines
508 B
TypeScript
import { defineConfig } from "cypress";
|
|
|
|
export default defineConfig({
|
|
e2e: {
|
|
baseUrl: "http://localhost:5173",
|
|
setupNodeEvents(on) {
|
|
// Disable GPU for headless/sandboxed environments (e.g. CI containers)
|
|
// where no GPU device is available.
|
|
on("before:browser:launch", (browser, launchOptions) => {
|
|
if (browser.family === "chromium") {
|
|
launchOptions.args.push("--disable-gpu", "--no-sandbox");
|
|
}
|
|
return launchOptions;
|
|
});
|
|
},
|
|
},
|
|
});
|