@hublo/sentinel 1.4.0-alpha.56 → 1.4.0-alpha.58

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.
@@ -15,10 +15,10 @@ import {
15
15
  palette,
16
16
  registerAdapters,
17
17
  resolve
18
- } from "../chunk-OA2TER3B.js";
18
+ } from "../chunk-MWNOFSYR.js";
19
19
  import {
20
20
  resolveContext
21
- } from "../chunk-YHYHR2LU.js";
21
+ } from "../chunk-BXXNV6NP.js";
22
22
  import "../chunk-O7REVMOC.js";
23
23
  import "../chunk-QXFCZON7.js";
24
24
  import {
@@ -145,7 +145,7 @@ async function runValidate(ctx) {
145
145
  );
146
146
  }
147
147
  if (!ctx.targets.includes("test")) return 1;
148
- const { validateModuleTests } = await import("../validate-DXELXSQO.js");
148
+ const { validateModuleTests } = await import("../validate-BKD2ICT7.js");
149
149
  const outcomes = modules.flatMap(
150
150
  (module) => validateModuleTests(module.name, module.root)
151
151
  );
@@ -1032,7 +1032,13 @@ function inheritedMocksSetup(specifiers) {
1032
1032
  * vitest keeps the exported FUNCTIONS and drops \`aws\`, the object the code calls, so the
1033
1033
  * provider dies on \`Cannot read properties of undefined (reading 'ddb')\`. The factory below
1034
1034
  * rebuilds the shape jest handed back: every property is a spy, a nested one builds another,
1035
- * and \`new Thing()\` constructs. A property the underlying spy already owns, such as
1035
+ * and \`new Thing()\` yields an INSTANCE that carries its methods too. That last part is not
1036
+ * decoration: the real \`PeriodicExportingMetricReader\` holds an instance of the mocked
1037
+ * exporter and calls \`forceFlush\` on it, and a plain \`{}\` fails with
1038
+ * \`this._exporter.forceFlush is not a function\`. \u26A0\uFE0F And the instance is only synthesised when
1039
+ * the spy has NO implementation: \`libs/nest/metrics\` gives it one, and a trap that ignored
1040
+ * that returned a proxy where the test expected its own in-memory exporter. A property the
1041
+ * underlying spy already owns, such as
1036
1042
  * \`mockImplementation\`, is returned untouched, so \`vi.mocked(X).mockImplementation(...)\`
1037
1043
  * keeps working.
1038
1044
  */
@@ -1048,6 +1054,13 @@ const automock = (): Record<string | symbol, unknown> => {
1048
1054
  target[key] ??= anything()
1049
1055
  return target[key]
1050
1056
  },
1057
+ construct: (target, args, newTarget): object => {
1058
+ const built = Reflect.construct(target as never, args, newTarget) as object
1059
+ // A spy with no implementation builds an EMPTY object; jest's automock built an
1060
+ // instance whose methods were mocks. A spy the test gave an implementation to
1061
+ // builds what the test asked for, and that always wins.
1062
+ return Reflect.ownKeys(built).length === 0 ? (anything() as never) : built
1063
+ },
1051
1064
  })
1052
1065
 
1053
1066
  const namespace: Record<string | symbol, unknown> = {}
@@ -53,7 +53,7 @@ import {
53
53
  selfCommand,
54
54
  splitToolArgs,
55
55
  walk
56
- } from "./chunk-YHYHR2LU.js";
56
+ } from "./chunk-BXXNV6NP.js";
57
57
  import {
58
58
  parseJsonc
59
59
  } from "./chunk-QXFCZON7.js";
package/dist/index.js CHANGED
@@ -6,10 +6,10 @@ import {
6
6
  registerAdapters,
7
7
  resolve,
8
8
  setDefaultRunner
9
- } from "./chunk-OA2TER3B.js";
9
+ } from "./chunk-MWNOFSYR.js";
10
10
  import {
11
11
  BaseAdapter
12
- } from "./chunk-YHYHR2LU.js";
12
+ } from "./chunk-BXXNV6NP.js";
13
13
  import "./chunk-O7REVMOC.js";
14
14
  import "./chunk-QXFCZON7.js";
15
15
  import "./chunk-KMKQDGI6.js";
@@ -7,7 +7,7 @@ import {
7
7
  readTestAdoption,
8
8
  resolveVitest,
9
9
  suiteOf
10
- } from "./chunk-YHYHR2LU.js";
10
+ } from "./chunk-BXXNV6NP.js";
11
11
  import "./chunk-O7REVMOC.js";
12
12
  import "./chunk-QXFCZON7.js";
13
13
  import "./chunk-KMKQDGI6.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hublo/sentinel",
3
- "version": "1.4.0-alpha.56",
3
+ "version": "1.4.0-alpha.58",
4
4
  "description": "One CLI that guards code health across Hublo repos: shared lint/typescript/build/test presets, static & dynamic analysis, and architecture checks.",
5
5
  "type": "module",
6
6
  "license": "MIT",