Agent Skills
› biersoeckli/QuickStack
› backend-testing
backend-testing
GitHub用于创建和审查 QuickStack 后端单元测试与集成测试,涵盖 Vitest、Prisma、SQLite 及 k3s Kubernetes 环境,提供命名规范、文件结构及 Mock 策略指导。
Trigger Scenarios
编辑 src/server/ 下的后端测试文件
询问后端测试覆盖率
需要设置 Prisma 测试数据库
请求 Kubernetes 集成测试
Install
npx skills add biersoeckli/QuickStack --skill backend-testing -g -y
SKILL.md
Frontmatter
{
"name": "backend-testing",
"description": "Create and review QuickStack backend unit and integration tests using the project's Vitest, Prisma, SQLite, and k3s conventions. Use when editing backend test files under `src\/server\/`, `src\/shared\/`, or `src\/__tests__\/integration\/`, or when the user asks for backend test coverage, mocks, Prisma test DB setup, or Kubernetes integration tests."
}
Backend Testing
Quick Start
Use these defaults for QuickStack backend tests:
- Name unit tests
*.unit.spec.ts. - Name integration tests
*.integration.spec.ts. - Keep unit tests beside the source file.
- Put integration tests in
src/__tests__/integration/mirroring the source path. - Use Vitest globals without importing
describe,it,expect, orvi. - Prefer
@/...imports for app modules.
Workflow
When creating or updating backend tests:
- Pick the right test type: unit, Prisma/SQLite integration, or k3s integration.
- Place the file in the correct location and use the required filename suffix.
- For unit tests, mock all external dependencies and keep the suite isolated.
- For Prisma integration tests, use
createPrismaTestContext('label'). - For k3s integration tests, use
createK3sTestContext()and mock the Kubernetes adapter before imports. - Run the smallest relevant test command first, then broaden if needed.
Unit Tests
- Mock Prisma, Kubernetes, S3, Longhorn, filesystem, network calls, and singleton services.
- Use
vi.mock()andvi.mocked()for typed mocks. - Use
vi.importActual()for partial mocks when needed. - If a module initializes from environment variables at import time, set env first and call
vi.resetModules()before importing it. - Do not hit the real database, filesystem, or Kubernetes from unit tests.
Integration Tests
- Use a real temporary SQLite database file instead of mocks.
- Use
createPrismaTestContext()for DB lifecycle setup and teardown. - Static top-level imports of services are fine with the Prisma test context.
- Use
ctx.getDataAccess().clientfor direct DB assertions. - Run mutating integration suites with
--pool=forksor--no-file-parallelismwhen Prisma singleton state is involved.
K3s Tests
- Use
createK3sTestContext()for real Kubernetes integration coverage. - Mock
@/server/adapter/kubernetes-api.adapterbefore any related imports. - Use
ctx.getClients()for typed Kubernetes clients. - Use
ctx.getKubeConfig()only when raw kubeconfig access is needed. - Expect slower startup and Docker requirements for these suites.
Reference
See REFERENCE.md for exact naming rules, folder structure, code examples, runtime caveats, and test commands.
Version History
- 0.0.13 Current 2026-08-20 14:27


