testing-cicd-init

from shipshitdev/library

Claude, Cursor, Codex skills and commands

3 stars0 forksUpdated Jan 25, 2026
npx skills add https://github.com/shipshitdev/library --skill testing-cicd-init

SKILL.md

Testing & CI/CD Initialization

Automatically sets up comprehensive test infrastructure for TypeScript projects including Vitest, coverage thresholds, and GitHub Actions CI/CD.

When to Use

This skill should be used when:

  • Adding tests to a project without test coverage
  • Setting up GitHub Actions CI/CD for the first time
  • Configuring Vitest with coverage thresholds
  • Initializing testing infrastructure for a new project
  • Migrating from Jest to Vitest

What It Does

  1. Detects project type (Next.js, NestJS, React, Node.js)
  2. Adds Vitest configuration with appropriate settings
  3. Creates test setup files for the environment
  4. Adds GitHub Actions workflow for CI/CD
  5. Configures 80% coverage thresholds
  6. Adds test scripts to package.json
  7. Installs required dependencies

Project Type Detection

The skill detects project type by scanning:

  • package.json dependencies (next, @nestjs/core, react, etc.)
  • Config files (next.config.*, nest-cli.json, etc.)
  • Directory structure (app/, src/, pages/, etc.)

Quick Start

Ask Claude to:

Add testing and CI/CD to this project

Or be specific:

Set up Vitest with 80% coverage and GitHub Actions for this Next.js project

Configuration by Project Type

Next.js Projects

Dependencies installed:

bun add -D vitest @vitest/coverage-v8 @vitejs/plugin-react @testing-library/react @testing-library/jest-dom jsdom

Files created:

  • vitest.config.ts - Vitest with jsdom environment
  • src/test/setup.ts - Test setup with RTL matchers
  • .github/workflows/ci.yml - CI pipeline

Test pattern: **/*.{test,spec}.{ts,tsx}

NestJS Projects

Dependencies installed:

bun add -D vitest @vitest/coverage-v8 supertest @types/supertest

Files created:

  • vitest.config.ts - Vitest with node environment
  • test/setup.ts - Test setup for NestJS
  • .github/workflows/ci.yml - CI with MongoDB service

Test pattern: src/**/*.spec.ts

React/Node.js Projects

Follows similar patterns based on detected framework.

Coverage Configuration

Default thresholds (configurable):

  • Lines: 80%
  • Functions: 80%
  • Branches: 75%
  • Statements: 80%

Coverage is enforced:

  1. In pre-commit hooks (via Husky)
  2. In CI/CD pipeline (GitHub Actions)

GitHub Actions Features

The generated CI workflow includes:

  • Bun setup with caching
  • Dependency installation
  • Lint/format checking (Biome)
  • TypeScript type checking
  • Test execution with coverage
  • Build verification
  • MongoDB service (for NestJS projects)

Templates

Templates are located in the templates/ directory:

TemplatePurpose
vitest.config.nextjs.tsVitest config for Next.js
vitest.config.nestjs.tsVitest config for NestJS
ci-nextjs.ymlGitHub Actions for Next.js
ci-nestjs.ymlGitHub Actions for NestJS
test-setup-react.tsTest setup with RTL
test-setup-node.tsTest setup for Node.js

Monorepo Support

For monorepos (detected by workspaces in package.json):

  1. Creates vitest.workspace.ts at root
  2. Creates individual vitest.config.ts per package
  3. Creates root-level GitHub Actions workflow
  4. Uses bun --filter '*' test for orchestration

Integration with Other Skills

SkillIntegration
husky-test-coverageAdds pre-commit coverage enforcement
linter-formatter-initWorks alongside for code quality
playwright-e2e-initAdds E2E testing after unit tests
testing-expertProvides testing patterns guidance

Example Usage

Adding tests to a Next.js project

User: Add testing to this project

Claude:
1. Detects Next.js from package.json
2. Installs vitest, @vitest/coverage-v8, @testing-library/react
3. Creates vitest.config.ts with jsdom environment
4. Creates src/test/setup.ts
5. Creates .github/workflows/ci.yml
6. Adds test scripts to package.json

Adding tests to a NestJS API

User: Set up tests for this NestJS API

Claude:
1. Detects NestJS from @nestjs/core dependency
2. Installs vitest, @vitest/coverage-v8, supertest
3. Creates vitest.config.ts with node environment
4. Creates test/setup.ts
5. Creates .github/workflows/ci.yml with MongoDB service
6. Adds test scripts to package.json

Troubleshooting

Tests not finding modules

Ensure path aliases in vitest.config.ts match tsconfig.json:

resolve: {
  alias: {
    "@": path.resolve(__dirname, "./src"),
  },
},

Coverage below threshold

  1. Check coverage report: bun test --coverage
  2. Identify uncovered lines
  3. Add tests or adjust thresholds temporarily

CI failing on type errors

Ensure bunx tsc --noEmit passes locally before pushing.

Best Practices

  1. Start with unit tests for utilities and services
  2. Add integration tests for API endpoints
  3. Use E2E tests sparingly for critical flows
  4. Run tests before commits via Husky

...

Read full content

Repository Stats

Stars3
Forks0