TDD workflow for Meerkat SDK — Jest with @swc/jest, Nx monorepo, SQL AST testing patterns.
52
57%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./.claude/skills/tdd-workflow/SKILL.mdTDD workflow tailored for the Meerkat SDK (Cube-to-DuckDB query translation).
ALWAYS write tests first, then implement code to make tests pass.
. fields)describe('notEquals filter transformer', () => {
it('generates correct AST for string value', () => {
const result = transformNotEquals('status', ['active']);
expect(generatedSQL).toBe('SELECT * FROM "table" WHERE "status" != \'active\'');
});
it('handles null value', () => {
const result = transformNotEquals('status', [null]);
expect(generatedSQL).toContain('IS NOT NULL');
});
it('handles nested field with . delimiter', () => {
const result = transformNotEquals('table.column', ['value']);
expect(generatedSQL).toContain('"table"."column"');
});
});npx nx test meerkat-core --testPathPattern="not-equals"Write minimal code to make tests pass.
npx nx test meerkat-coreImprove code quality while keeping tests green.
npx nx test meerkat-core --coverageimport { transformFilter } from '../cube-filter-transformer';
describe('equals filter', () => {
it('generates correct SQL for single value', () => {
const sql = transformFilter({
member: 'orders.status',
operator: 'equals',
values: ['active'],
});
expect(sql).toBe('SELECT "col" FROM "table" WHERE "status" = \'active\'');
});
it('generates correct SQL for number array', () => {
const sql = transformFilter({
member: 'orders.amount',
operator: 'equals',
values: [1, 2, 3],
});
expect(sql).toContain('IN (1, 2, 3)');
});
});describe('AST builder', () => {
it('builds correct compare node', () => {
const node = buildCompareNode('col', '=', 'value');
expect(node).toMatchObject({
type: 'COMPARE',
operator: '=',
});
});
});packages/meerkat-core/src/
├── cube-filter-transformer/
│ ├── equals/
│ │ ├── index.ts
│ │ └── __tests__/
│ │ └── equals.spec.ts
│ ├── not-equals/
│ │ ├── index.ts
│ │ └── __tests__/
│ │ └── not-equals.spec.ts
│ └── ...
├── ast-builder/
│ └── __tests__/
└── types/# Single project
npx nx test meerkat-core
# All projects
npx nx run-many --target=test --all
# Watch mode
npx nx test meerkat-core --watch
# Specific test file
npx nx test meerkat-core --testPathPattern="filter"
# With coverage
npx nx test meerkat-core --coverageexpect(internalASTNode._private).toBe('something');expect(generatedSQL).toBe('SELECT "col" FROM "table" WHERE "col" = 1');expect(sql).toBe('SELECT ' + col + ' FROM ' + table);expect(sql).toBe('SELECT "col" FROM "table" WHERE "col" = 1');. delimiters, special characters47baa4e
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.