{
  "id": 4576666,
  "title": "The seed-script tax: how I generate realistic test data for Postgres, Playwright and mock APIs",
  "url": "https://urgent.news/2026/08/31/the-seed-script-tax-how-i-generate-realistic-test-data-for-postgres",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-08-31T05:02:59.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/azmiyuksel/the-seed-script-tax-how-i-generate-realistic-test-data-for-postgres-playwright-and-mock-apis-1837"
  },
  "original_language": "en",
  "account": "Two years ago, a demo presentation went awry when the test data displayed placeholder names like \"Test User 1\" and \"Test User 2\" instead of realistic entries. This experience prompted the speaker to develop a tool for generating realistic test data, which they now use on every project. The tool is called fundata.dev, and the speaker emphasizes its importance in ensuring test data is reliable and doesn't introduce bugs. The key points are:\n\n1. The existing test data generation methods are flawed, as they often result in uniform data that fails to uncover bugs and becomes outdated over time.\n2. The desired characteristics of test data include reproducibility, format compatibility, privacy protection, and ease of use across various tools and platforms.\n3. The workflow for creating test data involves seeding a local database, generating fixtures for Playwright and Cypress, providing data to mock APIs, and preparing demos, spreadsheets, and screenshots.\n4. The speaker emphasizes the need for safe values in test data, such as reserved email domains, test credit card numbers, and non-routable IBANs, to avoid accidental real-world interactions.",
  "summary": "Two years ago I gave a demo to a prospective client. The dashboard looked great until I scrolled the customer table and the room got to enjoy asdf asdf , Test User 1 , Test User 2 and a support ticket from aaa@aaa.com . Nobody said anything. They didn't have to. That's the moment I started taking test data seriously, and it turned into a small tool I now use on every project. I'll explain the…",
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}