@mostajs/mjs-unit 0.3.1 → 0.4.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/dist/index.d.ts CHANGED
@@ -25,19 +25,82 @@ export declare function throwsAsync(fn: () => Promise<unknown>, message?: string
25
25
  /** Assertion synchrone : `fn` doit lever ; `matcher` (RegExp ou sous-chaîne) valide le message. Renvoie l'erreur. */
26
26
  export declare function throws(fn: () => unknown, matcher?: RegExp | string, message?: string): unknown;
27
27
  export declare function doesNotThrowAsync(fn: () => Promise<unknown>, message?: string): Promise<void>;
28
- /** API fluide : `expect(x).toBe(y)`, `.toEqual(obj)`, `.toBeTruthy()`, `.toContain(s)`, `.toMatch(re)`. */
28
+ /**
29
+ * API fluide : `expect(x).toBe(y)`, `.toEqual(obj)`, `.toMatch(re)`, `.toThrow()`, …
30
+ * et la NÉGATION : `expect(x).not.toBe(y)`.
31
+ *
32
+ * 0.4.0 — enrichi d'après un usage réel (crypto-box, blob-store). Les lacunes constatées
33
+ * poussaient à écrire des contournements du genre `expect(err !== undefined).toBe(true)`, qui
34
+ * « passent » mais ne disent RIEN quand ils échouent : le rapport affiche « attendu true, reçu
35
+ * false » au lieu de nommer ce qui manquait. Un framework de test dont les échecs sont muets
36
+ * pousse à écrire de mauvais tests — donc on l'étend ICI, génériquement (DEVRULES §11.1.bis),
37
+ * plutôt que de bricoler un helper dans chaque module.
38
+ */
29
39
  export declare function expect(actual: unknown): {
40
+ not: {
41
+ toBe: (e: unknown, m?: string) => void;
42
+ toEqual: (e: unknown, m?: string) => void;
43
+ toBeTruthy: (m?: string) => void;
44
+ toBeFalsy: (m?: string) => void;
45
+ /** Valeur définie — remplace le contournement `expect(x !== undefined).toBe(true)`. */
46
+ toBeDefined: (m?: string) => void;
47
+ toBeUndefined: (m?: string) => void;
48
+ toBeNull: (m?: string) => void;
49
+ /** Instance d'une classe — remplace `expect(e instanceof X).toBe(true)`, qui perd le type reçu. */
50
+ toBeInstanceOf: (ctor: new (...a: never[]) => unknown, m?: string) => void;
51
+ toContain: (sub: string, m?: string) => void;
52
+ /** Chaîne matchée par une RegExp (ou incluant une sous-chaîne). */
53
+ toMatch: (re: RegExp | string, m?: string) => void;
54
+ /** Longueur d'une chaîne/tableau. */
55
+ toHaveLength: (n: number, m?: string) => void;
56
+ toBeGreaterThan: (n: number, m?: string) => void;
57
+ toBeGreaterThanOrEqual: (n: number, m?: string) => void;
58
+ toBeLessThan: (n: number, m?: string) => void;
59
+ toBeLessThanOrEqual: (n: number, m?: string) => void;
60
+ /**
61
+ * `expect(fn).toThrow()` — la fonction doit lever. `matcher` valide le message.
62
+ * `expect(fn).not.toThrow()` — elle ne doit PAS lever, et l'erreur est RAPPORTÉE si elle survient
63
+ * (sans quoi le diagnostic est perdu : c'est tout l'intérêt).
64
+ */
65
+ toThrow: (matcher?: RegExp | string, m?: string) => unknown;
66
+ /**
67
+ * Version ASYNCHRONE : `await expect(fn).toReject(/motif/)`.
68
+ * Sans elle, chaque module réinventait un helper `try/catch` — c'est exactement ce que
69
+ * §11.1.bis interdit.
70
+ */
71
+ toReject: (matcher?: RegExp | string, m?: string) => Promise<unknown>;
72
+ };
30
73
  toBe: (e: unknown, m?: string) => void;
31
74
  toEqual: (e: unknown, m?: string) => void;
32
75
  toBeTruthy: (m?: string) => void;
33
76
  toBeFalsy: (m?: string) => void;
77
+ /** Valeur définie — remplace le contournement `expect(x !== undefined).toBe(true)`. */
78
+ toBeDefined: (m?: string) => void;
79
+ toBeUndefined: (m?: string) => void;
80
+ toBeNull: (m?: string) => void;
81
+ /** Instance d'une classe — remplace `expect(e instanceof X).toBe(true)`, qui perd le type reçu. */
82
+ toBeInstanceOf: (ctor: new (...a: never[]) => unknown, m?: string) => void;
34
83
  toContain: (sub: string, m?: string) => void;
35
84
  /** Chaîne matchée par une RegExp (ou incluant une sous-chaîne). */
36
85
  toMatch: (re: RegExp | string, m?: string) => void;
37
86
  /** Longueur d'une chaîne/tableau. */
38
87
  toHaveLength: (n: number, m?: string) => void;
39
- /** Nombre ≥ borne. */
88
+ toBeGreaterThan: (n: number, m?: string) => void;
40
89
  toBeGreaterThanOrEqual: (n: number, m?: string) => void;
90
+ toBeLessThan: (n: number, m?: string) => void;
91
+ toBeLessThanOrEqual: (n: number, m?: string) => void;
92
+ /**
93
+ * `expect(fn).toThrow()` — la fonction doit lever. `matcher` valide le message.
94
+ * `expect(fn).not.toThrow()` — elle ne doit PAS lever, et l'erreur est RAPPORTÉE si elle survient
95
+ * (sans quoi le diagnostic est perdu : c'est tout l'intérêt).
96
+ */
97
+ toThrow: (matcher?: RegExp | string, m?: string) => unknown;
98
+ /**
99
+ * Version ASYNCHRONE : `await expect(fn).toReject(/motif/)`.
100
+ * Sans elle, chaque module réinventait un helper `try/catch` — c'est exactement ce que
101
+ * §11.1.bis interdit.
102
+ */
103
+ toReject: (matcher?: RegExp | string, m?: string) => Promise<unknown>;
41
104
  };
42
105
  /** Issue d'un cas de test (consommé par les reporters, ex. `./report`). */
43
106
  export interface TestResult {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,QAAQ;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE;AAI1F,gDAAgD;AAChD,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAEvE;yBAFe,IAAI;qBAID,MAAM,MAAM,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAG,IAAI;;AAEhE,yCAAyC;AACzC,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,GAAG,IAAI,CAI9D;AAMD,wBAAgB,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,SAAiB,GAAG,IAAI,CAEhE;AACD,wBAAgB,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAEhF;AACD,wBAAgB,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAEpF;AACD,wBAAsB,WAAW,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,SAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAGrG;AACD,qHAAqH;AACrH,wBAAgB,MAAM,CAAC,EAAE,EAAE,MAAM,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAS9F;AACD,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,SAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAElH;AAED,2GAA2G;AAC3G,wBAAgB,MAAM,CAAC,MAAM,EAAE,OAAO;cAExB,OAAO,MAAM,MAAM;iBAChB,OAAO,MAAM,MAAM;qBACf,MAAM;oBACP,MAAM;qBACL,MAAM,MAAM,MAAM;IACnC,mEAAmE;kBACrD,MAAM,GAAG,MAAM,MAAM,MAAM;IACzC,qCAAqC;sBACnB,MAAM,MAAM,MAAM;IACpC,sBAAsB;gCACM,MAAM,MAAM,MAAM;EAEjD;AAGD,2EAA2E;AAC3E,MAAM,WAAW,UAAU;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE;AAClH,MAAM,WAAW,SAAS;IAAG,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,UAAU,EAAE,CAAA;CAAE;AAIpH,iGAAiG;AACjG,wBAAsB,GAAG,CAAC,KAAK,SAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAcxD;AAED,+CAA+C;AAC/C,wBAAgB,OAAO,IAAI,MAAM,CAA0B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -79,22 +79,118 @@ export async function doesNotThrowAsync(fn, message = "ne devait pas lever") {
79
79
  throw new AssertionError(`${message} : ${e?.message}`);
80
80
  }
81
81
  }
82
- /** API fluide : `expect(x).toBe(y)`, `.toEqual(obj)`, `.toBeTruthy()`, `.toContain(s)`, `.toMatch(re)`. */
82
+ /**
83
+ * API fluide : `expect(x).toBe(y)`, `.toEqual(obj)`, `.toMatch(re)`, `.toThrow()`, …
84
+ * et la NÉGATION : `expect(x).not.toBe(y)`.
85
+ *
86
+ * 0.4.0 — enrichi d'après un usage réel (crypto-box, blob-store). Les lacunes constatées
87
+ * poussaient à écrire des contournements du genre `expect(err !== undefined).toBe(true)`, qui
88
+ * « passent » mais ne disent RIEN quand ils échouent : le rapport affiche « attendu true, reçu
89
+ * false » au lieu de nommer ce qui manquait. Un framework de test dont les échecs sont muets
90
+ * pousse à écrire de mauvais tests — donc on l'étend ICI, génériquement (DEVRULES §11.1.bis),
91
+ * plutôt que de bricoler un helper dans chaque module.
92
+ */
83
93
  export function expect(actual) {
94
+ return { ...matchers(actual, false), not: matchers(actual, true) };
95
+ }
96
+ /**
97
+ * Construit les matchers, éventuellement NIÉS. `assert(cond, msgKO, msgNie)` centralise
98
+ * l'inversion : un matcher nié doit échouer quand la condition est vraie — et surtout produire
99
+ * un message qui reste compréhensible dans les deux sens.
100
+ */
101
+ function matchers(actual, negate) {
102
+ const assert = (cond, msgKO, msgNie, m) => {
103
+ if (negate ? cond : !cond)
104
+ throw new AssertionError(m ?? (negate ? msgNie : msgKO));
105
+ };
84
106
  return {
85
- toBe: (e, m) => equal(actual, e, m),
86
- toEqual: (e, m) => deepEqual(actual, e, m),
87
- toBeTruthy: (m) => ok(actual, m),
88
- toBeFalsy: (m) => ok(!actual, m ?? "attendu falsy"),
89
- toContain: (sub, m) => ok(typeof actual === "string" && actual.includes(sub), m ?? `« ${fmt(actual)} » ne contient pas « ${sub} »`),
107
+ toBe: (e, m) => assert(actual === e, `attendu ${fmt(e)}, reçu ${fmt(actual)}`, `ne devait PAS être ${fmt(e)}`, m),
108
+ toEqual: (e, m) => assert(JSON.stringify(actual) === JSON.stringify(e), `attendu ${fmt(e)}, reçu ${fmt(actual)}`, `ne devait PAS être égal à ${fmt(e)}`, m),
109
+ toBeTruthy: (m) => assert(!!actual, `attendu truthy, reçu ${fmt(actual)}`, `attendu falsy, reçu ${fmt(actual)}`, m),
110
+ toBeFalsy: (m) => assert(!actual, `attendu falsy, reçu ${fmt(actual)}`, `attendu truthy, reçu ${fmt(actual)}`, m),
111
+ /** Valeur définie — remplace le contournement `expect(x !== undefined).toBe(true)`. */
112
+ toBeDefined: (m) => assert(actual !== undefined, "attendu défini, reçu undefined", `ne devait PAS être défini (reçu ${fmt(actual)})`, m),
113
+ toBeUndefined: (m) => assert(actual === undefined, `attendu undefined, reçu ${fmt(actual)}`, "ne devait PAS être undefined", m),
114
+ toBeNull: (m) => assert(actual === null, `attendu null, reçu ${fmt(actual)}`, "ne devait PAS être null", m),
115
+ /** Instance d'une classe — remplace `expect(e instanceof X).toBe(true)`, qui perd le type reçu. */
116
+ toBeInstanceOf: (ctor, m) => assert(actual instanceof ctor, `attendu une instance de ${ctor.name}, reçu ${actual?.constructor?.name ?? fmt(actual)}`, `ne devait PAS être une instance de ${ctor.name}`, m),
117
+ toContain: (sub, m) => assert(typeof actual === "string" && actual.includes(sub), `« ${fmt(actual)} » ne contient pas « ${sub} »`, `« ${fmt(actual)} » ne devait PAS contenir « ${sub} »`, m),
90
118
  /** Chaîne matchée par une RegExp (ou incluant une sous-chaîne). */
91
- toMatch: (re, m) => ok(typeof actual === "string" && (re instanceof RegExp ? re.test(actual) : actual.includes(re)), m ?? `« ${fmt(actual)} » ne matche pas ${re}`),
119
+ toMatch: (re, m) => assert(typeof actual === "string" && (re instanceof RegExp ? re.test(actual) : actual.includes(re)), `« ${fmt(actual)} » ne matche pas ${re}`, `« ${fmt(actual)} » ne devait PAS matcher ${re}`, m),
92
120
  /** Longueur d'une chaîne/tableau. */
93
- toHaveLength: (n, m) => ok(!!actual && typeof actual.length === "number" && actual.length === n, m ?? `longueur attendue ${n}, reçu ${fmt(actual?.length)}`),
94
- /** Nombre ≥ borne. */
95
- toBeGreaterThanOrEqual: (n, m) => ok(typeof actual === "number" && actual >= n, m ?? `attendu ≥ ${n}, reçu ${fmt(actual)}`),
121
+ toHaveLength: (n, m) => {
122
+ const len = actual?.length;
123
+ assert(typeof len === "number" && len === n, `longueur attendue ${n}, reçu ${fmt(len)}`, `la longueur ne devait PAS être ${n}`, m);
124
+ },
125
+ toBeGreaterThan: (n, m) => assert(typeof actual === "number" && actual > n, `attendu > ${n}, reçu ${fmt(actual)}`, `ne devait PAS être > ${n}`, m),
126
+ toBeGreaterThanOrEqual: (n, m) => assert(typeof actual === "number" && actual >= n, `attendu ≥ ${n}, reçu ${fmt(actual)}`, `ne devait PAS être ≥ ${n}`, m),
127
+ toBeLessThan: (n, m) => assert(typeof actual === "number" && actual < n, `attendu < ${n}, reçu ${fmt(actual)}`, `ne devait PAS être < ${n}`, m),
128
+ toBeLessThanOrEqual: (n, m) => assert(typeof actual === "number" && actual <= n, `attendu ≤ ${n}, reçu ${fmt(actual)}`, `ne devait PAS être ≤ ${n}`, m),
129
+ /**
130
+ * `expect(fn).toThrow()` — la fonction doit lever. `matcher` valide le message.
131
+ * `expect(fn).not.toThrow()` — elle ne doit PAS lever, et l'erreur est RAPPORTÉE si elle survient
132
+ * (sans quoi le diagnostic est perdu : c'est tout l'intérêt).
133
+ */
134
+ toThrow: (matcher, m) => {
135
+ if (typeof actual !== "function")
136
+ throw new AssertionError("toThrow attend une fonction");
137
+ let err;
138
+ let threw = false;
139
+ try {
140
+ actual();
141
+ }
142
+ catch (e) {
143
+ threw = true;
144
+ err = e;
145
+ }
146
+ if (negate) {
147
+ if (threw)
148
+ throw new AssertionError(m ?? `ne devait PAS lever, mais a levé : ${msgOf(err)}`);
149
+ return undefined;
150
+ }
151
+ if (!threw)
152
+ throw new AssertionError(m ?? "devait lever une exception");
153
+ matchMessage(err, matcher, m);
154
+ return err;
155
+ },
156
+ /**
157
+ * Version ASYNCHRONE : `await expect(fn).toReject(/motif/)`.
158
+ * Sans elle, chaque module réinventait un helper `try/catch` — c'est exactement ce que
159
+ * §11.1.bis interdit.
160
+ */
161
+ toReject: async (matcher, m) => {
162
+ if (typeof actual !== "function")
163
+ throw new AssertionError("toReject attend une fonction");
164
+ let err;
165
+ let threw = false;
166
+ try {
167
+ await actual();
168
+ }
169
+ catch (e) {
170
+ threw = true;
171
+ err = e;
172
+ }
173
+ if (negate) {
174
+ if (threw)
175
+ throw new AssertionError(m ?? `ne devait PAS rejeter, mais a rejeté : ${msgOf(err)}`);
176
+ return undefined;
177
+ }
178
+ if (!threw)
179
+ throw new AssertionError(m ?? "devait rejeter");
180
+ matchMessage(err, matcher, m);
181
+ return err;
182
+ },
96
183
  };
97
184
  }
185
+ const msgOf = (err) => err?.message ?? String(err);
186
+ function matchMessage(err, matcher, m) {
187
+ if (matcher === undefined)
188
+ return;
189
+ const msg = msgOf(err);
190
+ const okMatch = matcher instanceof RegExp ? matcher.test(msg) : msg.includes(matcher);
191
+ if (!okMatch)
192
+ throw new AssertionError(m ?? `exception « ${msg} » ne matche pas ${matcher}`);
193
+ }
98
194
  const _now = () => (typeof performance !== "undefined" ? performance.now() : Date.now());
99
195
  /** Exécute les tests enregistrés, affiche le rapport, positionne `process.exitCode` si échec. */
100
196
  export async function run(label = "") {
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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mostajs/mjs-unit",
3
- "version": "0.3.1",
3
+ "version": "0.4.0",
4
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).",
5
5
  "author": "Dr Hamid MADANI <drmdh@msn.com>",
6
6
  "license": "AGPL-3.0-or-later",
@@ -59,4 +59,4 @@
59
59
  "zero-dependency",
60
60
  "mostajs"
61
61
  ]
62
- }
62
+ }