원클릭으로
nx-testing
Testing workflows with Vitest in Nx monorepo. Use when writing tests, running test suites, or debugging test failures.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Testing workflows with Vitest in Nx monorepo. Use when writing tests, running test suites, or debugging test failures.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Auth engine rules for QAuth. Use when working with CredentialProvider implementations, token claim generation, the provider registry, or the federation layer. Enforces the pluggable provider pattern and correct token claim behaviour.
OAuth 2.1 / OIDC rules for QAuth. Use when working with authorization endpoints, token flows, PKCE, JWKS, OIDC discovery, or spec compliance (RFC 9700, OIDC Core 1.0). Covers endpoint behaviour, email claim rules, and token security.
Database schema rules for QAuth. Use when working with the identity model, Drizzle ORM, migrations, repositories, or claim resolution. Reflects the CURRENT shipped schema — the identifier-abstraction model (ADR-002, IMPLEMENTED via Epic
Link GitHub issues in parent-child (sub-issue) relationships using GraphQL
Add a GitHub issue to a project board using gh project item-add
Create a new GitHub issue following QAuth project conventions using gh issue create
| name | nx-testing |
| description | Testing workflows with Vitest in Nx monorepo. Use when writing tests, running test suites, or debugging test failures. |
# Single project
pnpm nx test auth-server
pnpm nx test auth-server --watch
pnpm nx test auth-server --coverage
# Multiple projects
pnpm nx run-many -t test --all
pnpm nx affected -t test
pnpm nx run-many -t test --all --parallel=3
# Vitest UI
pnpm test:ui
Co-locate tests with source:
libs/server/jwt/src/
├── jwt.service.ts
├── jwt.service.spec.ts
└── index.ts
import { describe, it, expect, beforeEach } from 'vitest';
import { createService } from './service';
describe('Service', () => {
let service: ReturnType<typeof createService>;
beforeEach(() => {
service = createService();
});
it('should do something', () => {
expect(service.method()).toBe(expected);
});
});
import { describe, it, expect, beforeAll, afterAll } from 'vitest';
import { buildTestApp } from '@qauth-labs/shared-testing';
import type { FastifyInstance } from 'fastify';
describe('Route', () => {
let app: FastifyInstance;
beforeAll(async () => {
app = await buildTestApp();
});
afterAll(async () => {
await app.close();
});
it('should return 200', async () => {
const response = await app.inject({
method: 'GET',
url: '/health',
});
expect(response.statusCode).toBe(200);
});
});
@qauth-labs/shared-testing utilities