@happyvertical/smrt-vitest 0.47.0 → 0.47.2
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/.tsbuildinfo +1 -1
- package/dist/index.d.ts +56 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +174 -1
- package/dist/index.js.map +1 -1
- package/dist/setup.d.ts +5 -1
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +171 -11
- package/dist/setup.js.map +1 -1
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
|
@@ -26,6 +26,62 @@
|
|
|
26
26
|
* @packageDocumentation
|
|
27
27
|
*/
|
|
28
28
|
import type { Plugin } from 'vitest/config';
|
|
29
|
+
/**
|
|
30
|
+
* Environment variable carrying this plugin's manifest-registration options
|
|
31
|
+
* (`packages`, `root`, `verbose`) from the Vitest orchestrator process to
|
|
32
|
+
* every pool worker process (#2750).
|
|
33
|
+
*
|
|
34
|
+
* `configResolved()` below registers manifests into `ObjectRegistry`, but it
|
|
35
|
+
* only ever runs in Vitest's main/orchestrator process. Test files execute
|
|
36
|
+
* in separate pool worker processes (`forks`) or worker threads (`threads`)
|
|
37
|
+
* that resolve `@happyvertical/smrt-core` independently — `globalThis` (and
|
|
38
|
+
* so the `ObjectRegistry` singleton it backs) is not shared across OS
|
|
39
|
+
* processes, and worker threads get their own JS realm too. Registration
|
|
40
|
+
* done only in `configResolved()` is therefore invisible to the test code
|
|
41
|
+
* that actually calls `getTestDatabase()` — it registers into a copy of the
|
|
42
|
+
* registry the test never sees.
|
|
43
|
+
*
|
|
44
|
+
* `config()` below sets this env var as early as possible (before Vitest
|
|
45
|
+
* spawns any pool worker); `./setup.ts`, which runs inside every worker via
|
|
46
|
+
* `setupFiles`, reads it and re-runs the exact same registration
|
|
47
|
+
* (`setupSmrtManifests`) in that worker's own process/realm. Node's
|
|
48
|
+
* `child_process.fork` (the `forks` pool) and `worker_threads` (the
|
|
49
|
+
* `threads` pool) both inherit `process.env` from the parent at spawn time,
|
|
50
|
+
* so the option payload reaches every worker without any new public API.
|
|
51
|
+
*
|
|
52
|
+
* The env var's value is a JSON object keyed by resolved plugin `root`
|
|
53
|
+
* (see {@link setManifestRegistrationOptionsForRoot}), not a single flat
|
|
54
|
+
* options object: a Vitest multi-project config (`test.projects`) can run
|
|
55
|
+
* several `smrtVitestPlugin()` instances — with different options, or none
|
|
56
|
+
* at all next to one that has options — inside the same orchestrator
|
|
57
|
+
* process, and `process.env` is process-global. Keying by `root` and
|
|
58
|
+
* merging (never overwriting) keeps one project's options from leaking into
|
|
59
|
+
* another's worker, and `setup.ts` looks its own `process.cwd()` up in the
|
|
60
|
+
* map rather than reading a single ambient value.
|
|
61
|
+
*/
|
|
62
|
+
export declare const SMRT_VITEST_SETUP_OPTIONS_ENV_KEY = "__SMRT_VITEST_SETUP_OPTIONS__";
|
|
63
|
+
/**
|
|
64
|
+
* Normalize a project root to a stable key for
|
|
65
|
+
* {@link SMRT_VITEST_SETUP_OPTIONS_ENV_KEY}: resolves symlinks
|
|
66
|
+
* (`fs.realpathSync`) so the write side (this plugin, running in the
|
|
67
|
+
* orchestrator process) and the read side (`setup.ts`'s `process.cwd()`,
|
|
68
|
+
* running in a pool worker) agree on the same key even when the two differ
|
|
69
|
+
* only by a symlink — e.g. macOS's `/var` → `/private/var` (`os.tmpdir()`
|
|
70
|
+
* and some CI checkouts live under it), or Linux's `/tmp` → `/private/tmp`
|
|
71
|
+
* equivalents. Falls back to the raw path (still trimmed of a trailing
|
|
72
|
+
* separator) when the path does not exist yet or `realpathSync` otherwise
|
|
73
|
+
* fails, so this never throws.
|
|
74
|
+
*/
|
|
75
|
+
export declare function normalizeRootKey(root: string): string;
|
|
76
|
+
/**
|
|
77
|
+
* Merge `options` for `root` into {@link SMRT_VITEST_SETUP_OPTIONS_ENV_KEY},
|
|
78
|
+
* preserving any other roots' entries already present (from an earlier
|
|
79
|
+
* `smrtVitestPlugin()` instance in the same process — see the env var's
|
|
80
|
+
* doc comment). `root` is normalized through {@link normalizeRootKey}
|
|
81
|
+
* before use as the map key. Exported so `setup.ts` and tests can reason
|
|
82
|
+
* about the exact payload shape without duplicating the parse/merge logic.
|
|
83
|
+
*/
|
|
84
|
+
export declare function setManifestRegistrationOptionsForRoot(root: string, options: SmrtVitestPluginOptions): void;
|
|
29
85
|
/**
|
|
30
86
|
* Configuration options for {@link smrtVitestPlugin} and
|
|
31
87
|
* {@link setupSmrtManifests}.
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAMH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C;;;;;;;GAOG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;;;;;;;OAUG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC;CACzE;AAgBD,KAAK,cAAc,GAAG;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;;OAGG;IACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC;CAC7C;AAsGD,wBAAgB,uBAAuB,CACrC,IAAI,SAAgB,EACpB,OAAO,GAAE,yBAA8B,GACtC,kBAAkB,EAAE,CAuTtB;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAMH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,iCAAiC,kCACb,CAAC;AAElC;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMrD;AAED;;;;;;;GAOG;AACH,wBAAgB,qCAAqC,CACnD,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,uBAAuB,GAC/B,IAAI,CAwBN;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;;;;;;;OAUG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC;CACzE;AAgBD,KAAK,cAAc,GAAG;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;;OAGG;IACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC;CAC7C;AAsGD,wBAAgB,uBAAuB,CACrC,IAAI,SAAgB,EACpB,OAAO,GAAE,yBAA8B,GACtC,kBAAkB,EAAE,CAuTtB;AAihBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,GAAE,uBAA4B,GACpC,MAAM,CAsNR;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAED,eAAe,gBAAgB,CAAC;AAGhC,OAAO,EACL,oBAAoB,EACpB,gCAAgC,EAChC,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,mBAAmB,EACnB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,cAAc,CAAC;AAGtB,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -25,10 +25,97 @@
|
|
|
25
25
|
*
|
|
26
26
|
* @packageDocumentation
|
|
27
27
|
*/
|
|
28
|
-
import { existsSync, readdirSync, readFileSync } from 'node:fs';
|
|
28
|
+
import { existsSync, readdirSync, readFileSync, realpathSync } from 'node:fs';
|
|
29
29
|
import { createRequire } from 'node:module';
|
|
30
30
|
import { dirname, join } from 'node:path';
|
|
31
31
|
import { fileURLToPath } from 'node:url';
|
|
32
|
+
/**
|
|
33
|
+
* Environment variable carrying this plugin's manifest-registration options
|
|
34
|
+
* (`packages`, `root`, `verbose`) from the Vitest orchestrator process to
|
|
35
|
+
* every pool worker process (#2750).
|
|
36
|
+
*
|
|
37
|
+
* `configResolved()` below registers manifests into `ObjectRegistry`, but it
|
|
38
|
+
* only ever runs in Vitest's main/orchestrator process. Test files execute
|
|
39
|
+
* in separate pool worker processes (`forks`) or worker threads (`threads`)
|
|
40
|
+
* that resolve `@happyvertical/smrt-core` independently — `globalThis` (and
|
|
41
|
+
* so the `ObjectRegistry` singleton it backs) is not shared across OS
|
|
42
|
+
* processes, and worker threads get their own JS realm too. Registration
|
|
43
|
+
* done only in `configResolved()` is therefore invisible to the test code
|
|
44
|
+
* that actually calls `getTestDatabase()` — it registers into a copy of the
|
|
45
|
+
* registry the test never sees.
|
|
46
|
+
*
|
|
47
|
+
* `config()` below sets this env var as early as possible (before Vitest
|
|
48
|
+
* spawns any pool worker); `./setup.ts`, which runs inside every worker via
|
|
49
|
+
* `setupFiles`, reads it and re-runs the exact same registration
|
|
50
|
+
* (`setupSmrtManifests`) in that worker's own process/realm. Node's
|
|
51
|
+
* `child_process.fork` (the `forks` pool) and `worker_threads` (the
|
|
52
|
+
* `threads` pool) both inherit `process.env` from the parent at spawn time,
|
|
53
|
+
* so the option payload reaches every worker without any new public API.
|
|
54
|
+
*
|
|
55
|
+
* The env var's value is a JSON object keyed by resolved plugin `root`
|
|
56
|
+
* (see {@link setManifestRegistrationOptionsForRoot}), not a single flat
|
|
57
|
+
* options object: a Vitest multi-project config (`test.projects`) can run
|
|
58
|
+
* several `smrtVitestPlugin()` instances — with different options, or none
|
|
59
|
+
* at all next to one that has options — inside the same orchestrator
|
|
60
|
+
* process, and `process.env` is process-global. Keying by `root` and
|
|
61
|
+
* merging (never overwriting) keeps one project's options from leaking into
|
|
62
|
+
* another's worker, and `setup.ts` looks its own `process.cwd()` up in the
|
|
63
|
+
* map rather than reading a single ambient value.
|
|
64
|
+
*/
|
|
65
|
+
export const SMRT_VITEST_SETUP_OPTIONS_ENV_KEY = '__SMRT_VITEST_SETUP_OPTIONS__';
|
|
66
|
+
/**
|
|
67
|
+
* Normalize a project root to a stable key for
|
|
68
|
+
* {@link SMRT_VITEST_SETUP_OPTIONS_ENV_KEY}: resolves symlinks
|
|
69
|
+
* (`fs.realpathSync`) so the write side (this plugin, running in the
|
|
70
|
+
* orchestrator process) and the read side (`setup.ts`'s `process.cwd()`,
|
|
71
|
+
* running in a pool worker) agree on the same key even when the two differ
|
|
72
|
+
* only by a symlink — e.g. macOS's `/var` → `/private/var` (`os.tmpdir()`
|
|
73
|
+
* and some CI checkouts live under it), or Linux's `/tmp` → `/private/tmp`
|
|
74
|
+
* equivalents. Falls back to the raw path (still trimmed of a trailing
|
|
75
|
+
* separator) when the path does not exist yet or `realpathSync` otherwise
|
|
76
|
+
* fails, so this never throws.
|
|
77
|
+
*/
|
|
78
|
+
export function normalizeRootKey(root) {
|
|
79
|
+
try {
|
|
80
|
+
return realpathSync(root);
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
return root.replace(/[/\\]+$/, '') || root;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Merge `options` for `root` into {@link SMRT_VITEST_SETUP_OPTIONS_ENV_KEY},
|
|
88
|
+
* preserving any other roots' entries already present (from an earlier
|
|
89
|
+
* `smrtVitestPlugin()` instance in the same process — see the env var's
|
|
90
|
+
* doc comment). `root` is normalized through {@link normalizeRootKey}
|
|
91
|
+
* before use as the map key. Exported so `setup.ts` and tests can reason
|
|
92
|
+
* about the exact payload shape without duplicating the parse/merge logic.
|
|
93
|
+
*/
|
|
94
|
+
export function setManifestRegistrationOptionsForRoot(root, options) {
|
|
95
|
+
const key = normalizeRootKey(root);
|
|
96
|
+
let byRoot = {};
|
|
97
|
+
const raw = process.env[SMRT_VITEST_SETUP_OPTIONS_ENV_KEY];
|
|
98
|
+
if (raw) {
|
|
99
|
+
try {
|
|
100
|
+
const parsed = JSON.parse(raw);
|
|
101
|
+
// `typeof [] === 'object'` too: an array here would let `byRoot[key] =
|
|
102
|
+
// options` silently succeed (JS permits arbitrary string keys on
|
|
103
|
+
// arrays) but `JSON.stringify()` an array only serializes integer
|
|
104
|
+
// indices, dropping that property -- the env var update would appear
|
|
105
|
+
// to work and then vanish. Reject non-plain-object values explicitly
|
|
106
|
+
// so a foreign/malformed prior value falls through to the empty-map
|
|
107
|
+
// default below instead.
|
|
108
|
+
if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {
|
|
109
|
+
byRoot = parsed;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
// A malformed/foreign prior value is discarded rather than merged.
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
byRoot[key] = options;
|
|
117
|
+
process.env[SMRT_VITEST_SETUP_OPTIONS_ENV_KEY] = JSON.stringify(byRoot);
|
|
118
|
+
}
|
|
32
119
|
function resolveDefaultSetupFile() {
|
|
33
120
|
const sourceSetupPath = fileURLToPath(new URL('./setup.ts', import.meta.url));
|
|
34
121
|
if (existsSync(sourceSetupPath)) {
|
|
@@ -407,12 +494,60 @@ async function loadAndRegisterManifest(packageName, verbose) {
|
|
|
407
494
|
return false;
|
|
408
495
|
}
|
|
409
496
|
}
|
|
497
|
+
/**
|
|
498
|
+
* Patterns identifying a manifest object as declared INLINE inside a test
|
|
499
|
+
* file itself (`some-behavior.test.ts` decorating a throwaway class in the
|
|
500
|
+
* same file), not merely located somewhere under a test-ish directory.
|
|
501
|
+
* Deliberately narrower than `packages/core/src/scanner/test-file-patterns.ts`'s
|
|
502
|
+
* `isTestFile()` (used there for a lower-stakes purpose, documentation/
|
|
503
|
+
* API-surface visibility inference): a broader directory-based heuristic
|
|
504
|
+
* (`__tests__/`, `fixtures?/`, `/test/`, `/mocks?/`) over-fires here and
|
|
505
|
+
* wrongly excludes legitimate non-test model files that merely happen to
|
|
506
|
+
* live under a `fixtures/`-named directory, such as
|
|
507
|
+
* `packages/vitest/src/__tests__/fixtures/issue-2750-registry-fixture/src/models/widget.ts`
|
|
508
|
+
* -- a full consumer-shaped fixture PROJECT (this very package's own #2750
|
|
509
|
+
* regression test), not an inline test double. Matching only the file's own
|
|
510
|
+
* `.test.`/`.spec.` suffix keeps the exclusion scoped to what it's actually
|
|
511
|
+
* for: a class decorated directly inside test code (see
|
|
512
|
+
* `registerManifestObjects` below).
|
|
513
|
+
*/
|
|
514
|
+
const TEST_FILE_PATTERNS = [
|
|
515
|
+
/\.test\.(ts|tsx|js|jsx)$/,
|
|
516
|
+
/\.spec\.(ts|tsx|js|jsx)$/,
|
|
517
|
+
];
|
|
518
|
+
function isManifestEntryFromTestFile(objectDef) {
|
|
519
|
+
const filePath = objectDef?.filePath;
|
|
520
|
+
return (typeof filePath === 'string' &&
|
|
521
|
+
TEST_FILE_PATTERNS.some((pattern) => pattern.test(filePath)));
|
|
522
|
+
}
|
|
410
523
|
function registerManifestObjects(ObjectRegistry, manifest, packageName) {
|
|
411
524
|
if (!manifest?.objects) {
|
|
412
525
|
return 0;
|
|
413
526
|
}
|
|
527
|
+
// Skip manifest entries declared inside test files (#2750 follow-up): a
|
|
528
|
+
// class decorated inline in a `*.test.ts`/`__tests__/` fixture (e.g. a
|
|
529
|
+
// throwaway model used only by that one test file) is captured by the
|
|
530
|
+
// package-wide manifest scan just like any production model, but it was
|
|
531
|
+
// never meant to be visible outside the file that declares it -- on the
|
|
532
|
+
// pre-#2750 decorator-only registration path, it simply never was, since
|
|
533
|
+
// only classes reached by the currently-running test file's own import
|
|
534
|
+
// graph got registered. #2750's worker-side re-registration (this file's
|
|
535
|
+
// `setupSmrtManifests`, invoked from every worker via
|
|
536
|
+
// `packages/vitest/src/setup.ts`) bulk-registers every manifest entry for
|
|
537
|
+
// the package regardless of which test file is running, so a fixture
|
|
538
|
+
// class now leaks into every other test file in the same package/worker
|
|
539
|
+
// -- reproduced by `packages/chat`'s `chat-security.test.ts` (a
|
|
540
|
+
// registry-wide audit of "every registered @happyvertical/smrt-chat
|
|
541
|
+
// model") tripping over `ConvNote`, a full-CRUD test double declared in
|
|
542
|
+
// `persona-conversation.test.ts`, once that file's manifest entry became
|
|
543
|
+
// visible package-wide. The fixture's OWN file still registers it
|
|
544
|
+
// correctly via ordinary decorator-import execution when that file
|
|
545
|
+
// itself runs; only the manifest-driven BULK path is scoped down here.
|
|
414
546
|
let registered = 0;
|
|
415
547
|
for (const [name, objectDef] of Object.entries(manifest.objects)) {
|
|
548
|
+
if (isManifestEntryFromTestFile(objectDef)) {
|
|
549
|
+
continue;
|
|
550
|
+
}
|
|
416
551
|
if (!ObjectRegistry.hasClass(name)) {
|
|
417
552
|
ObjectRegistry.registerFromManifest(name, objectDef, packageName);
|
|
418
553
|
registered++;
|
|
@@ -648,6 +783,44 @@ export function smrtVitestPlugin(options = {}) {
|
|
|
648
783
|
return {
|
|
649
784
|
name: 'smrt-vitest',
|
|
650
785
|
config(userConfig) {
|
|
786
|
+
// Propagate manifest-registration options to every worker process this
|
|
787
|
+
// early — before Vitest spawns any pool worker — so ./setup.ts can
|
|
788
|
+
// re-run registration inside the worker's own process/realm (#2750).
|
|
789
|
+
// Must happen in `config()`, not `configResolved()`: Vitest begins
|
|
790
|
+
// spawning/pre-warming pool workers (which snapshot `process.env` at
|
|
791
|
+
// `child_process.fork()`/`worker_threads` spawn time) concurrently
|
|
792
|
+
// with plugin config resolution, and `configResolved()` running later
|
|
793
|
+
// than that spawn left already-forked workers with a stale (missing)
|
|
794
|
+
// env var — confirmed empirically: moving this call to
|
|
795
|
+
// `configResolved()` broke the fixture regression test even though
|
|
796
|
+
// `configResolved()` is still awaited before the FIRST test file runs.
|
|
797
|
+
// `config()` is the earliest hook available and keeps the working
|
|
798
|
+
// behavior from #2750's original fix.
|
|
799
|
+
//
|
|
800
|
+
// Keyed by `root` (merged into any existing payload, never
|
|
801
|
+
// overwritten, normalized through `normalizeRootKey` to resolve
|
|
802
|
+
// symlinks) rather than a single flat value: several
|
|
803
|
+
// `smrtVitestPlugin()` instances -- with different options, or none at
|
|
804
|
+
// all next to one that has options -- can run inside the SAME
|
|
805
|
+
// orchestrator process (e.g. a Vitest multi-project `test.projects`
|
|
806
|
+
// run), and `process.env` is process-global. A flat value let the
|
|
807
|
+
// last project's call silently overwrite every earlier project's
|
|
808
|
+
// options, contaminating unrelated projects' worker registration.
|
|
809
|
+
// `setup.ts` looks its own (`normalizeRootKey`-d) `process.cwd()` up
|
|
810
|
+
// in this map.
|
|
811
|
+
//
|
|
812
|
+
// Known residual limitation: `root` here is this closure's
|
|
813
|
+
// construction-time value (`options.root ?? process.cwd()`), not a
|
|
814
|
+
// per-project Vite-resolved root -- Vite never `chdir`s while loading
|
|
815
|
+
// project configs, so every `smrtVitestPlugin()` instance in one
|
|
816
|
+
// `test.projects` array that leaves `root` at its default computes the
|
|
817
|
+
// identical key regardless of which project subdirectory it actually
|
|
818
|
+
// lives in, and the last one to call `config()` wins for all of them.
|
|
819
|
+
// Bounded by `registerManifestObjects()`'s `hasClass()` guard to extra
|
|
820
|
+
// additive registrations (never corruption) plus extra `verbose`
|
|
821
|
+
// logging; a project needing distinct isolation in that shape should
|
|
822
|
+
// pass an explicit, distinct `root` to `smrtVitestPlugin()`.
|
|
823
|
+
setManifestRegistrationOptionsForRoot(root, { packages, root, verbose });
|
|
651
824
|
const rootRetry = userConfig.test?.retry;
|
|
652
825
|
applyTestDefaultsToProjects(userConfig.test?.projects, rootRetry);
|
|
653
826
|
const setupFiles = ensureSetupFiles(userConfig.test?.setupFiles);
|
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/dist/setup.d.ts
CHANGED
|
@@ -18,5 +18,9 @@
|
|
|
18
18
|
*
|
|
19
19
|
* @packageDocumentation
|
|
20
20
|
*/
|
|
21
|
-
|
|
21
|
+
import type { SmrtVitestPluginOptions } from './index.js';
|
|
22
|
+
declare global {
|
|
23
|
+
var __smrtVitestSetupRegisteredClassNames: string[] | undefined;
|
|
24
|
+
var __smrtVitestSetupResolvedOptions: SmrtVitestPluginOptions | null | undefined;
|
|
25
|
+
}
|
|
22
26
|
//# sourceMappingURL=setup.d.ts.map
|
package/dist/setup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG"}
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAMH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAe1D,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,qCAAqC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAEhE,IAAI,gCAAgC,EAChC,uBAAuB,GACvB,IAAI,GACJ,SAAS,CAAC;CACf"}
|
package/dist/setup.js
CHANGED
|
@@ -22,6 +22,122 @@ import { existsSync } from 'node:fs';
|
|
|
22
22
|
import { dirname, join } from 'node:path';
|
|
23
23
|
import { afterAll, beforeAll, vi } from 'vitest';
|
|
24
24
|
import { applySqliteSpeedPragmas, getDatabaseFromSqliteSchemaTemplate, getLocalSqliteFilePath, } from './sqlite-schema-template.js';
|
|
25
|
+
/**
|
|
26
|
+
* `SMRT_VITEST_SETUP_OPTIONS_ENV_KEY` mirrored from `./index.ts` (kept as a
|
|
27
|
+
* plain string literal, not a static import — see the note on
|
|
28
|
+
* {@link ensureManifestsRegisteredInThisProcess} for why this file avoids a
|
|
29
|
+
* static, module-load-time import of `./index.js`).
|
|
30
|
+
*/
|
|
31
|
+
const SETUP_OPTIONS_ENV_KEY = '__SMRT_VITEST_SETUP_OPTIONS__';
|
|
32
|
+
/**
|
|
33
|
+
* Re-run `smrtVitestPlugin()`'s manifest registration inside THIS worker
|
|
34
|
+
* process (#2750). `configResolved()`/`config()` in `./index.ts` only ever
|
|
35
|
+
* run in Vitest's main/orchestrator process; `ObjectRegistry` is a
|
|
36
|
+
* `globalThis` singleton, which is not shared across the OS
|
|
37
|
+
* processes/worker threads that actually execute test files. Without this,
|
|
38
|
+
* test code sees an empty registry even though the plugin logged classes as
|
|
39
|
+
* loaded.
|
|
40
|
+
*
|
|
41
|
+
* Self-healing rather than register-once: guarded by a `globalThis` list of
|
|
42
|
+
* the qualified class names this function itself registered last time, not
|
|
43
|
+
* a plain boolean. `ObjectRegistry` is a `globalThis` singleton that
|
|
44
|
+
* persists across test files within one worker process (the same
|
|
45
|
+
* assumption this file's own `beforeAll`/`afterAll` already rely on for
|
|
46
|
+
* `__smrtManifestCache`), and any test file may call
|
|
47
|
+
* `ObjectRegistry.clear()` — several plugin-consuming packages' suites do.
|
|
48
|
+
* A plain "registered once" flag would then leave every later test file in
|
|
49
|
+
* that worker silently back at the pre-#2750 empty-registry state for
|
|
50
|
+
* manifest-only classes (the ones never imported directly, so no decorator
|
|
51
|
+
* re-registers them on the next file's fresh module graph). Re-checking
|
|
52
|
+
* `hasClass()` for the previously-registered set on every `beforeAll` and
|
|
53
|
+
* only skipping when they are all still present keeps the common case
|
|
54
|
+
* (nothing cleared) cheap while self-healing after a `clear()`.
|
|
55
|
+
*
|
|
56
|
+
* Run from a `beforeAll` hook rather than a module-top-level `await`: a
|
|
57
|
+
* top-level `await` in a `setupFiles` entry changes how Vitest sequences
|
|
58
|
+
* module loading and shifted the async call-stack frames
|
|
59
|
+
* `getSourceFileFromStack()` (`packages/core/src/registry/shared-state.ts`)
|
|
60
|
+
* relies on to attribute a `@smrt()` class to its declaring package —
|
|
61
|
+
* observed as spurious `@vitest/runner:<Class>` qualified names in core's
|
|
62
|
+
* own test suite. `beforeAll` still runs before every test in the file (and
|
|
63
|
+
* before the mocked `getDatabase()` is first exercised), without disturbing
|
|
64
|
+
* module-load-time stack shape.
|
|
65
|
+
*
|
|
66
|
+
* `setupSmrtManifests`/`ObjectRegistry` are loaded with a dynamic
|
|
67
|
+
* `import('./index.js')` / `loadSmrtCoreModule()` here, not a static
|
|
68
|
+
* top-level import, for the same reason: `./index.ts` is the full
|
|
69
|
+
* Vite-plugin module (workspace aliasing, manifest generation, the
|
|
70
|
+
* `configResolved` hook, ~1300 lines with its own transitive import graph).
|
|
71
|
+
* A *static* import of it from this setup file was enough on its own to
|
|
72
|
+
* reproduce the exact same stack-attribution corruption in `smrt-core`'s own
|
|
73
|
+
* suite (`sti-registry.test.ts`, `transform-json-hook.test.ts` —
|
|
74
|
+
* `@vitest/runner:<Class>` instead of `@happyvertical/smrt-core:<Class>`)
|
|
75
|
+
* even with registration itself moved into `beforeAll` — confirmed by A/B
|
|
76
|
+
* testing against this exact base commit with only that one import changed.
|
|
77
|
+
* Deferring the import to inside this already-lazy, already-`beforeAll`-gated
|
|
78
|
+
* function keeps this file's *static* import graph identical to its
|
|
79
|
+
* pre-#2750 shape; every other lazy loader in this file
|
|
80
|
+
* (`loadSmrtCoreModule`, `loadSmrtTableCacheModule`) follows the same
|
|
81
|
+
* dynamic-import pattern for the same class of reason.
|
|
82
|
+
*/
|
|
83
|
+
async function ensureManifestsRegisteredInThisProcess() {
|
|
84
|
+
const raw = process.env[SETUP_OPTIONS_ENV_KEY];
|
|
85
|
+
if (!raw) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
try {
|
|
89
|
+
// Resolve (and cache on `globalThis`) this worker's matching options
|
|
90
|
+
// exactly once per process: `import('./index.js')` -- needed here only
|
|
91
|
+
// for `normalizeRootKey` -- is the ~1300-line Vite-plugin module with
|
|
92
|
+
// its own transitive graph, and under `isolate: true` this function
|
|
93
|
+
// re-runs fresh on every test file. Re-importing it every file (even on
|
|
94
|
+
// the eventual no-op path) reintroduced per-file overhead and widened
|
|
95
|
+
// exposure to the exact class of module this file otherwise avoids a
|
|
96
|
+
// *static* import of (see the doc comment above). `undefined` means
|
|
97
|
+
// "not resolved yet"; `null` means "resolved, no match for this cwd" --
|
|
98
|
+
// both distinct from a real options object so a legitimate empty-ish
|
|
99
|
+
// options value is never mistaken for "not yet checked".
|
|
100
|
+
let options = globalThis.__smrtVitestSetupResolvedOptions;
|
|
101
|
+
if (options === undefined) {
|
|
102
|
+
const byRoot = JSON.parse(raw);
|
|
103
|
+
// The plugin's `config()` keys its entry by its resolved, normalized
|
|
104
|
+
// `root` (default `process.cwd()` at the time it ran, in the same
|
|
105
|
+
// project). This worker's own `process.cwd()` is that same project's
|
|
106
|
+
// directory in the standard case, so match on that alone (also
|
|
107
|
+
// normalized the same way) -- deliberately NOT falling back to "the
|
|
108
|
+
// map's one entry" when there is no exact match: this module's
|
|
109
|
+
// setupFiles-standalone mode (no `smrtVitestPlugin()` in `plugins`)
|
|
110
|
+
// promises to be a no-op when there is nothing to register for THIS
|
|
111
|
+
// project, and a same-process, unrelated project's entry (e.g. a
|
|
112
|
+
// Vitest multi-project run mixing a plugin-using project with a
|
|
113
|
+
// plugin-less one) is not this project's options. A consumer passing
|
|
114
|
+
// a custom non-default `root` to the plugin simply gets no
|
|
115
|
+
// registration here (matching the pre-#2750 behavior for that
|
|
116
|
+
// project) rather than risking cross-project registry contamination.
|
|
117
|
+
const { normalizeRootKey } = await import('./index.js');
|
|
118
|
+
options = byRoot[normalizeRootKey(process.cwd())] ?? null;
|
|
119
|
+
globalThis.__smrtVitestSetupResolvedOptions = options;
|
|
120
|
+
}
|
|
121
|
+
if (!options) {
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
const { ObjectRegistry } = await loadSmrtCoreModule();
|
|
125
|
+
const previouslyRegistered = globalThis.__smrtVitestSetupRegisteredClassNames;
|
|
126
|
+
if (previouslyRegistered?.every((name) => ObjectRegistry.hasClass(name))) {
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
const { setupSmrtManifests } = await import('./index.js');
|
|
130
|
+
await setupSmrtManifests(options);
|
|
131
|
+
globalThis.__smrtVitestSetupRegisteredClassNames =
|
|
132
|
+
ObjectRegistry.getQualifiedClassNames();
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
console.warn('[smrt-vitest] setup: failed to register manifests in this test process:', error);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
beforeAll(async () => {
|
|
139
|
+
await ensureManifestsRegisteredInThisProcess();
|
|
140
|
+
});
|
|
25
141
|
const preparedSchemasByDb = new WeakMap();
|
|
26
142
|
const preparedSchemasByConfig = new Map();
|
|
27
143
|
// applySqliteSpeedPragmas (#2221) lives in sqlite-schema-template.ts so the
|
|
@@ -131,17 +247,61 @@ function buildSchemaSqlBatches(smrtCore, db, options) {
|
|
|
131
247
|
const engine = typeof db.exportTable === 'function'
|
|
132
248
|
? 'json'
|
|
133
249
|
: smrtCore.detectEngine(dbConfig.url || db.url || ':memory:', dbConfig.type);
|
|
134
|
-
return Object.values(smrtCore.ObjectRegistry.getAllSchemasAsDefinitions())
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
250
|
+
return Object.values(smrtCore.ObjectRegistry.getAllSchemasAsDefinitions())
|
|
251
|
+
.map((schema) => {
|
|
252
|
+
// Generate DDL per-schema, in isolation: `ObjectRegistry` in this
|
|
253
|
+
// process now holds every manifest-registered class from every
|
|
254
|
+
// discovered smrt package (#2750's worker-side re-registration fix),
|
|
255
|
+
// not just the classes this particular test file happens to import.
|
|
256
|
+
// A handful of those classes are legitimately incompatible with a
|
|
257
|
+
// given engine by design (e.g. a cross-package foreign key using
|
|
258
|
+
// `ON DELETE CASCADE`, which DuckDB's strategy deliberately rejects —
|
|
259
|
+
// see `duckdb-strategy.ts`) and `generateDDLForEngine` throws for
|
|
260
|
+
// them. Before the worker-side fix, those unrelated classes were
|
|
261
|
+
// simply never registered in this process, so the throw never
|
|
262
|
+
// happened. Letting one such throw escape here aborts
|
|
263
|
+
// `Promise.all`/`.map` for the WHOLE batch, silently skipping table
|
|
264
|
+
// creation even for the class this test actually needs — reproduced
|
|
265
|
+
// for `packages/events` (`EventType`/`event_types`) via an unrelated
|
|
266
|
+
// `EventAsset` FK, and for `packages/analytics`
|
|
267
|
+
// (`AnalyticsProperty`/`analytics_properties`) the same way. Catch and
|
|
268
|
+
// skip only the offending schema so every other registered class,
|
|
269
|
+
// including the one under test, still gets its table.
|
|
270
|
+
try {
|
|
271
|
+
const ddl = smrtCore.generateDDLForEngine(schema, engine);
|
|
272
|
+
return [
|
|
273
|
+
ddl.createTable,
|
|
274
|
+
...ddl.indexes,
|
|
275
|
+
...(engine === 'duckdb' || engine === 'json' ? [] : ddl.triggers),
|
|
276
|
+
]
|
|
277
|
+
.filter(Boolean)
|
|
278
|
+
.map(normalizeSchemaStatement)
|
|
279
|
+
.join('\n');
|
|
280
|
+
}
|
|
281
|
+
catch (error) {
|
|
282
|
+
warnOnceForSchemaDdlFailure(schema.tableName, engine, error);
|
|
283
|
+
return '';
|
|
284
|
+
}
|
|
285
|
+
})
|
|
286
|
+
.filter(Boolean);
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* De-duplicates the per-schema DDL-generation warning from
|
|
290
|
+
* {@link buildSchemaSqlBatches} across repeated `getDatabase()` calls in one
|
|
291
|
+
* worker process (every `beforeEach` in a JSON/DuckDB-backed test file can
|
|
292
|
+
* trigger it again for the same offending table) so it is reported once,
|
|
293
|
+
* not once per test.
|
|
294
|
+
*/
|
|
295
|
+
const warnedSchemaDdlFailures = new Set();
|
|
296
|
+
function warnOnceForSchemaDdlFailure(tableName, engine, error) {
|
|
297
|
+
const key = `${engine}:${tableName}`;
|
|
298
|
+
if (warnedSchemaDdlFailures.has(key)) {
|
|
299
|
+
return;
|
|
300
|
+
}
|
|
301
|
+
warnedSchemaDdlFailures.add(key);
|
|
302
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
303
|
+
console.warn(`[smrt-vitest] setup: skipping automatic schema creation for table ` +
|
|
304
|
+
`'${tableName}' on engine '${engine}' -- ${message}`);
|
|
145
305
|
}
|
|
146
306
|
vi.mock('@happyvertical/sql', async () => {
|
|
147
307
|
const actual = await vi.importActual('@happyvertical/sql');
|