testing
Testing doctrine, pyramid (unit, integration, API, security, smoke), AAA pattern, and coverage enforcement.
Skill by Mihir-Rabari
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/mihir-rabari-testing-d2975a
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: backend, testing, security
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/testing
What's inside
- Skill name
testing- Description
- Testing doctrine, pyramid (unit, integration, API, security, smoke), AAA pattern, and coverage enforcement.
- License
- MIT
- Instructions
- 54 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Testing Skill
## 1. When to Use
Use this skill when writing unit tests, API integration tests, security adversarial suites, database constraint tests, or executing quality verification gates.
## 2. Core Testing Principle
> **Behavior must be verified at the narrowest appropriate level, and security-sensitive behavior must also be verified at an integration boundary.**
## 3. Testing Pyramid & Taxonomy
- **`unit`**: Fast, isolated tests for pure functions, cryptographic utilities, Zod validation schemas, policy evaluation logic.
- **`integration`**: Tests for component interactions using Fastify `app.inject()` and database clients.
- **`security` / `adversarial`**: Explicit negative tests demonstrating that unauthorized access, privilege escalation, and parameter tampering are blocked.
- **`generator` / `smoke`**: Verifying project scaffolding, metadata transformations, and distributable `.tgz` tarball unpacking.
## 4. The Arrange / Act / Assert (AAA) Pattern
Every test must be independently understandable and follow the AAA pattern:
```typescript
it('rejects login for suspended users with 403 Forbidden', async () => {
// Arrange
const suspendedUser = await createTestUser({ status: 'SUSPENDED' });
const credentials = { email: suspendedUser.email, password: 'ValidPassword123!' };
// Act
const response = await app.inject({
method: 'POST',
url: '/api/v1/auth/login',
payload: credentials,
});
// Assert
expect(response.statusCode).toBe(403);
const json = response.json();
expect(json.code).toBe('ACCOUNT_SUSPENDED');
expect(json.requestId).toBeDefined();
});
```
## 5. Inviolable Testing Laws
1. **Rule T1**: Every new behavior requires automated tests.
2. **Rule T2**: Every bug fix requires a regression test.
3. **Rule T3**: Security-sensitive changes require adversarial negative tests.
4. **Rule T4**: API changes require route & contract tests.
5. **Rule T5**: Database schema changes require migration & seed idempotency tests.
6. **Rule T6**: Generator changes require smoke coverage.
7. **Rule T7**: Never reduce coverage thresholds or delete tests to make a build pass.
8. **Rule T8**: Always run the full verification gate (`pnpm verify`) before declaring work complete.
## Database & Route Tests Run For Real
- `createTestDatabase()` (`@packages/db/test-support`) is a real in-process Postgres with the project's actual migrations. Use it instead of mocking Drizzle and instead of `it.skip` when Docker is absent.
- `buildApp(options, { db, redis, email })` takes injected dependencies, so `app.inject()` route tests exercise real SQL with `FakeRedis` and `MemoryTransport`. See `apps/api/src/tenancy.test.ts`.
- A tenant-isolation test is only trustworthy if it fails when the filter is removed. Prove it once by deleting the `WHERE` and watching it go red.
- `pnpm design:check` is part of `pnpm verify`.From Mihir-Rabari/create-odoo-app, MIT.
More from Mihir-Rabari/create-odoo-app
- 0.561score
design
Mihir-Rabari
Visual design law for the generated app — screen structure, colour tokens, typography, icons, spacing, and the states every screen owes the user.
SkillAFreshness: AClaude Code +9 - 0.558score
architecture
Mihir-Rabari
Monorepo package boundaries, layering rules, and extension patterns.
SkillAFreshness: AClaude Code +9 - 0.558score
authentication
Mihir-Rabari
Password hashing (scrypt), server-side session tokens, HTTP-only cookies, and auth events.
SkillAFreshness: AClaude Code +9 - 0.558score
authorization
Mihir-Rabari
Identity and Access Management, policy evaluation engine, declarative route guards, and permissions.
SkillAFreshness: AClaude Code +9 - 0.558score
database
Mihir-Rabari
PostgreSQL schema conventions, Drizzle ORM, migrations, deterministic seeding, and database integrity.
SkillAFreshness: AClaude Code +9 - 0.558score
api
Mihir-Rabari
Fastify route development, Zod type providers, OpenAPI documentation, structured logging, and error responses.
SkillAFreshness: AClaude Code +9 - 0.558score
frontend
Mihir-Rabari
Next.js App Router, shadcn/ui components, Tailwind CSS, TanStack Query, AuthContext, and permission-aware UI.
SkillAFreshness: AClaude Code +9 - 0.554score
email
Mihir-Rabari
Transactional email provider integration, templates, and delivery rules.
SkillAFreshness: AClaude Code +9 - 0.518score
observability
Mihir-Rabari
Structured logging, request correlation, Prometheus metrics, health probes, and sensitive data redaction.
SkillBFreshness: BClaude Code +9 - 0.518score
security
Mihir-Rabari
Zero-trust input rules, server-side authorization, credential protection, and adversarial security testing.
SkillBFreshness: BClaude Code +9 - 0.518score
storage
Mihir-Rabari
S3/MinIO StorageService abstraction, bucket management, and object storage conventions.
SkillBFreshness: BClaude Code +9 - 0.518score
validation
Mihir-Rabari
Runtime Zod validation schemas, business bounds, date ordering, and pagination limits.
SkillBFreshness: BClaude Code +9
Signals
- Stars
- 0
- Forks
- 1
- Open issues
- 3
- Last commit (this folder)
- Oct 2, 2026 (27 days ago)
- Last release
- Sep 4, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/Mihir-Rabari/create-odoo-app
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
More from Mihir-Rabari
- 0.561score
design
Mihir-Rabari
Visual design law for the generated app — screen structure, colour tokens, typography, icons, spacing, and the states every screen owes the user.
SkillAFreshness: AClaude Code +9 - 0.561score
agent
Mihir-Rabari
AI chat agent that acts as the signed-in user, tool registry, staged write actions with confirmation, permission-filtered tools, and prompt-injection rules.
SkillAFreshness: AClaude Code +9 - 0.558score
api
Mihir-Rabari
Fastify route development, Zod type providers, OpenAPI documentation, structured logging, and error responses.
SkillAFreshness: AClaude Code +9 - 0.558score
authentication
Mihir-Rabari
Password hashing (scrypt), server-side session tokens, HTTP-only cookies, and auth events.
SkillAFreshness: AClaude Code +9 - 0.558score
architecture
Mihir-Rabari
Monorepo package boundaries, layering rules, and extension patterns.
SkillAFreshness: AClaude Code +9 - 0.558score
database
Mihir-Rabari
PostgreSQL schema conventions, Drizzle ORM, migrations, deterministic seeding, and database integrity.
SkillAFreshness: AClaude Code +9
Cite this page
testing skill. Agent Mart. https://agentmart.dev/skills/mihir-rabari-testing-d2975a (last updated 2026-10-24)