import { promises as fs } from 'node:fs'; import os from 'node:os'; import path from 'node:path'; import { describe, expect, it } from 'vitest'; import { createPrd, listPrds, loadPrd } from '../src/prd.js'; describe('prd document lifecycle', () => { it('creates and loads PRD documents', async () => { const projectDir = await fs.mkdtemp(path.join(os.tmpdir(), 'prdy-project-')); try { const created = await createPrd({ name: 'User Authentication', projectPath: projectDir, template: 'feature', }); expect(created.title).toBe('User Authentication'); expect(created.status).toBe('draft'); expect(created.id).toMatch(/^user-authentication-\d{8}-\d{6}$/); const loaded = await loadPrd(projectDir); expect(loaded.id).toBe(created.id); expect(loaded.title).toBe(created.title); expect(loaded.sections.length).toBeGreaterThan(0); const listed = await listPrds(projectDir); expect(listed).toHaveLength(1); expect(listed[0]?.id).toBe(created.id); } finally { await fs.rm(projectDir, { recursive: true, force: true }); } }); });