Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
- run: pnpm install --frozen-lockfile
- run: pnpm lint
# - run: pnpm ts-check need fixes
- run: pnpm test
- run: pnpm test:coverage
- run: pnpm build
env:
CI: true
11 changes: 11 additions & 0 deletions TESTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Testing

Run `pnpm test` for the normal unit-test suites. Run `pnpm test:coverage` to enforce coverage for the Lifecycle API runtime: App and Pages API routes, server runtime code, shared runtime code, middleware, the custom HTTP/WebSocket server, and the workspace gateway.

The runtime coverage scope intentionally excludes:

- generated or declarative database code and migrations;
- type-only modules and pure re-export barrels;
- the build-time JSON-schema CLI.

Those files are outside the runtime API boundary and use generation or build verification instead of API unit coverage.
74 changes: 72 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@
"run-prod": "port=5001 pnpm run start",
"knex": "pnpm run knex",
"test": "NODE_ENV=test jest --maxWorkers=75% && node --test sysops/workspace-gateway/*.test.mjs",
"test:coverage": "NODE_ENV=test jest --coverage --maxWorkers=75% && pnpm test:coverage:gateway",
"test:coverage:gateway": "node --test --experimental-test-coverage --test-coverage-lines=30 --test-coverage-branches=65 --test-coverage-functions=40 --test-coverage-include='sysops/workspace-gateway/*.mjs' --test-coverage-exclude='sysops/workspace-gateway/*.test.mjs' sysops/workspace-gateway/*.test.mjs",
"lint": "eslint --ext .ts src",
"lint:fix": "pnpm run lint --fix",
"ts-check": "tsc --project tsconfig.json",
Expand Down Expand Up @@ -182,8 +184,76 @@
},
"collectCoverageFrom": [
"<rootDir>/src/server/**/*.ts",
"<rootDir>/src/client/**/*.ts"
]
"<rootDir>/src/app/api/**/*.ts",
"<rootDir>/src/pages/api/**/*.ts",
"<rootDir>/src/shared/**/*.ts",
"<rootDir>/src/middleware.ts",
"<rootDir>/ws-server.ts",
"!<rootDir>/**/*.test.ts",
"!<rootDir>/**/*.spec.ts",
"!<rootDir>/**/__tests__/**",
"!<rootDir>/**/__mocks__/**",
"!<rootDir>/**/__fixtures__/**",
"!<rootDir>/**/*.d.ts",
"!<rootDir>/src/server/db/**",
"!<rootDir>/src/server/lib/jsonschema/cli/**",
"!<rootDir>/src/shared/client.ts",
"!<rootDir>/src/server/lib/dependencyGraph/index.ts",
"!<rootDir>/src/server/lib/helm/index.ts",
"!<rootDir>/src/server/lib/kubernetesApply/index.ts",
"!<rootDir>/src/server/lib/logger/index.ts",
"!<rootDir>/src/server/lib/nativeHelm/index.ts",
"!<rootDir>/src/server/lib/yamlSchemas/index.ts",
"!<rootDir>/src/server/middlewares/index.ts",
"!<rootDir>/src/server/models/index.ts",
"!<rootDir>/src/server/models/AgentDefinition.ts",
"!<rootDir>/src/server/models/AgentInstructionRule.ts",
"!<rootDir>/src/server/models/AgentMessage.ts",
"!<rootDir>/src/server/models/AgentPendingAction.ts",
"!<rootDir>/src/server/models/AgentPrewarm.ts",
"!<rootDir>/src/server/models/AgentRun.ts",
"!<rootDir>/src/server/models/AgentRunEvent.ts",
"!<rootDir>/src/server/models/AgentRuntimeRepoConfig.ts",
"!<rootDir>/src/server/models/AgentSandbox.ts",
"!<rootDir>/src/server/models/AgentSandboxExposure.ts",
"!<rootDir>/src/server/models/AgentSession.ts",
"!<rootDir>/src/server/models/AgentSource.ts",
"!<rootDir>/src/server/models/AgentThread.ts",
"!<rootDir>/src/server/models/AgentToolExecution.ts",
"!<rootDir>/src/server/models/ApiToken.ts",
"!<rootDir>/src/server/models/AuthAuditEvent.ts",
"!<rootDir>/src/server/models/BotUser.ts",
"!<rootDir>/src/server/models/Build.ts",
"!<rootDir>/src/server/models/Configuration.ts",
"!<rootDir>/src/server/models/Deployable.ts",
"!<rootDir>/src/server/models/Environment.ts",
"!<rootDir>/src/server/models/GlobalConfig.ts",
"!<rootDir>/src/server/models/McpServerConfig.ts",
"!<rootDir>/src/server/models/PullRequest.ts",
"!<rootDir>/src/server/models/Repository.ts",
"!<rootDir>/src/server/models/ServiceDisk.ts",
"!<rootDir>/src/server/models/Site.ts",
"!<rootDir>/src/server/models/SiteVersion.ts",
"!<rootDir>/src/server/models/TelemetryEvent.ts",
"!<rootDir>/src/server/models/UserApiKey.ts",
"!<rootDir>/src/server/models/UserMcpConnection.ts",
"!<rootDir>/src/server/models/WebhookInvocations.ts",
"!<rootDir>/src/server/models/yaml/index.ts",
"!<rootDir>/src/server/services/agent/tools/codefresh/index.ts",
"!<rootDir>/src/server/services/agent/tools/github/index.ts",
"!<rootDir>/src/server/services/agent/tools/index.ts",
"!<rootDir>/src/server/services/agent/tools/k8s/index.ts",
"!<rootDir>/src/server/services/types/index.ts",
"!<rootDir>/src/shared/index.ts"
],
"coverageThreshold": {
"global": {
"statements": 98,
"branches": 91,
"functions": 98,
"lines": 98
}
}
},
"eslintConfig": {
"env": {
Expand Down
Loading
Loading