agentsclimarketplace

Api test generator

Skill teckedd-code2save/ai-build-tools/skills/api-test-generator

From product spec to live URL — scaffold a backend with Forge, ship to your VPS with ship-to-vps

Install
npx -y skills add teckedd-code2save/ai-build-tools --skill api-test-generator

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Generates comprehensive API integration tests (using Jest/Supertest, Pytest, etc.) from existing backend repositories, ORM schemas, and router/controller files. Use when a user wants to test their newly provisioned data platform or backend services.

SKILL.md

3.6 KB, as published. Nobody here has run it

API Test Generator

Generate production-grade integration tests for existing API endpoints and backend services. This skill ensures that newly provisioned schemas and controllers are fully validated against business requirements.

🎯 When to Use

  • After using the forge skill to scaffold a new backend.
  • When adding new endpoints to an existing service.
  • When refactoring DTOs, Schemas, or ORM models.
  • When generating Postman/Bruno collections for manual API testing.

🛠️ Step-by-Step Workflow

1. Analyze the Backend Structure

  • Scan the existing codebase to identify the framework (e.g., Express + TS, FastAPI, Spring Boot, .NET).
  • Identify the ORM being used (e.g., Prisma, SQLAlchemy, EF Core).
  • Locate the router/controller files to extract the exact endpoint paths, HTTP methods, and expected payloads.

2. Set Up the Test Environment

  • Generate the necessary test scaffolding (e.g., jest.config.js with ts-jest for TypeScript, or conftest.py for Pytest).
  • Auto-generate test database setup, teardown, and seeding scripts using the existing ORM. Tests should run against an isolated test database (e.g., a local Docker container) and rollback state between tests.
  • Provide instructions or a workflow snippet for running the tests (e.g., npm run test:e2e).

3. Generate Integration Tests

For every identified endpoint, generate tests that cover:

  • Happy Path: 200 OK or 201 Created with valid payloads. Verify the response shape against the API contract.
  • Validation Errors: 400 Bad Request triggers by sending missing required fields, incorrect types, or boundary violations.
  • Not Found / Edge Cases: 404 Not Found handling for invalid IDs.
  • Auth / Permissions (if applicable): 401 Unauthorized or 403 Forbidden checks.

Example TypeScript + Jest + Supertest:

import request from 'supertest';
import { app } from '../src/app';
import { prisma } from '../src/db/prisma';

describe('POST /api/users', () => {
  afterAll(async () => {
    await prisma.user.deleteMany(); // cleanup
  });

  it('should create a new user and return 201', async () => {
    const res = await request(app)
      .post('/api/users')
      .send({ email: '[email protected]', name: 'Test User' });
    
    expect(res.status).toBe(201);
    expect(res.body).toHaveProperty('id');
    expect(res.body.email).toBe('[email protected]');
  });

  it('should return 400 if email is missing', async () => {
    const res = await request(app)
      .post('/api/users')
      .send({ name: 'Test User' });
    
    expect(res.status).toBe(400);
  });
});

4. Provide API Collections (Optional)

If requested, output a JSON collection for Postman or Bruno. This allows the user to easily import the endpoints and play with them manually. Make sure to parameterize base URLs using environment variables like {{baseUrl}}.

⚙️ Best Practices

  • Never mock the database for integration tests if it can be avoided. Tests should hit a real test database instance to ensure ORM queries behave exactly as they will in production.
  • Clear state between tests. Use ORM capabilities to truncate tables or rollback transactions before every test case to prevent flakiness.
  • Use factories. Leverage libraries like faker.js or factory_boy to create realistic test payloads instead of hardcoding 'test' everywhere.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.