🎯

dust-test

🎯Skill

from dust-tt/dust

VibeIndex|
What it does

dust-test skill from dust-tt/dust

dust-test

Installation

Install skill:
npx skills add https://github.com/dust-tt/dust --skill dust-test
4
AddedJan 29, 2026

Skill Details

SKILL.md

Step-by-step guide for writing focused, practical tests for Dust codebases following the 80/20 principle.

Overview

# 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

  1. Use factories: Leverage test factories to set up data efficiently
  2. Focus on behavior: Test what the code does, not how it does it

For Front (TypeScript/Next.js)

Setup

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

Structure

```typescript

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

```typescript

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 to verify they pass