# Build and Verification ## Prerequisites - Node.js `>= 18` - npm `>= 9` (workspace support) ## Install ```bash npm install ``` ## Build All Packages ```bash npm run build ``` Root build executes workspaces in dependency order. All 14 packages compile cleanly. ## Type Check ```bash npm run typecheck ``` ## Unit Tests ```bash npm test ``` Runs all tests across all workspaces. ## Integration Tests ```bash npm run test:integration ``` Pooling, property runner, and cross-package integration tests (imhotep-playwright). ## E2E (Playwright) ```bash npm run test:e2e ``` Playwright config lives at `packages/imhotep-fixtures/playwright.config.ts` and targets compiled E2E tests under `packages/imhotep-fixtures/dist/`. Requires a prior build. To run directly: ```bash npx playwright test --config packages/imhotep-fixtures/playwright.config.ts ``` ## External Smoke Test ```bash npm run test:external-smoke ``` Creates a clean temp directory, installs packages from local paths, and runs a full integration smoke test. Verifies that the published package structure works correctly. ## Common Targeted Runs ```bash # Run tests for a specific package npm test -w imhotep-playwright npm test -w imhotep-fixtures # Run specific E2E test file npx playwright test packages/imhotep-fixtures/src/e2e-public.test.ts ``` ## Clean ```bash npm run clean ``` Removes `dist/`, `tsbuildinfo` files, and any in-source generated artifacts (`*.js`, `*.d.ts`, `*.map` under `packages/*/src/`). ## Packaging Smoke Use this before publishing a package: ```bash npm pack --json ``` Check packed `package/package.json` for: - no `workspace:*` protocol dependencies - correct `main`, `types`, and `exports`