aRustyDev / aRustyDev/pre-commit-hooks

test: Add comprehensive test coverage for all hooks

Ouverte
#27 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
enhancement good first issue
Langage dominant
Python
Étoiles
5
Forks
3
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

## 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

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par lire les tests existants pour hooks/commits/gitlint.sh et hooks/nix/nix-fmt.sh, puis examinez les utilitaires d’aide aux tests disponibles et exécutez la suite actuelle. Ajoutez les tests correspondants pour les hooks restants de la liste, en couvrant l’existence, les dépendances, la réussite, l’échec et les cas limites. Le travail est terminé lorsque tous les hooks sont testés, que la CI Ubuntu et macOS passe, que la couverture dépasse 80 % et que la documentation des tests ainsi que les rapports de couverture sont mis à jour.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
shell
Domaine
testing
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.