Bklit UI is an open-source collection of customizable interface components and charts for building React applications with shadcn. Developers use it to add data visualizations such as funnels, gauges, maps, financial charts, and other interactive displays. The catalogue add-ons provide workflows for using its components and chart registry.
Borrowing it
Nothing to install: this file belongs to bklit/bklit-ui. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/bklit/bklit-ui/main/.agents/skills/unit-tests/SKILL.mdgit clone --depth 1 https://github.com/bklit/bklit-uiWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/bklit/bklit-ui/unit-tests)<a href="https://agentmods.dev/skills/bklit/bklit-ui/unit-tests"><img src="https://agentmods.dev/badge/skills/bklit/bklit-ui/unit-tests/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/bklit/bklit-ui/unit-tests"><img src="https://agentmods.dev/badge/skills/bklit/bklit-ui/unit-tests.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- Socket pass
- Snyk pass
- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00054 | $0.01031 |
| Opus 5.5 | $0.00022 | $0.00412 |
| Sonnet 5.5 | $0.00011 | $0.00206 |
| Haiku 4.5 | $0.00005 | $0.00103 |
Grade A, and why
unit-tests scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 114 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Unit Tests (bklit-ui)
Read this skill before proposing or writing tests. Default stance: fewer, higher-signal tests.
When to add tests
Add tests when they lock in behavior that is easy to break silently:
| Worth testing | Why |
|---|---|
| Pure functions / modules | Stable inputs → outputs; fast; no DOM |
| Formatters, parsers, scale math, bounds | Regression on string/number output is user-visible |
| Codegen / export / registry helpers | Output shape is the contract |
| Non-obvious edge cases | Empty data, reversed ranges, clamping |
Examples in this repo: chart-formatters.test.ts, highlight-segment-bounds.test.ts, animation.test.ts, apps/web/lib/studio/__tests__/*.
When NOT to add tests (unless explicitly requested)
Do not add tests just to increase coverage or “be thorough”:
| Skip | Why |
|---|---|
| React component render smoke tests | SVG, motion, portals → brittle; manual/docs check is cheaper |
memo() / guard extractions (#65-style) |
Structural perf refactors; output unchanged; RTL mount assertions are heavy |
| Default prop passthrough | formatValue = intFmt — types + formatter tests cover it |
| Third-party library behavior | Don’t re-test d3, Motion, or React |
| Trivial getters / one-line wrappers | No regression signal |
| Snapshot entire chart SVG/JSX | High churn, low signal |
If the user asks “should we test X?” — say no when X falls in this table, and suggest a lighter alternative (pure helper test, manual check, CI build).
Repo conventions
Runner: Node built-in test runner + tsx (not Jest/Vitest unless the repo adopts them later).
pnpm test # root — turbo runs packages with a test script
pnpm --filter @bklitui/ui test
cd apps/web && pnpm test
Place tests: **/__tests__/**/*.test.ts next to the code under test.
Pattern:
import assert from "node:assert/strict";
import { describe, it } from "node:test";
import { myFn } from "../my-module";
describe("myFn", () => {
it("handles empty input", () => {
assert.equal(myFn([]), expected);
});
});
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 6d ago Changed b52d6ed49e26
- 21d ago Changed · +2 lines d9124fc04387
- 2mo ago First seen · 112 lines · 54 tokens per session scan A b9b41db323b9
unit-tests is a skill published in the GitHub repository bklit/bklit-ui (1,898 stars, last pushed 5d ago), licensed MIT. It adds 54 tokens to every session and 1,031 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
unit-tests compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| unit-testsbklit/bklit-ui | Skill | 1.9k | 5d ago | MIT | A | 54 | Claude Code, Codex |
| chart-defaultsag-grid/ag-charts | Skill | 489 | today | none | A | 60 | Claude Code, Codex |
| write-testsuhop/console-toolkit | Skill | 10 | 15d ago | BSD-3-Clause | A | 31 | Claude Code |
| oma-refactorgracefullight/krds | Skill | 47 | 1mo ago | none | A | 71 | Claude Code, Codex |
| oma-debuggracefullight/krds | Skill | 47 | 1mo ago | none | A | 42 | Claude Code, Codex |
| test-masterJeffallan/claude-skills | Skill | 12k | 7d ago | MIT | A | 104 | Claude Code |
| migrate-xunit-to-xunit-v3dotnet/skills | Skill | 5.8k | yesterday | MIT | A | 149 | Claude Code |