Przejdź do treści
Biblioteka skilli
Programowanie · Budowanie i kod

generate-sample-data

/generate-sample-data

Generuje przykładowe dane testowe ze schematów Zod, na potrzeby fixture'ów, mocków API i realistycznych danych deweloperskich.

Licencja
MIT
Ostatnia zmiana repozytorium
01.07.2026

Ocena i bezpieczeństwo

100/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
1
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
0
Przestarzałość

Brak sygnałów. Repozytorium zmienione 01.07.2026, bez odwołań do wycofanych modeli i API.

Licencja

MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.

Co robi i kiedy

Generuje przykładowe dane testowe ze schematów Zod, na potrzeby fixture'ów, mocków API i realistycznych danych deweloperskich.

Oryginalny opis (EN)

Generate mock/sample data from Zod schemas for testing, development, and mocks. Use when creating sample data generators, setting up test fixtures, populating mock APIs, or generating realistic fake data for development.

Jak działa

  1. When to Use
  2. Technology Stack
  3. File Structure
  4. Standard Function Signature
  5. Two Generation Patterns
  6. Enhancing with Faker
  7. Using in Mock APIs (MSW)
  8. Creating Array Samples
  9. CRITICAL: Deterministic Dates with Seeds
  10. Testing Sample Generators
Sekcje z nagłówków SKILL.md, w oryginale · 136 linii, 470 słów
Podgląd SKILL.md
---
name: generate-sample-data
description: Generate mock/sample data from Zod schemas for testing, development, and mocks. Use when creating sample data generators, setting up test fixtures, populating mock APIs, or generating realistic fake data for development.
---

# Skill: Generate Sample Data from Zod Schemas

Generate type-safe, realistic sample data for testing, development, and mock APIs using Zod schema definitions.

## When to Use
- Creating sample data generators for domain models
- Populating MSW mock API handlers
- Generating test fixtures
- Creating Storybook stories
- Seeding development databases
- Building realistic demo data

## Technology Stack

| Package | Purpose |
|---------|---------|
| **@anatine/zod-mock** | Generates mock data from Zod schemas via `generateMock()` |
| **@faker-js/faker** | Provides realistic fake data |
| **Zod** | Source of truth for type definitions and validation |

## File Structure

```
model/
├── Job.ts              # Zod schema + type
├── Job.sample.ts       # Sample generator ← THIS FILE
├── User.ts / User.sample.ts
└── index.ts            # Re-export samples
```

## Standard Function Signature

```typescript
createEntitySample(options?: { seed?: number; overrides?: Partial<Entity> }): Entity
```

## Two Generation Patterns

### Pattern 1: Simple Schemas (Primitives Only)

Use `generateMock` directly:

```typescript
import { generateMock } from '@anatine/zod-mock';
import { EntitySchema } from './Entity';

export function createEntitySample(options?: { seed?: number; overrides?: Partial<Entity> }): Entity {
  const mock = generateMock(EntitySchema, { seed: options?.seed });
  return { ...mock, ...options?.overrides };
}
```

### Pattern 2: Composed Schemas (Nested Objects/Arrays)

Compose child samples:

```typescript
export function createJobSample(options?: { seed?: number; overrides?: Partial<Job> }): Job {
  const mock = generateMock(JobBaseSchema, {
    seed: options?.seed,
    stringMap: {
      name: () => faker.company.name(),
      email: () => faker.internet.email(),
    },
  });
  return { ...mock, ...options?.overrides };
}
```

## Enhancing with Faker

Use Faker for realistic names, emails, phones. Create seeded Faker instances for determinism:

```typescript
import { faker } from '@faker-js/faker';

// Seeded for determinism
if (options?.seed !== undefined) {
  faker.seed(options.seed);
}
```

## Using in Mock APIs (MSW)

Generate 15-20+ items with variety:

```typescript
const jobs = Array.from({ length: 20 }, (_, i) =>
  createJobSample({ seed: i, overrides: { status: i % 3 === 0 ? 'COMPLETED' : 'ACTIVE' } })
);
```

## Creating Array Samples

```typescript
export function createJobSamples(count: number, baseSeed: number = 0): Job[] {
  return Array.from({ length: count }, (_, i) =>
    createJobSample({ seed: baseSeed + i })
  );
}
```

## CRITICAL: Deterministic Dates with Seeds

**NEVER use `Date.now()` or `new Date()` when a seed is provided!**

```typescript
const baseTimestamp = seed !== undefined
  ? new Date(2026, 1, 20, 10, 0, 0).getTime() + (seed * 1000)
  : Date.now();
```

## Testing Sample Generators

Every generator should have tests for:
- Validity (validates against schema)
- Determinism (same seed = same output)
- Overrides work correctly

## Key Principles

1. Types derive from Zod schemas
2. JSON serializable only (ISO 8601 strings, not Date objects)
3. Consistent naming: `create[Entity]Sample` / `create[Entity]Samples`
4. Seed for determinism
5. Overrides for flexibility
6. Export from model index
7. 15-20+ items for lists/tables

## Installation

```bash
npm install -D @anatine/zod-mock @faker-js/faker
```

Wersje

W bazie nie ma innych skilli o nazwie generate-sample-data.

Migawka bazy z 28.10.2026 · wersja paczki 97bbca1b226b (skrót SHA-256 całej paczki)

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 100mocking-apis
    Generuje serwery mock API do testów i rozwoju z realistycznymi danymi odpowiedzi.
  • 100mocking-apis
    Generuje serwery mock API do testów i rozwoju z realistycznymi danymi odpowiedzi.
  • 100data-seeding
    Tworzy lub aktualizuje skrypty seedujące bazę danych dla środowisk deweloperskich i testowych: dane testowe, demo, powrót do znanego stanu i realistyczne dane przykładowe.
  • 100data-seeding
    Tworzy lub aktualizuje skrypty seedujące bazę danych dla środowisk deweloperskich i testowych: dane testowe, demo, powrót do znanego stanu i realistyczne dane przykładowe.
  • 100generating-test-data
    Generuje realistyczne dane testowe z przypadkami brzegowymi i warunkami granicznymi, na fixtures i bazy testowe.
  • 100generating-test-data
    Generuje realistyczne dane testowe z przypadkami brzegowymi i warunkami granicznymi, na fixtures i bazy testowe.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.