aRustyDev / aRustyDev/pre-commit-hooks

test: Add comprehensive test coverage for all hooks

Abierto
#27 0 comentarios 0 reacciones 0 asignados Ver en GitHub
enhancement good first issue
Lenguaje dominante
Python
Estrellas
5
Forks
3
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

## Overview
Extend the bats testing framework to provide comprehensive test coverage for all 26 hook scripts.

## Current State
- Testing framework established with bats
- Sample tests created for:
- `hooks/commits/gitlint.sh`
- `hooks/nix/nix-fmt.sh`
- Test helper utilities available
- CI integration configured

## Requirements

### Test Coverage Goals
- [ ] 100% of hooks have at least basic tests
- [ ] 80%+ code coverage across all hooks
- [ ] Edge cases and error conditions tested
- [ ] Multi-platform compatibility verified

### Hooks Needing Tests

#### Commits
- [ ] commitizen.sh
- [ ] commitlint.sh
- [x] gitlint.sh ✅

#### Nix
- [ ] attestation.nix
- [ ] nix-build-check.sh
- [ ] nix-build.sh
- [ ] nix-darwin-check.sh
- [ ] nix-flake-check.sh
- [x] nix-fmt.sh ✅
- [ ] nix-home-manager-check.sh
- [ ] nix-lint.sh
- [ ] publish-to-nixpkgs.sh

#### CI
- [ ] github.sh
- [ ] gitlint.sh

#### Configs
- [ ] yamlfmt.sh

#### Terraform
- [ ] pluralith.sh
- [ ] tfupdate.sh

#### Web
- [ ] css/csslint.sh
- [ ] js/eslint.sh
- [ ] js/fixmyjs.sh
- [ ] js/jshint.sh
- [ ] scss/scss-lint.sh

#### Other
- [ ] backup-nixos.sh
- [ ] update-vm.sh
- [ ] witness.sh
- [ ] pluralith.sh (root)

## Test Structure
Each test file should include:
1. Existence and executability check
2. Missing dependency handling
3. Success case validation
4. Failure case validation
5. Edge case handling (empty input, malformed data, etc.)

## Deliverables
- [ ] Complete test suite for all hooks
- [ ] Test documentation updates
- [ ] CI passing with all tests
- [ ] Coverage report generation
- [ ] Performance benchmarks

## Success Criteria
- All hooks have corresponding test files
- Tests run successfully on Ubuntu and macOS
- Code coverage >80%
- All tests pass in CI
- Clear documentation for adding new tests

## Related
- #26 - CI/CD pipeline implementation
- #22 - Nix hooks test suite

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Start by reading the existing tests for hooks/commits/gitlint.sh and hooks/nix/nix-fmt.sh, then inspect the available test helper utilities and run the current suite. Add corresponding tests for the remaining listed hooks, covering existence, dependencies, success, failure, and edge cases. Done means all hooks are tested, Ubuntu and macOS CI pass, coverage exceeds 80%, and test documentation and coverage reporting are updated.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
shell
Área
testing
Tipo de issue
Nueva funcionalidad
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.