Bashunit add-assertion
Add new assertion function with comprehensive tests following TDD
install
source · Clone the upstream repo
git clone https://github.com/TypedDevs/bashunit
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/TypedDevs/bashunit "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/add-assertion" ~/.claude/skills/typeddevs-bashunit-add-assertion && rm -rf "$T"
manifest:
.claude/skills/add-assertion/SKILL.mdsource content
Add Assertion Skill
Add a new assertion function to bashunit following strict TDD methodology.
Prerequisites
- Task file must exist — create
.tasks/YYYY-MM-DD-add-assertion-name.md - Study patterns — read
andtests/unit/assert_test.shsrc/assertions.sh
Workflow
1. Plan
Ask user: assertion name, parameters, success/failure behavior, error messages.
Document acceptance criteria and test inventory in task file.
2. Study Existing Patterns
Read
src/assertions.sh and tests/unit/assert_test.sh to understand:
- Parameter validation, assertion logic, error message format
- Return codes (0 = success, 1 = failure)
- How tests verify both success and failure cases
3. TDD Cycles
For each test in inventory, follow RED -> GREEN -> REFACTOR:
- Basic success case — assertion passes with valid input
- Failure case — assertion fails correctly, use
assert_fails - Edge cases — empty input, special characters, nested structures, malformed data
4. Integration
- Source new file in
if createdsrc/bashunit.sh
the assertion functionexport -f- Run full test suite:
./bashunit tests/ - Quality checks:
make sa && make lint && shfmt -w .
5. Documentation
- Add function header with Arguments/Returns/Example
- Update CHANGELOG.md
- Update user-facing docs if applicable
Final Checklist
- All tests passing (success, failure, edge cases)
- Function documented and exported
- Quality gate passes
- CHANGELOG updated
- Task file completed