aRustyDev / aRustyDev/pre-commit-hooks

test(nix): Create test suite for Nix hooks

Open
#22 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Python
Stars
5
Forks
3
PR merge metrics
No merged PRs in 30d

Description

## Description
Create comprehensive test suite for all Nix pre-commit hooks.

## Requirements
- Create test fixtures (sample Nix files)
- Test success and failure cases for each hook
- Verify error messages are helpful
- Test edge cases and platform compatibility
- Document testing procedures

## Test Structure
```
tests/nix/
├── fixtures/
│ ├── valid-flake.nix
│ ├── invalid-flake.nix
│ ├── darwin-configuration.nix
│ ├── home.nix
│ └── ...
├── test-nix-flake-check.sh
├── test-nix-build-check.sh
├── test-nix-darwin-check.sh
├── test-nix-home-manager-check.sh
├── test-nix-fmt.sh
└── test-nix-lint.sh
```

## Test Cases
- Valid configurations should pass
- Invalid configurations should fail with clear errors
- Missing dependencies should be handled gracefully
- Platform-specific hooks should skip on wrong platforms
- Formatters should produce consistent output
- Linters should catch known anti-patterns

## Dependencies
This issue depends on all hook implementations being complete:
- #15-#20 (all individual hook implementations)

## Documentation
- Update README with testing instructions
- Document how to run individual tests
- Provide examples of expected output

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the hook implementations from issues #15-#20 and the proposed tests/nix/ structure. Run each individual test script against the listed fixtures, then verify that success, failure, dependency, platform, formatter, and linter cases are covered and README testing instructions explain how to run them.

Written by the indexing model from the issue text.

Assessment

Tech stack
shell
Domain
build-system, documentation, testing
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.