Files
metabuilder/package.json
Claude 9c982a6b93 fix(e2e): use Testcontainers for smoke stack instead of docker compose in CI
Replace manual docker compose start/stop in the CI workflow with
Testcontainers in Playwright global setup/teardown. This gives:
- Automatic container lifecycle tied to the test run
- Health-check-based wait strategies per service
- Clean teardown even on test failures
- No CI workflow coupling to Docker orchestration

Changes:
- e2e/global.setup.ts: Start smoke stack via DockerComposeEnvironment
  (nginx, phpMyAdmin, Mongo Express, RedisInsight) with health check waits
- e2e/global.teardown.ts: New file — stops Testcontainers environment
- e2e/playwright.config.ts: Register globalSetup/globalTeardown, bind dev
  servers to 0.0.0.0 in CI so nginx can proxy via host.docker.internal
- gated-pipeline.yml: Remove docker compose start/stop/verify steps,
  add 10min timeout to Playwright step
- e2e/deployment-smoke.spec.ts: Update doc comment
- package.json: Add testcontainers@^11.12.0 devDependency

https://claude.ai/code/session_018rmhuicK7L7jV2YBJDXiQz
2026-03-11 18:31:06 +00:00

100 lines
2.4 KiB
JSON

{
"name": "metabuilder-root",
"version": "0.1.0",
"private": true,
"type": "module",
"description": "MetaBuilder - Universal Platform",
"scripts": {
"postinstall": "bash scripts/patch-bundled-deps.sh"
},
"workspaces": [
"types",
"interfaces",
"translations",
"workflow",
"hooks",
"components",
"redux/*",
"components/fakemui",
"scss",
"frontends/*",
"config",
"storybook"
],
"devDependencies": {
"@chromatic-com/playwright": "^0.12.8",
"@playwright/test": "^1.58.2",
"@sentry/nextjs": "^10.39.0",
"@spotlightjs/spotlight": "^4.10.0",
"@tailwindcss/vite": "^4.2.0",
"checkly": "^7.1.0",
"eslint": "^10.0.1",
"eslint-config-next": "^16.1.6",
"eslint-plugin-jsx-a11y": "^6.10.2",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-react-refresh": "^0.5.0",
"jest": "^30.2.0",
"jsdom": "^28.1.0",
"npm-run-all2": "8.0.4",
"testcontainers": "^11.12.0"
},
"dependencies": {
"@hookform/resolvers": "^5.2.2",
"@phosphor-icons/react": "^2.1.10",
"@reduxjs/toolkit": "^2.11.2",
"@tailwindcss/container-queries": "^0.1.1",
"@tailwindcss/postcss": "^4.2.0",
"classnames": "^2.5.1",
"framer-motion": "^12.34.3",
"lucide-react": "^0.575.0",
"react": "^19.2.4",
"react-hook-form": "^7.71.1",
"reactflow": "^11.11.4",
"redux-persist": "^6.0.0",
"sonner": "^2.0.7",
"terser": "^5.46.0",
"three": "^0.183.1"
},
"overrides": {
"lodash": "^4.17.22",
"react": "^19.2.4",
"react-dom": "^19.2.4",
"@types/react": "^19.2.14",
"@types/react-dom": "^19.2.3",
"eslint-plugin-react-hooks": {
".": "^7.0.1",
"eslint": "$eslint"
},
"hono": "^4.12.0",
"@storybook/builder-vite": {
"vite": "^7.3.1"
},
"@joshwooding/vite-plugin-react-docgen-typescript": {
"vite": "^7.3.1"
},
"minimatch": "10.2.4",
"tar": "7.5.11",
"monaco-editor": "0.53.0",
"esbuild": ">=0.25.0",
"immutable": ">=5.1.5",
"@chromatic-com/playwright": {
"storybook": "8.6.18"
},
"eslint-plugin-jsx-a11y": {
"eslint": "$eslint"
},
"eslint-plugin-react": {
"eslint": "$eslint"
},
"eslint-plugin-format": {
"eslint": "$eslint"
},
"@esbuild-kit/core-utils": {
"esbuild": ">=0.25.0"
},
"@storybook/react-vite": {
"vite": "^7.3.1"
}
}
}