import { describe, expect, it } from 'vitest';
import { montantsFraisService } from './frais-service';

describe('montantsFraisService', () => {
    it("ajoute le pourcentage au montant de la facture (l'exemple du ticket)", () => {
        expect(montantsFraisService(120, 25)).toEqual({ horsFrais: 120, frais: 30, total: 150 });
    });

    it('arrondit au millime comme le serveur, sans erreur de flottant', () => {
        // 87,35 × 0,25 = 21,8375 → 21,838 ; en flottant 109,18749999… donnerait 109,187.
        expect(montantsFraisService(87.35, 25)).toEqual({ horsFrais: 87.35, frais: 21.838, total: 109.188 });
    });

    it('accepte un taux à deux décimales', () => {
        expect(montantsFraisService(100, 12.5)).toEqual({ horsFrais: 100, frais: 12.5, total: 112.5 });
    });

    it("ne propose pas d'aperçu tant que le montant ou le taux manque", () => {
        expect(montantsFraisService(Number.NaN, 25)).toBeNull();
        expect(montantsFraisService(0, 25)).toBeNull();
        expect(montantsFraisService(120, Number.NaN)).toBeNull();
        expect(montantsFraisService(120, 0)).toBeNull();
    });
});
