- format.js : labNotesForDisplay (helper PUR, miroir du Kotlin) — notes DISTINCTES d'une prise E2+T → une ligne par note préfixée du marqueur (« E2 : … » / « T : … ») ; note identique (dialog commun) → dédupliquée ; vides ignorées ; note seule → brute (v1.0 préservé). L'ancien code (.find() première non vide) perdait la note T à l'affichage quand la note E2 existait aussi (conservée en base, juste non montrée). - labs.js : affiche TOUTES les lignes du helper (l'ancienne n'en rendait qu'une). - app.js (seed ?demo=1) : la dernière paire E2/T porte des notes distinctes → fixture du scénario E2E. - E2E : les deux notes préfixées s'affichent sur #labs. - tests/lab-notes.test.js : 5 tests miroirs du Kotlin (145 verts au total). - CHANGELOG [1.7.1] (l'oubli de cette entrée aurait laissé le dialog « Nouveautés » vide — attrapé par l'E2E, leçon #46 miroir), §4 arbre tests, README. WEB_VERSION 1.7.1.
46 lines
1.8 KiB
JavaScript
46 lines
1.8 KiB
JavaScript
/**
|
|
* 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', '')]), []);
|
|
});
|
|
});
|