aRustyDev/pre-commit-hooks

test: Add comprehensive test coverage for all hooks

開放

#27 建立於 2025年7月8日

 (0 則留言) (0 個反應) (0 位負責人)Python (3 個分叉)auto 404
enhancementgood first issue

倉庫指標

星標
 (5 顆星)
PR 合併指標
 (PR 指標待抓取)

描述

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

貢獻者指南