DU

Guides the creation of focused, maintainable tests for Dust codebases.

Install

mkdir -p .claude/skills/dust-test && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/2372" && unzip -o skill.zip -d .claude/skills/dust-test && rm skill.zip

Installs to .claude/skills/dust-test

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Step-by-step guide for writing focused, practical tests for Dust codebases following the 80/20 principle.
105 charsno explicit “when” trigger
Intermediate

Key capabilities

  • Identify core functionality and critical edge cases
  • Use test factories for efficient data setup
  • Mock external services while using real database connections
  • Test behavior rather than implementation details
  • Execute tests using npm test with file path arguments

How it works

It applies the 80/20 principle to identify the most valuable test paths, utilizes factories for data setup, and mandates minimal mocking to focus on behavior.

Inputs & outputs

You give it
A source file requiring test coverage
You get back
A focused test file following the 80/20 principle

When to use dust-test

  • Writing unit tests for Dust services
  • Refactoring test suites
  • Setting up test factories

About this skill

Creating automated tests for Dust codebases

Write focused, practical tests for the current file following the 80/20 principle.

Instructions

When writing tests for a file:

  1. Identify the core functionality: Focus on the most important paths and edge cases that provide 80% of the value
  2. Keep it simple: Write straightforward tests that are easy to understand and maintain
  3. Minimal mocking:
    • DO NOT mock the database
    • Only mock external services (APIs, third-party services)
    • Prefer real implementations when possible
  4. Use factories: Leverage test factories to set up data efficiently
  5. Focus on behavior: Test what the code does, not how it does it

For Front and Front-api (TypeScript)

Setup

  • Import factories from front/tests/utils/factories
  • Import utilities from front/tests/utils/utils
  • Use the test database (no mocking)

Structure

import {describe, it, expect} from "vitest";
import {makeTestWorkspace, makeTestUser} from "tests/utils/factories";

describe ("ComponentName or FunctionName", () => {
    it ("should handle the main happy path", async () => {
        // Arrange: Set up using factories
        const {workspace} = createResourceTest ()

        // Act: Execute the code
        const result = await functionUnderTest (workspace);

        // Assert: Verify behavior
        expect (result).toBeDefined ();
    });

    it ("should handle the most common edge case", async () => {
        // Test the second most important scenario
    });
});

What to test (80/20 focus)

  • Main success paths
  • Most common error conditions
  • Critical edge cases (null/undefined, empty arrays, etc.)
  • Permission checks (if applicable)

What to skip (diminishing returns)

  • Exhaustive parameter combinations
  • Unlikely edge cases
  • Internal implementation details
  • UI component rendering (unless critical)

For Connectors/Core

Follow similar principles:

  • Use factories appropriate to the service
  • Focus on integration points
  • Mock external APIs only (Slack, Notion, GitHub, etc.)
  • Test the database interactions directly

Example Pattern

describe ("createConversation", () => {
    it ("creates conversation with valid params", async () => {
        const {workspace, user} = createResourceTest ()
   
        const conversation = await createConversation ({
            workspace,
            userId: user.id,
            title: "Test"
        });
   
        expect (conversation.sId).toBeDefined ();
        expect (conversation.title).toBe ("Test");
    });
   
    it ("fails without required permissions", async () => {
        const {workspace, user} = createResourceTest ()
   
        await expect (
            createConversation ({workspace, userId: user.id})
        ).rejects.toThrow ("Permission denied");
    });
});

Execution Steps

  1. Read the file to understand its purpose and main exports
  2. Check if a test file already exists (e.g., file.test.ts)
  3. Identify the 2-4 most important functions/behaviors to test
  4. Find or create appropriate factories for test data
  5. Write concise, focused tests
  6. Run tests with npm test -- filetotest to verify they pass

When not to use it

  • When testing UI component rendering details
  • When exhaustive parameter combinations are required

Prerequisites

front/tests/utils/factoriesfront/tests/utils/utilsTest database access

Limitations

  • Does not support mocking the database
  • Focuses only on the most important 80% of functionality

How it compares

It prioritizes behavior-driven testing with minimal mocking, whereas generic approaches often rely on exhaustive mocking or UI-state verification.

Compared to similar skills

dust-test side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
dust-test (this skill)14moNo flagsIntermediate
epic-forms16moNo flagsIntermediate
code-review03moNo flagsIntermediate
verify01moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

Search skills

Search the agent skills registry