@mostajs/mjs-unit 0.5.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -64,6 +64,12 @@ test("async", async () => { ok(await maFonction.async()); });
64
64
  ```
65
65
 
66
66
  > Ne pas appeler `run()` dans le fichier : le **runner** s'en charge (les cas enregistrés via `test()` sont exécutés groupés par fichier).
67
+ >
68
+ > **Depuis 0.7.0, le runner relève ce qu'il a exécuté** : par fichier, cas enregistrés contre cas
69
+ > exécutés, et il imprime le compte (`✓ 49/49 test(s) exécutés sur 7 fichier(s)`). Un fichier sans
70
+ > aucun test fait échouer la suite ; un fichier qui appelle `run()` lui-même reste au rapport ; et
71
+ > `node fichier.test.mjs` dont les cas ne sont jamais exécutés sort en code 1, avec un message —
72
+ > l'absence de résultat n'est pas un succès.
67
73
 
68
74
  ## Lancer
69
75
 
package/bin/cli.mjs CHANGED
@@ -15,7 +15,7 @@ import { pathToFileURL } from "node:url";
15
15
  import { writeFileSync } from "node:fs";
16
16
 
17
17
  register(new URL("../loader.mjs", import.meta.url));
18
- const { run, pending } = await import("../dist/index.js");
18
+ const { run, pending, registered, takeRuns } = await import("../dist/index.js");
19
19
 
20
20
  // ── Découpe arguments / options ──────────────────────────────────────────────
21
21
  const argv = process.argv.slice(2);
@@ -32,16 +32,33 @@ const files = argv.filter((a) => !a.startsWith("--"));
32
32
  if (!files.length) { console.error("usage: mjs-unit <fichier-de-test...> [--report[=f]] [--json[=f]]"); process.exit(2); }
33
33
 
34
34
  // ── Exécution, une suite par fichier ─────────────────────────────────────────
35
- let totalFail = 0;
35
+ // Le CLI DEMANDE au module ce qui a été enregistré et ce qui a été exécuté, fichier par fichier : il
36
+ // ne suppose rien. Deux trous fermés en 0.7.0 — un fichier qui appelait run() lui-même s'exécutait
37
+ // hors du rapport, et un fichier sans aucun test disparaissait sans un mot.
38
+ let totalFail = 0, totalDeclares = 0, totalExecutes = 0;
36
39
  const suites = [];
37
40
  for (const f of files) {
38
- await import(pathToFileURL(f).href); // le fichier enregistre ses cas (et peut appeler run() lui-même)
39
- if (pending() > 0) { // sinon, on exécute les cas restants groupés par fichier
40
- const r = await run(f);
41
- totalFail += r.failed;
42
- suites.push({ file: f, results: r.results });
41
+ const avant = registered();
42
+ takeRuns(); // rien d'un fichier précédent ne doit être attribué à celui-ci
43
+ await import(pathToFileURL(f).href); // le fichier enregistre ses cas (et peut appeler run() lui-même)
44
+ if (pending() > 0) await run(f); // on exécute les cas restants, groupés par fichier
45
+ const declares = registered() - avant;
46
+ const executions = takeRuns();
47
+ const results = executions.flatMap((r) => r.results);
48
+ totalFail += executions.reduce((n, r) => n + r.failed, 0);
49
+ if (declares === 0) {
50
+ console.error(`\n✗ ${f} : aucun test enregistré — un fichier de test vide n'est pas un succès.`);
51
+ totalFail++;
52
+ continue;
43
53
  }
54
+ if (results.length !== declares) {
55
+ console.error(`\n✗ ${f} : ${declares} test(s) enregistré(s), ${results.length} exécuté(s).`);
56
+ totalFail++;
57
+ }
58
+ totalDeclares += declares; totalExecutes += results.length;
59
+ suites.push({ file: f, results });
44
60
  }
61
+ console.log(`\n${totalExecutes === totalDeclares ? "✓" : "✗"} ${totalExecutes}/${totalDeclares} test(s) exécutés sur ${suites.length} fichier(s) — compte relevé auprès du module, pas supposé`);
45
62
 
46
63
  // ── Reporters optionnels ─────────────────────────────────────────────────────
47
64
  if (htmlOut !== undefined || jsonOut !== undefined) {
package/dist/index.d.ts CHANGED
@@ -46,6 +46,25 @@ export declare function deepEqual(actual: unknown, expected: unknown, message?:
46
46
  export declare function throwsAsync(fn: () => Promise<unknown>, motif?: RegExp | string, message?: string): Promise<unknown>;
47
47
  /** Assertion synchrone : `fn` doit lever ; `matcher` (RegExp ou sous-chaîne) valide le message. Renvoie l'erreur. */
48
48
  export declare function throws(fn: () => unknown, matcher?: RegExp | string, message?: string): unknown;
49
+ /**
50
+ * `actual` doit MATCHER `regexp` — même signature que `assert.match` de Node.
51
+ *
52
+ * ── POURQUOI CETTE FONCTION EXISTE (0.6.0) ──────────────────────────────────
53
+ * Elle manquait, et son absence coûtait cher lors de la remise en conformité des suites restées
54
+ * sur `node:test` : sans elle, chaque `assert.match(s, /re/)` devait être RÉÉCRIT en
55
+ * `ok(/re/.test(s))` — donc les arguments permutés à la main, sur des centaines de sites. Une
56
+ * permutation ratée produit `ok(s.test(/re/))`, qui lève ou, pire, rend une valeur véridique.
57
+ *
58
+ * ⚠️ L'ordre est celui de Node : **(valeur, motif)**. `throws`/`throwsAsync` prennent l'ordre
59
+ * inverse (motif après la fonction) parce que leur premier argument est le code à exécuter.
60
+ */
61
+ export declare function match(actual: unknown, regexp: RegExp, message?: string): void;
62
+ /** L'inverse de `match` — `actual` ne doit PAS matcher. */
63
+ export declare function doesNotMatch(actual: unknown, regexp: RegExp, message?: string): void;
64
+ /** Inégalité stricte — le pendant d'`equal`. */
65
+ export declare function notEqual(actual: unknown, expected: unknown, message?: string): void;
66
+ /** Inégalité structurelle — le pendant de `deepEqual`. */
67
+ export declare function notDeepEqual(actual: unknown, expected: unknown, message?: string): void;
49
68
  export declare function doesNotThrowAsync(fn: () => Promise<unknown>, message?: string): Promise<void>;
50
69
  /**
51
70
  * API fluide : `expect(x).toBe(y)`, `.toEqual(obj)`, `.toMatch(re)`, `.toThrow()`, …
@@ -178,4 +197,12 @@ export interface RunResult {
178
197
  export declare function run(label?: string): Promise<RunResult>;
179
198
  /** Nombre de tests en attente (diagnostic). */
180
199
  export declare function pending(): number;
200
+ /** Nombre total de cas enregistrés depuis le chargement du module (test et test.skip). */
201
+ export declare function registered(): number;
202
+ /**
203
+ * Relève — et vide — les résultats des `run()` exécutés depuis le dernier relevé. C'est ce qui permet
204
+ * au CLI de porter au rapport un fichier qui a appelé `run()` lui-même : avant 0.7.0, ses cas
205
+ * s'exécutaient mais n'apparaissaient nulle part.
206
+ */
207
+ export declare function takeRuns(): RunResult[];
181
208
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -7,12 +7,34 @@
7
7
  * @license AGPL-3.0-or-later
8
8
  */
9
9
  const _suite = [];
10
+ /** Total des cas ENREGISTRÉS depuis le chargement du module — ce que le CLI compare aux exécutés. */
11
+ let _enregistres = 0;
12
+ /** Les `run()` exécutés et pas encore relevés — un fichier qui appelle `run()` lui-même y laisse ses résultats. */
13
+ const _executions = [];
14
+ // ── L'ABSENCE DE RÉSULTAT N'EST PAS UN SUCCÈS (0.7.0) ────────────────────────────────────────────
15
+ // `test()` enregistre, `run()` exécute. Un fichier lancé par `node fichier.test.mjs` sans `run()`
16
+ // n'exécutait RIEN et sortait en code 0 : un vert mensonger. À la sortie du processus, des cas
17
+ // enregistrés et jamais exécutés sont désormais DITS, et le code de sortie passe à 1.
18
+ let _gardeInstallee = false;
19
+ function _installerGarde() {
20
+ if (_gardeInstallee || typeof process === "undefined" || typeof process.once !== "function")
21
+ return;
22
+ _gardeInstallee = true;
23
+ process.once("beforeExit", () => {
24
+ if (_suite.length === 0)
25
+ return;
26
+ console.error(`\n✗ mjs-unit : ${_suite.length} test(s) enregistré(s) et JAMAIS exécuté(s) — lancez le fichier par \`mjs-unit <fichier>\` (ou appelez run()). Rien n'a été vérifié.`);
27
+ process.exitCode = 1;
28
+ });
29
+ }
10
30
  /** Enregistre un test (exécuté par `run()`). */
11
31
  export function test(name, fn) {
12
32
  _suite.push({ name, fn });
33
+ _enregistres++;
34
+ _installerGarde();
13
35
  }
14
36
  /** Test ignoré (compté à part). */
15
- test.skip = (name, fn) => { _suite.push({ name, fn, skip: true }); };
37
+ test.skip = (name, fn) => { _suite.push({ name, fn, skip: true }); _enregistres++; _installerGarde(); };
16
38
  /** Groupe logique (préfixe les noms). */
17
39
  export function describe(group, body) {
18
40
  const start = _suite.length;
@@ -104,6 +126,40 @@ export function throws(fn, matcher, message) {
104
126
  throw new AssertionError(message ?? `exception « ${msg} » ne contient pas « ${matcher} »`);
105
127
  return err;
106
128
  }
129
+ /**
130
+ * `actual` doit MATCHER `regexp` — même signature que `assert.match` de Node.
131
+ *
132
+ * ── POURQUOI CETTE FONCTION EXISTE (0.6.0) ──────────────────────────────────
133
+ * Elle manquait, et son absence coûtait cher lors de la remise en conformité des suites restées
134
+ * sur `node:test` : sans elle, chaque `assert.match(s, /re/)` devait être RÉÉCRIT en
135
+ * `ok(/re/.test(s))` — donc les arguments permutés à la main, sur des centaines de sites. Une
136
+ * permutation ratée produit `ok(s.test(/re/))`, qui lève ou, pire, rend une valeur véridique.
137
+ *
138
+ * ⚠️ L'ordre est celui de Node : **(valeur, motif)**. `throws`/`throwsAsync` prennent l'ordre
139
+ * inverse (motif après la fonction) parce que leur premier argument est le code à exécuter.
140
+ */
141
+ export function match(actual, regexp, message) {
142
+ const s = typeof actual === "string" ? actual : String(actual);
143
+ if (!regexp.test(s))
144
+ throw new AssertionError(message ?? `« ${s} » ne matche pas ${regexp}`);
145
+ }
146
+ /** L'inverse de `match` — `actual` ne doit PAS matcher. */
147
+ export function doesNotMatch(actual, regexp, message) {
148
+ const s = typeof actual === "string" ? actual : String(actual);
149
+ if (regexp.test(s))
150
+ throw new AssertionError(message ?? `« ${s} » matche ${regexp} alors qu'il ne devrait pas`);
151
+ }
152
+ /** Inégalité stricte — le pendant d'`equal`. */
153
+ export function notEqual(actual, expected, message) {
154
+ if (actual === expected)
155
+ throw new AssertionError(message ?? `attendu différent de ${fmt(expected)}`);
156
+ }
157
+ /** Inégalité structurelle — le pendant de `deepEqual`. */
158
+ export function notDeepEqual(actual, expected, message) {
159
+ if (JSON.stringify(actual) === JSON.stringify(expected)) {
160
+ throw new AssertionError(message ?? `attendu structurellement différent de ${fmt(expected)}`);
161
+ }
162
+ }
107
163
  export async function doesNotThrowAsync(fn, message = "ne devait pas lever") {
108
164
  try {
109
165
  await fn();
@@ -303,8 +359,18 @@ export async function run(label = "") {
303
359
  if (failed > 0 && typeof process !== "undefined")
304
360
  process.exitCode = 1;
305
361
  _suite.length = 0; // réinitialise pour un éventuel run suivant
306
- return { passed, failed, skipped, label, results };
362
+ const r = { passed, failed, skipped, label, results };
363
+ _executions.push(r);
364
+ return r;
307
365
  }
308
366
  /** Nombre de tests en attente (diagnostic). */
309
367
  export function pending() { return _suite.length; }
368
+ /** Nombre total de cas enregistrés depuis le chargement du module (test et test.skip). */
369
+ export function registered() { return _enregistres; }
370
+ /**
371
+ * Relève — et vide — les résultats des `run()` exécutés depuis le dernier relevé. C'est ce qui permet
372
+ * au CLI de porter au rapport un fichier qui a appelé `run()` lui-même : avant 0.7.0, ses cas
373
+ * s'exécutaient mais n'apparaissaient nulle part.
374
+ */
375
+ export function takeRuns() { return _executions.splice(0); }
310
376
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/llms.txt CHANGED
@@ -3,7 +3,7 @@
3
3
  > Micro-framework de test ZÉRO DÉPENDANCE pour l'écosystème @mostajs/* : API test/expect, runner CLI,
4
4
  > et un resolver ESM qui exécute sous Node les dist à imports SANS extension (moduleResolution=bundler).
5
5
 
6
- - Version: 0.3.0 · Licence: AGPL-3.0-or-later · Auteur: Dr Hamid MADANI <drmdh@msn.com>
6
+ - Version: 0.7.0 · Licence: AGPL-3.0-or-later · Auteur: Dr Hamid MADANI <drmdh@msn.com>
7
7
  - Chemin: mostajs/mosta-mjs-unit
8
8
 
9
9
  ## RÔLE
@@ -35,6 +35,8 @@ réécrit `./x` → `./x.js` puis `./x/index.js`.
35
35
  - describe(group, body): void // préfixe les noms
36
36
  - expect(v): { toBe(e), toEqual(e), toBeTruthy(), toBeFalsy(), toContain(sub), toMatch(re|sub), toHaveLength(n), toBeGreaterThanOrEqual(n) }
37
37
  - ok(cond, msg?) · equal(a, e, msg?) · deepEqual(a, e, msg?)
38
+ - match(valeur, motif, msg?) · doesNotMatch(…) · notEqual(a,b,msg?) · notDeepEqual(…) [0.6.0]
39
+ ⚠️ ordre de node:assert — **(valeur, motif)**, l'inverse de throws/throwsAsync.
38
40
  - throwsAsync(fn, motif?, message?) → l'erreur · doesNotThrowAsync(fn, msg?)
39
41
  ⚠️ **RegExp au 2e rang = MOTIF vérifié** (0.5.0) ; **CHAÎNE au 2e rang = MESSAGE**, pas un motif.
40
42
  Asymétrie DÉLIBÉRÉE avec `throws` (où une chaîne EST un motif) : 74 des 91 appels du parc passent
@@ -44,6 +46,8 @@ réécrit `./x` → `./x.js` puis `./x/index.js`.
44
46
  - run(label?): Promise<{passed, failed, skipped, label, results}> // exécute les cas ; exitCode=1 si échec
45
47
  results: { name, status: 'pass'|'fail'|'skip', error?, durationMs }[] // consommé par ./report
46
48
  - pending(): number
49
+ - registered(): number // total des cas enregistrés (test + test.skip) depuis le chargement — 0.7.0
50
+ - takeRuns(): RunResult[] // relève et vide les run() exécutés — le CLI s'en sert pour rapporter un fichier qui a appelé run() — 0.7.0
47
51
 
48
52
  ## API — REPORT (./report, preuve de test, fonctions pures)
49
53
  - renderHtmlReport(report: TestReport): string // document HTML autonome (thème sombre, cartes + tables par suite, durées, échappement anti-injection)
@@ -79,7 +83,11 @@ node node_modules/@mostajs/mjs-unit/bin/cli.mjs test-scripts/*.test.mjs
79
83
  - Importer la racine d'un module @mostajs qui ré-exporte des composants React (ex. @mostajs/audit → AuditPage)
80
84
  charge react/lucide-react. En test, importer par SOUS-CHEMINS (dist/lib/*.js) pour éviter ces peers.
81
85
  - Le runner exécute les cas en attente APRÈS import du fichier. Si le fichier appelle run() lui-même,
82
- le runner ne ré-exécute pas (pending()===0). Choisir l'un ou l'autre.
86
+ le runner ne ré-exécute pas (pending()===0) mais, depuis 0.7.0, PORTE SES RÉSULTATS AU RAPPORT.
87
+ Forme recommandée : ne PAS appeler run() et lancer par le CLI.
88
+ - L'ABSENCE DE RÉSULTAT N'EST PAS UN SUCCÈS (0.7.0) : le CLI relève, par fichier, enregistrés vs
89
+ exécutés et échoue (code 1) sur un fichier sans test ; `node fichier` avec des cas jamais exécutés
90
+ sort en code 1 avec un message. Le compte s'imprime : « ✓ N/N test(s) exécutés sur F fichier(s) ».
83
91
  - Le resolver n'agit que sur les specifiers RELATIFS sans extension ; les packages (bare) passent normalement.
84
92
 
85
93
  ## CONVENTION (écosystème)
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mostajs/mjs-unit",
3
- "version": "0.5.0",
4
- "description": "Micro-framework de test pour l'écosystème @mostajs/* : zéro dépendance, API minimale (test/expect/run), runner CLI (preuves HTML/JSON via --report), reporters réutilisables (./report), et un resolver ESM qui exécute sous Node les dist à imports sans extension (convention moduleResolution=bundler).",
3
+ "version": "0.7.0",
4
+ "description": "Micro-framework de test pour l'\u00e9cosyst\u00e8me @mostajs/* : z\u00e9ro d\u00e9pendance, API minimale (test/expect/run), runner CLI (preuves HTML/JSON via --report), reporters r\u00e9utilisables (./report), et un resolver ESM qui ex\u00e9cute sous Node les dist \u00e0 imports sans extension (convention moduleResolution=bundler).",
5
5
  "author": "Dr Hamid MADANI <drmdh@msn.com>",
6
6
  "license": "AGPL-3.0-or-later",
7
7
  "type": "module",
@@ -42,6 +42,11 @@
42
42
  "README.md",
43
43
  "LICENSE"
44
44
  ],
45
+ "scripts": {
46
+ "build": "tsc -p tsconfig.json",
47
+ "test": "bash test-scripts/run-tests.sh",
48
+ "report": "npm run build && node bin/cli.mjs test-scripts/*.test.mjs --report=test-report.html --title=\"@mostajs/mjs-unit \u2014 auto-preuve\""
49
+ },
45
50
  "devDependencies": {
46
51
  "typescript": "^5.6.0",
47
52
  "@types/node": "^22.0.0"
@@ -59,10 +64,5 @@
59
64
  "nature": "primitif",
60
65
  "reutilisabilite": "universelle",
61
66
  "depend_de": []
62
- },
63
- "scripts": {
64
- "build": "tsc -p tsconfig.json",
65
- "test": "bash test-scripts/run-tests.sh",
66
- "report": "npm run build && node bin/cli.mjs test-scripts/*.test.mjs --report=test-report.html --title=\"@mostajs/mjs-unit — auto-preuve\""
67
67
  }
68
- }
68
+ }