Testing
SkillProductivityTest-driven development workflow for Noodle. Use when testing changes, writing tests, fixing bugs, creating fixtures, or running the test suite. Triggers: "test", "write a test", "fix this bug", "add a fixture", "run tests", "TDD", or any task involving verification of code changes.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Testing skill
What this skill tells your AI
The instructions your AI receives, as published by poteto/noodle in .agents/skills/testing/SKILL.md and read by ahel’s review.
Test-driven by default. Prove the problem before solving it.
Core Workflow: Bug First
- Reproduce — Run the failing scenario and observe the actual behavior
- Write a failing test — Minimal reproduction as a test case
- Commit the failing test — Use
Skill(commit)with message liketest: reproduce #issue-description - Fix the code — Only now attempt the fix
- Verify — Run
pnpm testand confirm the test passes - Commit the fix — Separate commit from the test
This applies to all bug fixes. The failing test proves the bug exists and prevents regressions.
Fixture Tests
Noodle uses directory-based fixtures in testdata/. Read references/fixtures.md for full format, helper API, and code patterns.
Creating a New Fixture
./scripts/scaffold-fixture.sh <package-dir> <fixture-name> [state-count]
Fill in the generated input.json/input.ndjson and expected.md, then:
pnpm fixtures:hash:sync
Bug Fixtures
See references/fixtures.md for full bug fixture format (frontmatter fields, expected error sections, and the fix workflow).
Key Commands
| Command | Purpose |
|---|---|
pnpm test | Run all tests |
pnpm test:short | Skip integration tests |
pnpm check | Full local CI (test + vet + lint + fixtures) |
pnpm bugs | List fixtures marked as known bugs |
pnpm fixtures:loop | Verify loop fixtures match expected |
pnpm fixtures:loop:record | Regenerate loop fixture expected output |
pnpm fixtures:hash | Verify fixture input hashes |
pnpm fixtures:hash:sync | Update fixture input hashes |
pnpm vet | Run go vet |
pnpm lint:arch | Architecture lint (file sizes, legacy patterns) |
Running Specific Tests
# Single package
go test ./loop
# Single test
go test ./loop -run TestLoopDirectoryFixtures
# Bypass cache
go test -count=1 ./parse
# With race detector
go test -race ./...
# Verbose
go test -v ./tui
Integration Tests
Long-running or external-dependency tests use testing.Short():
if testing.Short() {
t.Skip("skipping integration test in short mode")
}
pnpm test:short skips these. pnpm test runs everything.
Signals
- GitHub stars
- 270
- Forks
- 15
- Last commit
- Mar 2026
- Hacker News mentions
- 20
Advanced
- Catalog kind
- skill
- Gateway key
testing-poteto- Source
- github.com/poteto/noodle