import { describe, expect, it } from 'vitest';
import { STAGE_LABELS, stageIndex, stageToDb, stageFromDb } from '../lib/stages';
import { TaskStage } from '@prisma/client';

describe('stages helpers', () => {
  it('maps labels to prisma enums and back', () => {
    STAGE_LABELS.forEach((label) => {
      const db = stageToDb(label);
      expect(stageFromDb(db)).toBe(label);
    });
  });

  it('orders stages for gate progression', () => {
    expect(stageIndex('Inbox')).toBe(0);
    expect(stageIndex('In Progress')).toBe(1);
    expect(stageIndex('Code Review & QA')).toBe(2);
    expect(stageIndex('Done')).toBe(3);
    expect(stageToDb('Done')).toBe(TaskStage.Done);
  });
});
