@pasosdejesus/m 0.25.0 → 0.27.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/CHANGELOG.md +85 -0
- package/dist/base-model/baseline.generated.d.ts +48 -0
- package/dist/base-model/baseline.generated.d.ts.map +1 -0
- package/dist/base-model/baseline.generated.js +930 -0
- package/dist/base-model/baseline.generated.js.map +1 -0
- package/dist/base-model/check.d.ts +6 -0
- package/dist/base-model/check.d.ts.map +1 -0
- package/dist/base-model/check.js +195 -0
- package/dist/base-model/check.js.map +1 -0
- package/dist/base-model/forward/baseline_1_0_0.d.ts +3 -0
- package/dist/base-model/forward/baseline_1_0_0.d.ts.map +1 -0
- package/dist/base-model/forward/baseline_1_0_0.js +23 -0
- package/dist/base-model/forward/baseline_1_0_0.js.map +1 -0
- package/dist/base-model/forward/index.d.ts +28 -0
- package/dist/base-model/forward/index.d.ts.map +1 -0
- package/dist/base-model/forward/index.js +126 -0
- package/dist/base-model/forward/index.js.map +1 -0
- package/dist/base-model/forward/index.test.d.ts +2 -0
- package/dist/base-model/forward/index.test.d.ts.map +1 -0
- package/dist/base-model/forward/index.test.js +65 -0
- package/dist/base-model/forward/index.test.js.map +1 -0
- package/dist/base-model/forward/policy.d.ts +16 -0
- package/dist/base-model/forward/policy.d.ts.map +1 -0
- package/dist/base-model/forward/policy.js +37 -0
- package/dist/base-model/forward/policy.js.map +1 -0
- package/dist/base-model/forward/policy.test.d.ts +2 -0
- package/dist/base-model/forward/policy.test.d.ts.map +1 -0
- package/dist/base-model/forward/policy.test.js +40 -0
- package/dist/base-model/forward/policy.test.js.map +1 -0
- package/dist/base-model/forward/types.d.ts +21 -0
- package/dist/base-model/forward/types.d.ts.map +1 -0
- package/dist/base-model/forward/types.js +2 -0
- package/dist/base-model/forward/types.js.map +1 -0
- package/dist/base-model/generate.d.ts +42 -0
- package/dist/base-model/generate.d.ts.map +1 -0
- package/dist/base-model/generate.js +241 -0
- package/dist/base-model/generate.js.map +1 -0
- package/dist/base-model/guidelines.d.ts +13 -0
- package/dist/base-model/guidelines.d.ts.map +1 -0
- package/dist/base-model/guidelines.js +61 -0
- package/dist/base-model/guidelines.js.map +1 -0
- package/dist/base-model/index.d.ts +24 -0
- package/dist/base-model/index.d.ts.map +1 -0
- package/dist/base-model/index.js +29 -0
- package/dist/base-model/index.js.map +1 -0
- package/dist/base-model/parse-structure.d.ts +4 -0
- package/dist/base-model/parse-structure.d.ts.map +1 -0
- package/dist/base-model/parse-structure.js +170 -0
- package/dist/base-model/parse-structure.js.map +1 -0
- package/dist/base-model/queries.d.ts +34 -0
- package/dist/base-model/queries.d.ts.map +1 -0
- package/dist/base-model/queries.js +118 -0
- package/dist/base-model/queries.js.map +1 -0
- package/dist/base-model/references/learn-tg.d.ts +21 -0
- package/dist/base-model/references/learn-tg.d.ts.map +1 -0
- package/dist/base-model/references/learn-tg.js +65 -0
- package/dist/base-model/references/learn-tg.js.map +1 -0
- package/dist/base-model/references/msip.d.ts +29 -0
- package/dist/base-model/references/msip.d.ts.map +1 -0
- package/dist/base-model/references/msip.js +33 -0
- package/dist/base-model/references/msip.js.map +1 -0
- package/dist/base-model/types.d.ts +207 -0
- package/dist/base-model/types.d.ts.map +1 -0
- package/dist/base-model/types.js +10 -0
- package/dist/base-model/types.js.map +1 -0
- package/dist/base-model/version.d.ts +19 -0
- package/dist/base-model/version.d.ts.map +1 -0
- package/dist/base-model/version.js +26 -0
- package/dist/base-model/version.js.map +1 -0
- package/dist/base-model/wallet-link.d.ts +69 -0
- package/dist/base-model/wallet-link.d.ts.map +1 -0
- package/dist/base-model/wallet-link.js +220 -0
- package/dist/base-model/wallet-link.js.map +1 -0
- package/dist/base-model/wallet-link.test.d.ts +2 -0
- package/dist/base-model/wallet-link.test.d.ts.map +1 -0
- package/dist/base-model/wallet-link.test.js +147 -0
- package/dist/base-model/wallet-link.test.js.map +1 -0
- package/dist/e2e/full-wallet.d.ts +19 -0
- package/dist/e2e/full-wallet.d.ts.map +1 -1
- package/dist/e2e/full-wallet.js +12 -4
- package/dist/e2e/full-wallet.js.map +1 -1
- package/dist/e2e/full-wallet.test.js +26 -0
- package/dist/e2e/full-wallet.test.js.map +1 -1
- package/dist/e2e/in-app-wallet.d.ts +23 -0
- package/dist/e2e/in-app-wallet.d.ts.map +1 -0
- package/dist/e2e/in-app-wallet.js +40 -0
- package/dist/e2e/in-app-wallet.js.map +1 -0
- package/dist/e2e/in-app-wallet.test.d.ts +2 -0
- package/dist/e2e/in-app-wallet.test.d.ts.map +1 -0
- package/dist/e2e/in-app-wallet.test.js +52 -0
- package/dist/e2e/in-app-wallet.test.js.map +1 -0
- package/dist/e2e/index.d.ts +5 -1
- package/dist/e2e/index.d.ts.map +1 -1
- package/dist/e2e/index.js +2 -0
- package/dist/e2e/index.js.map +1 -1
- package/dist/e2e/siwe-optional.test.d.ts +2 -0
- package/dist/e2e/siwe-optional.test.d.ts.map +1 -0
- package/dist/e2e/siwe-optional.test.js +13 -0
- package/dist/e2e/siwe-optional.test.js.map +1 -0
- package/dist/e2e/siwe.d.ts.map +1 -1
- package/dist/e2e/siwe.js +1 -3
- package/dist/e2e/siwe.js.map +1 -1
- package/dist/e2e/warmup.d.ts +38 -0
- package/dist/e2e/warmup.d.ts.map +1 -0
- package/dist/e2e/warmup.js +84 -0
- package/dist/e2e/warmup.js.map +1 -0
- package/dist/e2e/warmup.test.d.ts +2 -0
- package/dist/e2e/warmup.test.d.ts.map +1 -0
- package/dist/e2e/warmup.test.js +67 -0
- package/dist/e2e/warmup.test.js.map +1 -0
- package/dist/i18n/locales/cli.d.ts.map +1 -1
- package/dist/i18n/locales/cli.js +10 -0
- package/dist/i18n/locales/cli.js.map +1 -1
- package/dist/m.js +14 -1
- package/dist/m.js.map +1 -1
- package/dist/tasks/base-model.d.ts +5 -0
- package/dist/tasks/base-model.d.ts.map +1 -0
- package/dist/tasks/base-model.js +310 -0
- package/dist/tasks/base-model.js.map +1 -0
- package/dist/tasks/db.d.ts.map +1 -1
- package/dist/tasks/db.js +27 -0
- package/dist/tasks/db.js.map +1 -1
- package/dist/tasks/warmup.d.ts +4 -0
- package/dist/tasks/warmup.d.ts.map +1 -0
- package/dist/tasks/warmup.js +67 -0
- package/dist/tasks/warmup.js.map +1 -0
- package/dist/tasks/warmup.test.d.ts +2 -0
- package/dist/tasks/warmup.test.d.ts.map +1 -0
- package/dist/tasks/warmup.test.js +40 -0
- package/dist/tasks/warmup.test.js.map +1 -0
- package/dist/templates/apps/nextjs/package.json.hbs +1 -1
- package/dist/test-utils/console.d.ts +37 -0
- package/dist/test-utils/console.d.ts.map +1 -0
- package/dist/test-utils/console.js +65 -0
- package/dist/test-utils/console.js.map +1 -0
- package/dist/test-utils/console.test.d.ts +2 -0
- package/dist/test-utils/console.test.d.ts.map +1 -0
- package/dist/test-utils/console.test.js +70 -0
- package/dist/test-utils/console.test.js.map +1 -0
- package/dist/test-utils/index.d.ts +1 -0
- package/dist/test-utils/index.d.ts.map +1 -1
- package/dist/test-utils/index.js +1 -0
- package/dist/test-utils/index.js.map +1 -1
- package/dist/test-utils/kysely-mocks.d.ts +244 -103
- package/dist/test-utils/kysely-mocks.d.ts.map +1 -1
- package/dist/test-utils/kysely-mocks.js +161 -18
- package/dist/test-utils/kysely-mocks.js.map +1 -1
- package/dist/test-utils/kysely-mocks.test.d.ts +2 -0
- package/dist/test-utils/kysely-mocks.test.d.ts.map +1 -0
- package/dist/test-utils/kysely-mocks.test.js +110 -0
- package/dist/test-utils/kysely-mocks.test.js.map +1 -0
- package/package.json +5 -1
- package/src/e2e/README.md +42 -0
- package/src/tasks/README.md +1 -0
- package/src/test-utils/README.md +28 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { afterEach, describe, expect, it } from 'vitest';
|
|
2
|
+
import * as fs from 'fs';
|
|
3
|
+
import * as os from 'os';
|
|
4
|
+
import * as path from 'path';
|
|
5
|
+
import { resolveWarmupPaths } from './warmup.js';
|
|
6
|
+
// P5 (m/REQ/49): the route list lives in the consumer.
|
|
7
|
+
let dirs = [];
|
|
8
|
+
function tmpProject() {
|
|
9
|
+
const dir = fs.mkdtempSync(path.join(os.tmpdir(), 'm-warmup-'));
|
|
10
|
+
dirs.push(dir);
|
|
11
|
+
return dir;
|
|
12
|
+
}
|
|
13
|
+
afterEach(() => {
|
|
14
|
+
for (const dir of dirs)
|
|
15
|
+
fs.rmSync(dir, { recursive: true, force: true });
|
|
16
|
+
dirs = [];
|
|
17
|
+
});
|
|
18
|
+
describe('resolveWarmupPaths (P5)', () => {
|
|
19
|
+
it('reads e2e/warmup-paths.json (array form)', () => {
|
|
20
|
+
const dir = tmpProject();
|
|
21
|
+
fs.mkdirSync(path.join(dir, 'e2e'), { recursive: true });
|
|
22
|
+
fs.writeFileSync(path.join(dir, 'e2e', 'warmup-paths.json'), JSON.stringify(['/en', '/api/a']));
|
|
23
|
+
expect(resolveWarmupPaths(dir)).toEqual(['/en', '/api/a']);
|
|
24
|
+
});
|
|
25
|
+
it('reads e2e/warmup-paths.json (object form) and drops non-strings', () => {
|
|
26
|
+
const dir = tmpProject();
|
|
27
|
+
fs.mkdirSync(path.join(dir, 'e2e'), { recursive: true });
|
|
28
|
+
fs.writeFileSync(path.join(dir, 'e2e', 'warmup-paths.json'), JSON.stringify({ paths: ['/en', 1, '/api/a'] }));
|
|
29
|
+
expect(resolveWarmupPaths(dir)).toEqual(['/en', '/api/a']);
|
|
30
|
+
});
|
|
31
|
+
it('falls back to package.json:e2e.warmupPaths', () => {
|
|
32
|
+
const dir = tmpProject();
|
|
33
|
+
fs.writeFileSync(path.join(dir, 'package.json'), JSON.stringify({ e2e: { warmupPaths: ['/x'] } }));
|
|
34
|
+
expect(resolveWarmupPaths(dir)).toEqual(['/x']);
|
|
35
|
+
});
|
|
36
|
+
it('returns null when nothing is configured', () => {
|
|
37
|
+
expect(resolveWarmupPaths(tmpProject())).toBeNull();
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
//# sourceMappingURL=warmup.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"warmup.test.js","sourceRoot":"","sources":["../../src/tasks/warmup.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Console noise silencing for tests
|
|
3
|
+
*
|
|
4
|
+
* "Y todo lo que hagáis, hacedlo de corazón, como para el Señor y no para los hombres" (Colosenses 3:23)
|
|
5
|
+
*
|
|
6
|
+
* P5/U2 of `m/REQ/49`: many consumers wrap `console` to hide expected noise
|
|
7
|
+
* (retry attempts, aborted navigations, warnings from a mocked dependency).
|
|
8
|
+
* This graduates the pattern from learn.tg's `vitest.setup.ts` (`NOISY_PATTERNS`)
|
|
9
|
+
* so consumers can drop their local wrapper.
|
|
10
|
+
*/
|
|
11
|
+
/** Console methods wrapped by `silenceConsole`. */
|
|
12
|
+
export type SilencedConsoleMethod = 'log' | 'warn' | 'error' | 'info' | 'debug';
|
|
13
|
+
export interface SilenceConsoleOpts {
|
|
14
|
+
/** Methods to wrap (default `log`, `warn`, `error`). */
|
|
15
|
+
methods?: SilencedConsoleMethod[];
|
|
16
|
+
/** Console object to wrap (default `globalThis.console`; injectable for tests). */
|
|
17
|
+
console?: Console;
|
|
18
|
+
}
|
|
19
|
+
export interface SilenceConsoleHandle {
|
|
20
|
+
/** Restores the original methods. */
|
|
21
|
+
restore: () => void;
|
|
22
|
+
/** The argument lists that were suppressed (useful for assertions). */
|
|
23
|
+
suppressed: unknown[][];
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Wraps the console methods so a call whose args contain any of `patterns`
|
|
27
|
+
* (substring match on string args) is suppressed; the rest passes through to the
|
|
28
|
+
* original method.
|
|
29
|
+
*
|
|
30
|
+
* ```typescript
|
|
31
|
+
* const silence = silenceConsole(['[retry]', 'AbortError'])
|
|
32
|
+
* // ... exercise the code ...
|
|
33
|
+
* silence.restore()
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export declare function silenceConsole(patterns: string[], opts?: SilenceConsoleOpts): SilenceConsoleHandle;
|
|
37
|
+
//# sourceMappingURL=console.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../src/test-utils/console.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,mDAAmD;AACnD,MAAM,MAAM,qBAAqB,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAA;AAE/E,MAAM,WAAW,kBAAkB;IACjC,wDAAwD;IACxD,OAAO,CAAC,EAAE,qBAAqB,EAAE,CAAA;IACjC,mFAAmF;IACnF,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,qCAAqC;IACrC,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,uEAAuE;IACvE,UAAU,EAAE,OAAO,EAAE,EAAE,CAAA;CACxB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,GAAE,kBAAuB,GAAG,oBAAoB,CA0CtG"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Console noise silencing for tests
|
|
3
|
+
*
|
|
4
|
+
* "Y todo lo que hagáis, hacedlo de corazón, como para el Señor y no para los hombres" (Colosenses 3:23)
|
|
5
|
+
*
|
|
6
|
+
* P5/U2 of `m/REQ/49`: many consumers wrap `console` to hide expected noise
|
|
7
|
+
* (retry attempts, aborted navigations, warnings from a mocked dependency).
|
|
8
|
+
* This graduates the pattern from learn.tg's `vitest.setup.ts` (`NOISY_PATTERNS`)
|
|
9
|
+
* so consumers can drop their local wrapper.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Wraps the console methods so a call whose args contain any of `patterns`
|
|
13
|
+
* (substring match on string args) is suppressed; the rest passes through to the
|
|
14
|
+
* original method.
|
|
15
|
+
*
|
|
16
|
+
* ```typescript
|
|
17
|
+
* const silence = silenceConsole(['[retry]', 'AbortError'])
|
|
18
|
+
* // ... exercise the code ...
|
|
19
|
+
* silence.restore()
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export function silenceConsole(patterns, opts = {}) {
|
|
23
|
+
const methods = opts.methods ?? ['log', 'warn', 'error'];
|
|
24
|
+
const target = (opts.console ?? globalThis.console);
|
|
25
|
+
const originals = new Map();
|
|
26
|
+
const suppressed = [];
|
|
27
|
+
const asText = (arg) => {
|
|
28
|
+
if (typeof arg === 'string')
|
|
29
|
+
return arg;
|
|
30
|
+
if (arg instanceof Error)
|
|
31
|
+
return arg.message;
|
|
32
|
+
// Un objeto sin `Symbol.toPrimitive` (p. ej. un namespace de módulo) lanza al
|
|
33
|
+
// convertirlo: no debe tumbar el log, solo no coincide con ningún patrón.
|
|
34
|
+
try {
|
|
35
|
+
return String(arg);
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
return '';
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
const isNoisy = (args) => args.some((arg) => patterns.some((pattern) => asText(arg).includes(pattern)));
|
|
42
|
+
for (const method of methods) {
|
|
43
|
+
const original = target[method];
|
|
44
|
+
if (typeof original !== 'function')
|
|
45
|
+
continue;
|
|
46
|
+
originals.set(method, original);
|
|
47
|
+
target[method] = (...args) => {
|
|
48
|
+
if (isNoisy(args)) {
|
|
49
|
+
suppressed.push(args);
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
original.apply(target, args);
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
return {
|
|
56
|
+
suppressed,
|
|
57
|
+
restore() {
|
|
58
|
+
for (const [method, original] of originals) {
|
|
59
|
+
target[method] = original;
|
|
60
|
+
}
|
|
61
|
+
originals.clear();
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=console.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"console.js","sourceRoot":"","sources":["../../src/test-utils/console.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAmBH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAAC,QAAkB,EAAE,OAA2B,EAAE;IAC9E,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IACxD,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,CAA4D,CAAA;IAC9G,MAAM,SAAS,GAAG,IAAI,GAAG,EAAuD,CAAA;IAChF,MAAM,UAAU,GAAgB,EAAE,CAAA;IAElC,MAAM,MAAM,GAAG,CAAC,GAAY,EAAU,EAAE;QACtC,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO,GAAG,CAAA;QACvC,IAAI,GAAG,YAAY,KAAK;YAAE,OAAO,GAAG,CAAC,OAAO,CAAA;QAC5C,8EAA8E;QAC9E,0EAA0E;QAC1E,IAAI,CAAC;YACH,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;QACpB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAA;QACX,CAAC;IACH,CAAC,CAAA;IACD,MAAM,OAAO,GAAG,CAAC,IAAe,EAAW,EAAE,CAC3C,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAE/E,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;QAC/B,IAAI,OAAO,QAAQ,KAAK,UAAU;YAAE,SAAQ;QAC5C,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAC/B,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE;YACtC,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACrB,OAAM;YACR,CAAC;YACD,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAC9B,CAAC,CAAA;IACH,CAAC;IAED,OAAO;QACL,UAAU;QACV,OAAO;YACL,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,SAAS,EAAE,CAAC;gBAC3C,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAA;YAC3B,CAAC;YACD,SAAS,CAAC,KAAK,EAAE,CAAA;QACnB,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"console.test.d.ts","sourceRoot":"","sources":["../../src/test-utils/console.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { afterEach, describe, expect, it, vi } from 'vitest';
|
|
2
|
+
import { silenceConsole } from './console.js';
|
|
3
|
+
// U2 (m/REQ/49): silencing expected console noise, graduated from learn.tg's
|
|
4
|
+
// `NOISY_PATTERNS` wrapper.
|
|
5
|
+
function fakeConsole() {
|
|
6
|
+
const calls = {
|
|
7
|
+
log: [], warn: [], error: [], info: [], debug: [],
|
|
8
|
+
};
|
|
9
|
+
const target = {
|
|
10
|
+
log: (...args) => calls.log.push(args),
|
|
11
|
+
warn: (...args) => calls.warn.push(args),
|
|
12
|
+
error: (...args) => calls.error.push(args),
|
|
13
|
+
info: (...args) => calls.info.push(args),
|
|
14
|
+
debug: (...args) => calls.debug.push(args),
|
|
15
|
+
};
|
|
16
|
+
return { target, calls };
|
|
17
|
+
}
|
|
18
|
+
afterEach(() => vi.restoreAllMocks());
|
|
19
|
+
describe('silenceConsole (U2)', () => {
|
|
20
|
+
it('suppresses a suppressed log and lets the rest through', () => {
|
|
21
|
+
const { target, calls } = fakeConsole();
|
|
22
|
+
const handle = silenceConsole(['[retry]'], { console: target });
|
|
23
|
+
target.log('[retry] intento 1 falló');
|
|
24
|
+
target.log('resultado útil');
|
|
25
|
+
expect(calls.log).toEqual([['resultado útil']]);
|
|
26
|
+
expect(handle.suppressed).toEqual([['[retry] intento 1 falló']]);
|
|
27
|
+
handle.restore();
|
|
28
|
+
});
|
|
29
|
+
it('matches when any argument contains the pattern', () => {
|
|
30
|
+
const { target, calls } = fakeConsole();
|
|
31
|
+
const handle = silenceConsole(['AbortError'], { console: target });
|
|
32
|
+
target.warn('navegación cancelada', new Error('AbortError: aborted'));
|
|
33
|
+
expect(calls.warn).toHaveLength(0);
|
|
34
|
+
handle.restore();
|
|
35
|
+
});
|
|
36
|
+
it('wraps log, warn and error by default', () => {
|
|
37
|
+
const { target, calls } = fakeConsole();
|
|
38
|
+
const handle = silenceConsole(['ruido'], { console: target });
|
|
39
|
+
target.log('ruido A');
|
|
40
|
+
target.warn('ruido B');
|
|
41
|
+
target.error('ruido C');
|
|
42
|
+
target.info('ruido D'); // not wrapped by default
|
|
43
|
+
expect(calls.log).toHaveLength(0);
|
|
44
|
+
expect(calls.warn).toHaveLength(0);
|
|
45
|
+
expect(calls.error).toHaveLength(0);
|
|
46
|
+
expect(calls.info).toHaveLength(1);
|
|
47
|
+
handle.restore();
|
|
48
|
+
});
|
|
49
|
+
it('restores the original methods', () => {
|
|
50
|
+
const { target, calls } = fakeConsole();
|
|
51
|
+
const handle = silenceConsole(['ruido'], { console: target });
|
|
52
|
+
handle.restore();
|
|
53
|
+
target.log('ruido A');
|
|
54
|
+
expect(calls.log).toHaveLength(1);
|
|
55
|
+
});
|
|
56
|
+
// Defecto reportado por learn.tg: un namespace de módulo (objeto sin
|
|
57
|
+
// Symbol.toPrimitive) revienta con `String()`; no debe tumbar el log.
|
|
58
|
+
it('no revienta con objetos que no se pueden convertir a primitivo', () => {
|
|
59
|
+
const { target, calls } = fakeConsole();
|
|
60
|
+
const handle = silenceConsole(['[retry]'], { console: target });
|
|
61
|
+
const notPrimitive = Object.create(null);
|
|
62
|
+
expect(() => target.log('Module imported:', notPrimitive)).not.toThrow();
|
|
63
|
+
expect(() => target.warn(notPrimitive)).not.toThrow();
|
|
64
|
+
// No coincide con el patrón: pasa tal cual.
|
|
65
|
+
expect(calls.log).toHaveLength(1);
|
|
66
|
+
expect(handle.suppressed).toHaveLength(0);
|
|
67
|
+
handle.restore();
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
//# sourceMappingURL=console.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"console.test.js","sourceRoot":"","sources":["../../src/test-utils/console.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/test-utils/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/test-utils/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA"}
|
package/dist/test-utils/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/test-utils/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/test-utils/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA"}
|