aRustyDev/pre-commit-hooks

test: Add comprehensive test coverage for all hooks

Offen

#27 geöffnet am 08.07.2025

 (0 Kommentare) (0 Reaktionen) (0 zugewiesene Personen)Python (3 Forks)auto 404
enhancementgood first issue

Repository-Metriken

Stars
 (5 Sterne)
PR-Merge-Metriken
 (PR-Metriken ausstehend)

Beschreibung

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
  • gitlint.sh ✅

Nix

  • attestation.nix
  • nix-build-check.sh
  • nix-build.sh
  • nix-darwin-check.sh
  • nix-flake-check.sh
  • 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

Contributor Guide