import { prochainEtat, progression } from './checklist';

describe('checklist (écran 6 de la maquette R4)', () => {
  it('progression : DONE et NA comptent comme traités (règle de la garde R2)', () => {
    const { faits, total, pct } = progression([
      { state: 'DONE' },
      { state: 'NA' },
      { state: 'PENDING' },
      { state: 'PENDING' },
    ]);
    expect(faits).toBe(2);
    expect(total).toBe(4);
    expect(pct).toBe(0.5);
  });

  it('grille vide : pas de division par zéro', () => {
    expect(progression([]).pct).toBe(0);
  });

  it('appui simple : PENDING ⇄ DONE ; depuis NA on revient à DONE', () => {
    expect(prochainEtat('PENDING')).toBe('DONE');
    expect(prochainEtat('DONE')).toBe('PENDING');
    expect(prochainEtat('NA')).toBe('DONE');
  });
});
