Skip to content
cccskills
FreePublished on GitHub

integration-testing-standards

Integration testing patterns - database setup/teardown, API testing, contract testing, and Testkube execution.

The English summary is being prepared. Showing the original description.

Works withKubernetes
See how to install

Files included (5)

  • SKILL.md4.1 KB
  • resources/api-testing.md4.4 KB
  • resources/authentication.md1.9 KB
  • resources/database-strategies.md3.2 KB
  • resources/testkube.md1.5 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Integration Testing Skill

Dynamic path: All paths below use components/<testing-component>/ as a placeholder. The actual directory depends on the testing component defined in sdd/sdd-settings.yaml. Delegate to the techpack-settings skill for directory path resolution — it maps component type (testing) + name to a filesystem path (e.g., type=testing, name=integration → components/testing-integration/).

Tests that verify multiple components working together with real infrastructure. Integration tests run in Kubernetes via Testkube for environment parity.


Overview

AspectDetails
Locationcomponents/<testing-component>/tests/integration/
FrameworkVitest
ExecutorTestkube
Runs InKubernetes cluster
Written ByTester agent

Test Structure

Directory Organization

components/<testing-component>/
├── tests/
│   └── integration/
│       ├── api/
│       │   ├── users.test.ts
│       │   ├── auth.test.ts
│       │   └── plans.test.ts
│       ├── db/
│       │   └── migrations.test.ts
│       └── helpers/
│           ├── client.ts
│           ├── database.ts
│           └── seed.ts
├── testsuites/
│   └── integration-suite.yaml
└── fixtures/
    └── seed-data.sql

Resource Files

For detailed guidance, read these on-demand:


Contract Testing

Request/Response Validation

import { describe, it, expect } from 'vitest';
import Ajv2020 from 'ajv/dist/2020.js';
import openApiSpec from '../../../../contract/openapi.json';

const ajv = new Ajv2020({ allErrors: true });

describe('API Contract Compliance', () => {
  describe('POST /api/users', () => {
    it('response matches OpenAPI schema', async () => {
      const response = await client.post('/api/users', validUserData);

      const schema = openApiSpec.paths['/api/users'].post.responses['201'].content['application/json'].schema;
      const validate = ajv.compile(schema);
      const valid = validate(response.data);

      expect(valid).toBe(true);
      if (!valid) {
        console.error('Schema validation errors:', validate.errors);
      }
    });
  });
});

Rules

  • Real infrastructure - Use actual database, no mocks for I/O
  • Environment parity - Tests run in Kubernetes like production
  • Cleanup after each test - Leave database in clean state
  • Independent tests - Tests must not depend on each other
  • Idempotent tests - Running twice produces same result
  • Reference spec and issue - Use @spec and @issue JSDoc tags
  • Given/When/Then structure - Clear test organization
  • Handle async properly - Await all database and HTTP operations
  • Reasonable timeouts - Set appropriate timeouts for network operations

Summary Checklist

Before committing integration tests, verify:

  • Tests use real database (not mocked)
  • Database cleanup happens after each test
  • @spec and @issue tags present in file header
  • Each acceptance criterion has corresponding tests
  • Tests follow Given/When/Then structure
  • HTTP client properly configured for test environment
  • Authentication helpers used for protected endpoints
  • Error scenarios tested (400, 401, 403, 404, 409, 500)
  • Testkube YAML definition created/updated
  • Tests run successfully via testkube run test

Input / Output

This skill defines no input parameters or structured output.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Standards for authoring SDD plugin agents — frontmatter, self-containment, skill references, and no-user-interaction rules.

The English summary is being prepared. Showing the original description.

LiorCohen/sdd43Updated Feb 24, 2026

Scaffolds Node.js/TypeScript backend components with CMDO architecture, driven by component settings.

The English summary is being prepared. Showing the original description.

LiorCohen/sdd43Updated Feb 24, 2026

CMDO architecture standards for Node.js/TypeScript backends with strict layer separation.

The English summary is being prepared. Showing the original description.

LiorCohen/sdd43Updated Feb 24, 2026

Intent-to-command mappings for fullstack-typescript tech pack features.

The English summary is being prepared. Showing the original description.

LiorCohen/sdd43Updated Feb 24, 2026

Create change specification and implementation plan with dynamic phase generation. Supports feature, bugfix, refactor, and epic types.

The English summary is being prepared. Showing the original description.

LiorCohen/sdd43Updated Feb 24, 2026

Orchestrates the full change lifecycle — routes actions to phase-specific sub-files.

The English summary is being prepared. Showing the original description.

LiorCohen/sdd43Updated Feb 24, 2026

See all skills by LiorCohen

Report a problem with this skill