Test reorganization with hspec-like naming and consistent job prefixes
Summary
This release reorganizes the test suite to use hspec-like naming conventions and implements consistent job naming with prefixes across all GitLab CI jobs.
Key Changes
Test Suite Reorganization
- Reorganized tests with hspec-like naming:
it-<does-something> - Moved from
test/{positive,negative}/*totest/modules/{flake,gitlab-ci}/* - Structure mirrors module hierarchy (modules.flake.* vs modules.gitlab-ci.*)
- Added positive tests for all validators (previously only had negative tests)
- Auto-discovery of child pipelines from test directory
Job Naming Improvements
- Implemented consistent job naming with prefixes:
-
build:*- Build jobs (e.g., build:omnix) -
publish:*- Publishing jobs (e.g., publish:cachix) -
validate:*- Validation jobs (e.g., validate:flake-lock, validate:flake-show, validate:flake-strict-inputs) -
test:*- Test jobs (test:canary:, test:module:) -
generate:*- Generation jobs -
aggregate:*- Aggregation jobs
-
- Updated
remote/gitlab-ci.ymlto use colon-based naming convention
Module Improvements
- Made child-pipeline module path-agnostic (no hardcoded "test" assumptions)
- Updated module test to use canaries instead of cachix for better coverage
- Added
lib.findFlakesfunction for recursive flake discovery
Additional Improvements
- Added
verifystage to stage ordering (between test and publish) - Added property test for expect-failure module
- Added expect-failure module for negative testing
- Refactored negative tests to use expect-failure module
- Added flake-lock and flake-show negative tests
See ChangeLog.md for complete details.