express-mocks-testing
Unit testing pattern for Express 5 controllers using node-mocks-http and @prisma/client mocks.
Skill by gentleman-programming
Chalk Labs
Need help deploying express-mocks-testing?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
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/davidleonmayor-express-mocks-testing
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, writing
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/express-mocks-testing
What's inside
- Skill name
express-mocks-testing- Description
- Unit testing pattern for Express 5 controllers using node-mocks-http and @prisma/client mocks. Trigger: When writing unit tests for backend controllers, testing Express routes, or avoiding Supertest/Server instantiation.
- License
- Apache-2.0
- Metadata
- author: gentleman-programming · version: 1.0
- Instructions
- 87 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
## When to Use
- When unit testing Express 5 controllers in isolation without starting the server.
- When you want to completely decouple from a real database.
- When testing specific logic, role filters, or validation branches inside a controller.
- **Do NOT use this for** End-to-End (E2E) integration tests that genuinely require testing the full middleware chain (CORS, body-parser, global error handlers). For E2E, use Supertest.
## Critical Patterns
- **NEVER instantiate the full Server:** Do not import or instantiate `new Server()` or `app` from `server.ts`. It causes slow tests and port conflicts.
- **Global Prisma Mock:** Always use `jest.mock("@prisma/client", () => { ... })` to intercept Prisma Client instantiations before the controller executes.
- **Isolate Request/Response:** Use `createRequest` and `createResponse` from `node-mocks-http` to simulate Express objects.
- **Call Controller Directly:** Invoke the controller method directly (e.g., `await controller.sendMessage(req, res)`).
- **Clear Mocks:** Always run `jest.clearAllMocks()` in the `beforeEach` hook.
- **Assertions:** Use `res._getJSONData()` to verify JSON responses and `res.statusCode` to check HTTP statuses.
## Code Examples
### Basic Controller Test Setup
```typescript
import { createRequest, createResponse } from "node-mocks-http";
import { MyController } from "../my.controller";
import { PrismaClient } from "@prisma/client";
// 1. MOCK PRISMA GLOBALLY
jest.mock("@prisma/client", () => {
const mPrismaClient = {
user: {
findUnique: jest.fn(),
create: jest.fn(),
},
};
return { PrismaClient: jest.fn(() => mPrismaClient) };
});
const prismaMock = new PrismaClient() as jest.Mocked<any>;
describe("MyController", () => {
let controller: MyController;
beforeAll(() => {
controller = new MyController();
});
beforeEach(() => {
jest.clearAllMocks();
});
describe("getUser", () => {
it("should return 200 and the user data", async () => {
// Arrange
const req = createRequest({
method: "GET",
url: "/api/users/1",
params: { id: "1" },
user: { id_persona: "admin-123" } // If testing protected routes
});
const res = createResponse();
prismaMock.user.findUnique.mockResolvedValue({ id: "1", name: "John" });
// Act
await controller.getUser(req, res);
// Assert
expect(res.statusCode).toBe(200);
expect(res._getJSONData().name).toBe("John");
expect(prismaMock.user.findUnique).toHaveBeenCalledWith({
where: { id: "1" }
});
});
});
});
```
## Commands
```bash
# Run backend tests
pnpm test
# Run specific test file
pnpm jest path/to/your/controller.test.ts
```From davidleonmayor/proyecto-grado-unimayor, Apache-2.0.
More from davidleonmayor/proyecto-grado-unimayor
- 0.516score
backend-context
davidleonmayor
Backend architecture, patterns and conventions for the Express.js 5 API.
SkillCFreshness: C★ 3Claude Code +9 - 0.511score
ui-ux-designer
davidleonmayor
Create interface designs, wireframes, and design systems.
SkillCFreshness: C★ 3Claude Code +9 - 0.451score
frontend-context
davidleonmayor
Frontend architecture, patterns and conventions for the Next.js 15 app.
SkillDFreshness: D★ 3Claude Code +9 - 0.449score
skill-commit
davidleonmayor
Creates professional git commits following conventional-commits format.
SkillDFreshness: D★ 3Claude Code +9 - 0.274score
backend-router
davidleonmayor
No description from the publisher yet.
SkillCFreshness: C★ 3Claude Code +9 - 0.274score
backend-controller
davidleonmayor
No description from the publisher yet.
SkillCFreshness: C★ 3Claude Code +9 - 0.274score
backend-schema
davidleonmayor
No description from the publisher yet.
SkillCFreshness: C★ 3Claude Code +9 - 0.274score
backend-service
davidleonmayor
No description from the publisher yet.
SkillCFreshness: C★ 3Claude Code +9 - 0.248score
project-info
davidleonmayor
General monorepo structure and component overview.
SkillDFreshness: D★ 3Claude Code +9 - 0.248score
skill-sync
prowler-cloud
Synchronizes skill metadata to AGENTS.md Auto-invoke sections.
SkillDFreshness: D★ 3Claude Code +9
Signals
- Stars
- 3
- Forks
- 0
- Open issues
- 1
- Last commit (this folder)
- Apr 28, 2026 (6 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- Version
- 1.0
- License
- Apache-2.0
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from gentleman-programming
- 0.724score
gentleman-bubbletea
gentleman-programming
Bubbletea TUI patterns for Gentleman.Dots installer.
SkillAFreshness: A★ 7.6KClaude Code +9 - 0.723score
engram-backlog-triage
gentleman-programming
Backlog triage protocol for Engram: audit open issues and PRs, classify each item, infer maintainer ideology from comments, and produce an actionable…
SkillAFreshness: A★ 7.6KClaude Code +9 - 0.720score
engram-commit-hygiene
gentleman-programming
Commit and branch naming standards for Engram contributors, enforced by GitHub rulesets.
SkillAFreshness: A★ 7.6KClaude Code +9 - 0.720score
engram-architecture-guardrails
gentleman-programming
Architecture guardrails for Engram across local store, cloud sync, dashboard, and plugins.
SkillAFreshness: A★ 7.6KClaude Code +9 - 0.720score
engram-branch-pr
gentleman-programming
PR creation workflow for Engram following the issue-first enforcement system.
SkillAFreshness: A★ 7.6KClaude Code +9 - 0.720score
engram-business-rules
gentleman-programming
Product and business-rule guardrails for Engram.
SkillAFreshness: A★ 7.6KClaude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get express-mocks-testing running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
express-mocks-testing skill. Agent Mart. https://agentmart.dev/skills/davidleonmayor-express-mocks-testing (last updated 2026-10-24)