Table-driven testing patterns using @kitz/test. Triggers on creating test cases, parameterized tests, or when writing .test.ts files.
Scanned 2/12/2026
Install via CLI
openskills install majiayu000/claude-skill-registry---
name: table-testing
description: Table-driven testing patterns using @kitz/test. Triggers on creating test cases, parameterized tests, or when writing .test.ts files.
---
# Table-Driven Testing
## Import
```typescript
import { Test } from '@kitz/test'
```
## Function Mode (Preferred)
Types are inferred from the function signature:
```typescript
// Basic - input/output pairs
Test.on(add)
.cases(
[[2, 3], 5],
[[-1, 1], 0],
[[0, 0], 0],
)
.test()
// Snapshot mode - no expected output
Test.on(parseValue)
.cases(
[['42']],
[['hello']],
)
.test()
```
## Describe Mode
For custom types or grouping:
```typescript
Test.describe('Transform')
.inputType<string>()
.outputType<string>()
.cases(
['hello', 'HELLO'],
['world', 'WORLD'],
)
.test(({ input, output }) => {
expect(input.toUpperCase()).toBe(output)
})
```
## Chained Describes
Use for nested groupings:
```typescript
Test.describe('String > uppercase', [
['hello', 'HELLO'],
])
.describe('String > lowercase', [
['HELLO', 'hello'],
])
.test(({ input, output }) => {
// runs for each describe block
})
```
## Matrix Testing
Cartesian product of inputs:
```typescript
Test.on(format)
.matrix({
locale: ['en', 'fr', 'de'],
currency: ['USD', 'EUR'],
amount: [100, 1000],
})
.test()
```
## Output Transformation
Transform expected outputs before comparison:
```typescript
Test.on(serialize)
.cases(
[{ a: 1 }, '{"a":1}'],
)
.onOutput(JSON.parse) // parse expected before comparing
.test()
```
## Custom Assertions
Override default assertion:
```typescript
Test.on(approximateCalc)
.cases(
[[1.1], 1],
[[2.9], 3],
)
.test(({ input, output, actual }) => {
expect(actual).toBeCloseTo(output, 0)
})
```
## Key Rules
* __NEVER wrap `Test.on()` or `Test.describe()` in Vitest `describe` blocks__ - they create their own
* Use `>` separator for nested describes: `'Parent > Child'`
* Function mode infers types automatically - prefer it when testing a single function
* Snapshot mode (no expected output) uses Vitest's snapshot system
No comments yet. Be the first to comment!
Use this skill when developing or maintaining browser extension code in the `browser/` directory, including Chrome/Firefox/Edge compatibility, content scripts, background scripts, or i18n updates.
SEO optimization with keyword analysis, readability assessment, technical validation, content quality. Use for search rankings, blog posts, content audits, or encountering keyword density, readability scores, meta tags, schema markup errors.
Python backend development expertise for FastAPI, security patterns, database operations, Upstash integrations, and code quality. Use when: (1) Building REST APIs with FastAPI, (2) Implementing JWT/OAuth2 authentication, (3) Setting up SQLAlchemy/async databases, (4) Integrating Redis/Upstash caching, (5) Refactoring AI-generated Python code (deslopification), (6) Designing API patterns, or (7) Optimizing backend performance.
Drive the full internationalization journey for a project — detect the stack, recommend a library, set up the chosen library, wrap existing strings, and optionally connect a translation platform. Use when the user asks to add or configure i18n, internationalization, localization, multi-language support, or translations — including when they explicitly mention LinguiJS, Lingui, next-intl, "wrap strings", "find hardcoded text", "make my app translatable", or "set up translations". Triggers on g...
PTES-aligned adversarial security audit for backend, frontend, and mobile applications. Produces a CVSS-scored Hacker Report with verified PoCs and phased remediation.