Restore green type-check baseline (117 tests + tsc all pass)

Fixes 3 pre-existing TypeScript errors that vitest did not catch but
tsc --noEmit did:
- apps/mcp-linkedin/src/tools.test.ts: spread TOOL_NAMES before .sort()
  (readonly tuple has no mutating sort)
- packages/sanitize/src/corpus.test.ts: cast through unknown to FixtureMeta
- db/migrations/rehearse.ts: add 'postgres' driver dependency (also needed
  to run the migration itself)

Also: apps/admin test script uses --passWithNoTests (Stage 5 admin app has
no test files yet, vitest exited non-zero on empty).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Angelo B. J. Luidens
2026-06-03 13:27:15 -04:00
parent a4e4306fb1
commit 339801966e
5 changed files with 7 additions and 3 deletions
+1 -1
View File
@@ -8,7 +8,7 @@
"dev": "next dev -p 3002", "dev": "next dev -p 3002",
"start": "next start -p 3002", "start": "next start -p 3002",
"typecheck": "tsc --noEmit", "typecheck": "tsc --noEmit",
"test": "vitest run", "test": "vitest run --passWithNoTests",
"lint": "next lint" "lint": "next lint"
}, },
"dependencies": { "dependencies": {
+1 -1
View File
@@ -4,7 +4,7 @@ import { outletForAuthorUrn, validateToolCall } from "./server";
describe("Tool registry — 9 tools per Plan §3.2", () => { describe("Tool registry — 9 tools per Plan §3.2", () => {
it("exposes exactly the 9 tools named in the plan", () => { it("exposes exactly the 9 tools named in the plan", () => {
expect(TOOL_NAMES.sort()).toEqual( expect([...TOOL_NAMES].sort()).toEqual(
[ [
"linkedin_whoami", "linkedin_whoami",
"linkedin_auth_status", "linkedin_auth_status",
+3
View File
@@ -7,6 +7,7 @@
"devDependencies": { "devDependencies": {
"@types/node": "^22.0.0", "@types/node": "^22.0.0",
"bun-types": "^1.3.12", "bun-types": "^1.3.12",
"postgres": "^3.4.5",
"turbo": "^2.3.0", "turbo": "^2.3.0",
"typescript": "^5.7.0", "typescript": "^5.7.0",
}, },
@@ -597,6 +598,8 @@
"postcss": ["postcss@8.4.31", "", { "dependencies": { "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" } }, "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ=="], "postcss": ["postcss@8.4.31", "", { "dependencies": { "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" } }, "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ=="],
"postgres": ["postgres@3.4.9", "", {}, "sha512-GD3qdB0x1z9xgFI6cdRD6xu2Sp2WCOEoe3mtnyB5Ee0XrrL5Pe+e4CCnJrRMnL1zYtRDZmQQVbvOttLnKDLnaw=="],
"process-warning": ["process-warning@5.0.0", "", {}, "sha512-a39t9ApHNx2L4+HBnQKqxxHNs1r7KF+Intd8Q/g1bUh6q0WIp9voPXJ/x0j+ZL45KF1pJd9+q2jLIRMfvEshkA=="], "process-warning": ["process-warning@5.0.0", "", {}, "sha512-a39t9ApHNx2L4+HBnQKqxxHNs1r7KF+Intd8Q/g1bUh6q0WIp9voPXJ/x0j+ZL45KF1pJd9+q2jLIRMfvEshkA=="],
"quick-format-unescaped": ["quick-format-unescaped@4.0.4", "", {}, "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg=="], "quick-format-unescaped": ["quick-format-unescaped@4.0.4", "", {}, "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg=="],
+1
View File
@@ -19,6 +19,7 @@
"devDependencies": { "devDependencies": {
"@types/node": "^22.0.0", "@types/node": "^22.0.0",
"bun-types": "^1.3.12", "bun-types": "^1.3.12",
"postgres": "^3.4.5",
"turbo": "^2.3.0", "turbo": "^2.3.0",
"typescript": "^5.7.0" "typescript": "^5.7.0"
}, },
+1 -1
View File
@@ -27,7 +27,7 @@ const parseFixture = (name: string, raw: string): Fixture => {
if (!m) throw new Error(`Fixture ${name} missing frontmatter`); if (!m) throw new Error(`Fixture ${name} missing frontmatter`);
const fmRaw = m[1]!; const fmRaw = m[1]!;
const body = m[2]!; const body = m[2]!;
const meta = parseSimpleYaml(fmRaw) as FixtureMeta; const meta = parseSimpleYaml(fmRaw) as unknown as FixtureMeta;
return { name, meta, body }; return { name, meta, body };
}; };