106 lines
3.3 KiB
Markdown
106 lines
3.3 KiB
Markdown
# Validation Baseline
|
|
|
|
## Date
|
|
|
|
2026-07-18
|
|
|
|
## Environment
|
|
|
|
- Target toolchain: Node.js 20 and npm 10
|
|
- Executed toolchain: Node.js 20.20.2 and npm 10.9.8, supplied ephemerally through `npx`
|
|
- Docker CLI: available on Windows
|
|
- Docker engine: unavailable because Docker Desktop's Linux engine was not running
|
|
- Docker inside WSL: unavailable because WSL integration was disabled
|
|
|
|
## Dependency Installation
|
|
|
|
- Root `npm ci`: passed under the preinstalled WSL Node 18/npm 9 toolchain; reported 2 high-severity audit findings in `ajv-cli` dependencies.
|
|
- Frontend clean install initially failed because `frontend/package-lock.json` was missing `yaml@2.9.0`.
|
|
- `npm install --package-lock-only` under Node 20/npm 10 repaired the frontend lockfile.
|
|
- Frontend clean install then passed under Node 20/npm 10; npm reported 28 dependency vulnerabilities: 9 low, 6 moderate, and 13 high.
|
|
- Backend clean install passed under Node 20/npm 10; npm reported 0 vulnerabilities.
|
|
|
|
## Automated Checks
|
|
|
|
### Frontend tests
|
|
|
|
Command:
|
|
|
|
```bash
|
|
npx --yes --package=node@20 --package=npm@10 npm test -- --watchAll=false --runInBand
|
|
```
|
|
|
|
Result: Passed.
|
|
|
|
- Test suites: 6 passed, 6 total
|
|
- Tests: 420 passed, 420 total
|
|
- Snapshots: 0
|
|
|
|
### Frontend production build
|
|
|
|
Command:
|
|
|
|
```bash
|
|
npx --yes --package=node@20 --package=npm@10 npm run build
|
|
```
|
|
|
|
Result: Passed.
|
|
|
|
### Backend TypeScript build
|
|
|
|
Command:
|
|
|
|
```bash
|
|
npx --yes --package=node@20 --package=npm@10 npm run build
|
|
```
|
|
|
|
Result: Passed.
|
|
|
|
## Schema Matrix
|
|
|
|
Eleven `valid-*.json` project definitions passed validation against `shared/schemas/conductor-project.schema.json`.
|
|
|
|
Two schema-invalid fixtures failed validation as expected:
|
|
|
|
- `invalid-dropdown-option-shape.json`
|
|
- `invalid-missing-required.json`
|
|
|
|
Two diagnostic-invalid fixtures passed structural schema validation as designed because their defects require semantic/runtime diagnostics:
|
|
|
|
- `invalid-template-malformed.json`
|
|
- `invalid-template-missing-component.json`
|
|
|
|
## Runtime Startup
|
|
|
|
Initial backend startup against a clean SQLite database failed with:
|
|
|
|
```text
|
|
SqliteError: no such table: projects
|
|
```
|
|
|
|
Cause: `backend/src/index.ts` statically imported `app` before calling `initDatabase()`. Importing the app loaded project routes and prepared SQL statements before the `projects` table existed.
|
|
|
|
Fix: run `initDatabase()` first, then dynamically import the Express app and start listening.
|
|
|
|
After the fix, clean-database startup, HTTP health, complete CRUD, cleanup, and persistence across a backend container restart all passed.
|
|
|
|
## Docker Validation
|
|
|
|
Docker Desktop was started and validation completed. Both images built, both services started, the frontend compiled, the backend initialized SQLite, and health, CRUD, cleanup, and restart-persistence checks passed.
|
|
|
|
## Baseline Status
|
|
|
|
Passing for the current automated and Docker smoke-test scope:
|
|
|
|
- [x] Locked frontend dependencies repaired
|
|
- [x] Frontend tests pass
|
|
- [x] Frontend production build passes
|
|
- [x] Backend TypeScript build passes
|
|
- [x] Schema matrix behaves as expected
|
|
- [x] Backend starts against a clean database
|
|
- [x] Health and CRUD smoke checks pass
|
|
- [x] Persistence survives a backend container restart
|
|
- [x] Docker Compose build and integration checks pass
|
|
|
|
Remaining release work includes broader backend tests, browser end-to-end tests, security regression tests, and resolution of the frontend dependency audit findings.
|