Skills

Testing

Test-driven development workflow for Noodle.

Install

npx skills add poteto/noodle --skill testing -g -a claude-code -y
Repository
poteto/noodle577
Category
Testing
Updated
8mo ago
License
MIT
Context cost
Lightabout 566 tokens
Runs scripts
No, instructions only

What it does

Test-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.

Testing

Test-driven by default. Prove the problem before solving it.

Core Workflow: Bug First

  1. Reproduce, Run the failing scenario and observe the actual behavior
  2. Write a failing test, Minimal reproduction as a test case
  3. Commit the failing test, Use Skill(commit) with message like test: reproduce #issue-description
  4. Fix the code, Only now attempt the fix
  5. Verify, Run pnpm test and confirm the test passes
  6. 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

CommandPurpose
pnpm testRun all tests
pnpm test:shortSkip integration tests
pnpm checkFull local CI (test + vet + lint + fixtures)
pnpm bugsList fixtures marked as known bugs
pnpm fixtures:loopVerify loop fixtures match expected
pnpm fixtures:loop:recordRegenerate loop fixture expected output
pnpm fixtures:hashVerify fixture input hashes
pnpm fixtures:hash:syncUpdate fixture input hashes
pnpm vetRun go vet
pnpm lint:archArchitecture 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 ./...
Read the whole SKILL.md on GitHub

More in Testing