The Playwright version was pinned with a caret range and the test
Dockerfile deleted pnpm-lock.yaml before installing, so every image
build silently re-resolved to the latest matching Playwright version.
This caused the npm package and the Docker base image to drift apart.
- packages/luna-charts/package.json: pin playwright to 1.62.1 exactly
- Dockerfile.test: stop deleting pnpm-lock.yaml before install, and
use --frozen-lockfile so a mismatch between package.json and the
lockfile fails the build loudly instead of resolving silently
Playwright was previously pinned with a caret range (^1.61.1), which
allowed pnpm to silently resolve a newer minor version after the
lockfile was regenerated. This caused a version mismatch with the
Docker test image, which still referenced 1.61.1.
- packages/luna-charts/package.json: pin playwright to 1.62.1 exactly
- Dockerfile.test: bump base image to v1.62.1-noble to match
- Add supportedArchitectures (linux-x64-gnu) to pnpm-workspace.yaml so native bindings (rolldown, esbuild) are included in the lockfile for the container's platform
- Add onlyBuiltDependencies: [playwright] to pnpm-workspace.yaml so build scripts run non-interactively in CI/Docker
- Remove stale/redundant pnpm field from package.json (moved to pnpm-workspace.yaml per pnpm v10+ config location)
- Split stencil-test into test:unit (native, fast) and test:browser (Docker, cross-browser) scripts
- Set ENV CI=true in Dockerfile.test to avoid interactive TTY prompts during pnpm install
- Remove anonymous node_modules volumes from docker-compose.test.yaml to prevent stale volume state from surviving image rebuilds
- Add root-level test:unit / test:component / test scripts to orchestrate native unit tests and Dockerized cross-browser tests