/** * Tests des NOTES d'un groupe de labs (v1.7.1 — miroir de `LabsGroupingTest` * Android, [labNotesForDisplay]) — fix du bug « une seule note sur deux * s'affiche » : quand E2 et T portent des notes DISTINCTES, les deux doivent * apparaître (préfixées du marqueur) ; la note identique (dialog commun) ne * s'affiche qu'une fois ; les notes vides/malformées sont ignorées. */ import { test, describe } from 'node:test'; import assert from 'node:assert/strict'; import { labNotesForDisplay } from '../js/util/format.js'; const lab = (marker, notes) => ({ marker, notes }); describe('labNotesForDisplay (miroir Android v1.7.1)', () => { test('les notes distinctes de E2 et T sont TOUTES affichées, préfixées', () => { const group = [ lab('E2', 'Analyse faite suite à des maux de tête.'), lab('T', 'DHT : 12 ng/dL'), ]; assert.deepEqual(labNotesForDisplay(group), [ 'E2 : Analyse faite suite à des maux de tête.', 'T : DHT : 12 ng/dL', ]); }); test('la note identique sur les deux entrées n\'est affichée qu\'une fois', () => { const group = [lab('E2', 'Prise à jeun'), lab('T', 'Prise à jeun')]; assert.deepEqual(labNotesForDisplay(group), ['Prise à jeun']); }); test('une seule note reste brute (comportement historique préservé)', () => { const group = [lab('E2', 'Seule note'), lab('T', null)]; assert.deepEqual(labNotesForDisplay(group), ['Seule note']); }); test('notes vides/blanches ignorées, ordre du groupe préservé', () => { const group = [lab('E2', ' '), lab('T', 'note T'), lab('PRL', 'note PRL')]; assert.deepEqual(labNotesForDisplay(group), ['T : note T', 'PRL : note PRL']); }); test('aucune note → aucune ligne', () => { assert.deepEqual(labNotesForDisplay([lab('E2', null), lab('T', '')]), []); }); });