TDD workflow for Meerkat SDK — Jest with @swc/jest, Nx monorepo, SQL AST testing patterns.
48
52%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./.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 charactersb09913f
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.