From enterprise
Knowledge skill for testing patterns and best practices. Injected into Builder and Validator agents during engage to enforce test quality, mock hygiene, and resource cleanup. Not user-invocable.
npx claudepluginhub nathanvale/side-quest-plugins --plugin enterpriseThis skill uses the workspace's default tool permissions.
This knowledge skill provides context about testing standards and best practices. Injected into Builder (Scotty) and Validator (McCoy) agents during engage.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Retrieves current documentation, API references, and code examples for libraries, frameworks, SDKs, CLIs, and services via Context7 CLI. Ideal for API syntax, configs, migrations, and setup queries.
Uses ctx7 CLI to fetch current library docs, manage AI coding skills (install/search/generate), and configure Context7 MCP for AI editors.
This knowledge skill provides context about testing standards and best practices. Injected into Builder (Scotty) and Validator (McCoy) agents during engage.
feature.test.ts next to feature.tsdescribe/it blocks with descriptive namesimport { describe, it, expect, beforeEach, afterEach } from 'bun:test';
describe('featureName', () => {
describe('methodName', () => {
it('should handle the happy path', () => {
// arrange, act, assert
});
it('should throw when input is invalid', () => {
expect(() => methodName(null)).toThrow('input is required');
});
});
});
describe blocks: feature or method nameit blocks: should {expected behavior} -- describe the outcome, not the implementationtest() -- use it() for consistencyEvery mock MUST be cleaned up in afterEach. Leaked mocks cause flaky tests.
let mockRestore: () => void;
beforeEach(() => {
const mock = mockStdio();
mockRestore = mock.restore;
});
afterEach(() => {
mockRestore();
});
jest.mock() / mock.module() unless absolutely necessaryafterEachlet cleanup: () => void;
beforeEach(() => {
const tmp = createTempDir();
cleanup = tmp.cleanup;
});
afterEach(() => {
cleanup();
});
If a test spawns a process, kill it in afterEach:
afterEach(() => {
if (proc) proc.kill();
});
Servers, file handles, database connections -- close in afterEach.
describe/it with descriptive namesafterEachcreateTempDir() from core for file system testsafterEach cleanup for mocks, temp dirs, or processestest() instead of it()