Skip to main content

testing

Guides ccusage Rust and Vitest tests. Use when adding or fixing cargo tests, CLI snapshots, Claude model pricing, LiteLLM compatibility, Vitest tests, or fixture-backed tests.

Source facts

Repository
ryoppippi/ccusage
Last source activity
June 8, 2026 at 23:29
Detected SKILL.md language
English
Stars
15,907
Forks
638

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
3 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
testing
description
Guides ccusage Rust and Vitest tests. Use when adding or fixing cargo tests, CLI snapshots, Claude model pricing, LiteLLM compatibility, Vitest tests, or fixture-backed tests.
# ccusage Testing Use the `tdd` skill for logic changes, Red-Green-Refactor workflow, focused runner commands, Rust test syntax, and general test readability rules. This skill owns ccusage-specific Rust and Vitest test rules: fixtures, adapter coverage, pricing/model behavior, CLI output, schema artifacts, and package tooling. ## Shared Rules - Prefer behavior-focused tests over schema-shape tests unless schema normalization itself is the behavior. - Avoid `try`/`catch` in tests for expected failures. Use native result, throwing, rejecting, or explicit failure assertions for the test framework. - Avoid `if` branches inside test bodies. Split behaviors into separate tests or table-driven cases. - Tests do not need to be DRY. Prefer repeated, explicit setup when duplication makes each behavior easier to read. - Do not hoist one-off values out of tests when sharing them hides the behavior. - Skipped local-data smoke tests are acceptable when real user log directories catch schema drift, but they must not fail on clean CI machines. ## Rust Tests For repo-wide validation, prefer the `just` recipe because it runs Vitest and Rust tests together: ```sh direnv exec . just test ``` Put Rust unit tests near the module they exercise with `#[cfg(test)] mod tests`. When splitting a large module, move its tests with the code instead of leaving unrelated tests in `main.rs`. Read `references/rust.md` for fixture-backed parser, path discovery, SQLite loading, dedupe, aggregation, pricing, CLI output parity, model, and readability rules. For focused cargo commands, Red-Green-Refactor examples, Rust test attributes, and syntax examples, read `../tdd/references/rust.md`. ## Vitest Tests Read `references/vitest.md` for TypeScript package launcher, schema artifact, benchmark script, docs/package tooling, and `fs-fixture` test rules.
View on GitHub