Receber por email
← Voltar para o catálogo

integration-testing-standards

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

36estrelas
Atualizado há 8 meses

Ver no GitHub ↗

Como adicionar

/plugin marketplace add LiorCohen/sdd

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/integration-testing-standards/svg)](https://www.skillteca.com.br/skills/integration-testing-standards)

Skills relacionadas

Ver todas de Automação →

Alerta por categoria

Receba novas skills de Automação toda segunda

1 email curto, só com as skills novas de Automação. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

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

| Aspect | Details | |--------|---------| | Location | components/<testing-component>/tests/integration/ | | Framework | Vitest | | Executor | Testkube | | Runs In | Kubernetes cluster | | Written By | Tester 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:

  • [database-strategies.md](resources/database-strategies.md) — Transaction rollback, truncate, cleanup
  • [api-testing.md](resources/api-testing.md) — HTTP client, test patterns, examples
  • [authentication.md](resources/authentication.md) — Login helpers, protected endpoint tests
  • [testkube.md](resources/testkube.md) — Test definition YAML, suites, running tests

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.

Compartilhar X LinkedIn