8 Commits

Author SHA1 Message Date
wangdl
eef42d51ab ci: add NestJS Worker deploy + M-AI-01 integration tests to deploy workflow
Some checks failed
Deploy API Server / build-and-deploy (push) Failing after 43s
- Deploy zhixi-nest-worker.service after API restart
- Run test/run-integration-ci.sh with real MySQL/Redis/BullMQ
- Integration test failure blocks deployment (exit 1)
- timeout-minutes: 10 to prevent hung tests

Line: .gitea/workflows/deploy.yml:99-113

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-19 22:51:28 +08:00
wangdl
d57d9e009e fix: explicit JWT_SECRET in process env + correct 404 test
All checks were successful
Deploy API Server / build-and-deploy (push) Successful in 50s
2026-06-19 22:39:52 +08:00
wangdl
5d332336eb feat(M-AI-01-09): add HTTP E2E tests (Feynman/ActiveRecall/DocumentImport)
All checks were successful
Deploy API Server / build-and-deploy (push) Successful in 45s
- NEW test/m-ai-01-09-api-e2e.worker-int-spec.ts: real HTTP endpoints
  with JWT auth → Controller → BullMQ → Worker → MySQL
- Feynman: POST /api/ai-analysis/feynman (200/401/400)
- Active Recall: POST /api/active-recalls/:id/submit (200/401/404)
- Document Import: POST /api/imports (200/401)
- generateJWT() in integration-harness.ts (TokenService format)
- httpPost() supports optional Bearer token
- Save test credentials to devops-projects/凭据配置/测试API凭据.md

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-19 22:36:17 +08:00
wangdl
5bde0a3656 fix(M-AI-01-09): enqueue jobs via BullMQ instead of MySQL INSERT
All checks were successful
Deploy API Server / build-and-deploy (push) Successful in 47s
Worker consumes from BullMQ Redis, not MySQL polling.
Replace all dbExec(INSERT INTO AiAnalysisJob) with enqueueJob()
which uses real BullMQ Queue.add() to the test Redis.

Add setRedisConfig() + enqueueJob() to integration harness.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-19 22:20:45 +08:00
wangdl
6e7f4b0219 fix: add updatedAt=NOW() to all INSERTs for NOT NULL columns
All checks were successful
Deploy API Server / build-and-deploy (push) Successful in 48s
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
EOF
)
2026-06-19 22:12:20 +08:00
wangdl
533b525496 fix: schema field corrections for AiAnalysisJob + User
All checks were successful
Deploy API Server / build-and-deploy (push) Successful in 47s
- User INSERT: add updatedAt=NOW() (NOT NULL, no default)
- AiAnalysisJob: retryCount→progress (column doesn't exist)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-19 22:10:07 +08:00
wangdl
cc7a6842ed fix: standardize dbExec/dbQuery param passing as arrays
All checks were successful
Deploy API Server / build-and-deploy (push) Successful in 45s
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-19 22:08:17 +08:00
wangdl
ffea415613 feat(M-AI-01-09): replace mock E2E with real API/Worker integration test
All checks were successful
Deploy API Server / build-and-deploy (push) Successful in 49s
- NEW test/helpers/mock-ai-provider.ts: Mock AI HTTP server with
  normal/timeout/429/500/invalid-json behavior controls
- NEW test/helpers/integration-harness.ts: spawn real API/Worker
  processes, HTTP helpers, PrismaClient-based DB helpers
- NEW test/m-ai-01-09.worker-int-spec.ts: real integration test
  using actual MySQL/Redis/BullMQ/HTTP (Active Recall, Feynman,
  Document Import, SIGKILL recovery, provider faults, idempotency)
- NEW test/jest-worker-integration.json: Jest config with NO mocks
- DELETE test/m-ai-01-09.e2e-spec.ts: removed mock-based pseudo-e2e
- UPDATE test/run-integration-ci.sh: uses real integration config
- UPDATE package.json: test:integration:worker uses real config

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-19 22:06:52 +08:00