poteto/noodle

testing

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.

First seen Mar 3, 2026

Installation

$ npx skills add poteto/noodle --skill testing

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from poteto/noodle · top by installs.

npx skills add poteto/noodle

Browse all from poteto/noodle

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 269
License LICENSE
Default branch main
Open issues 4
Status Active

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 2,608 B
  • docs SUMMARY.md 298 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 66 installs

SKILL.md

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](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](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.