@m4l/testing 1.2.1-beta-docs-autocomplete-async-with-add-mf-sync.0 → 1.2.1-beta-fix-reports-viewer-chart-tab-resize.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
@@ -168,6 +168,14 @@ guide and update it alongside the helper docs.
168
168
  Builds a typed preview-scenario `dynamicParams` payload for authenticated MF launches. It documents the shared `dummyPresetId` and `testCondition` keys while still allowing MF-specific extension keys when a scenario needs more than the common baseline.
169
169
  - `installHostAuthenticatedMfPreviewBootstrap(...)`
170
170
  Composes the authenticated host-shell bootstrap baseline with one deterministic MF sidebar entry. The high-level installer accepts the MF identity fields directly (`moduleId`, `title`, `debugPort`, optional `iconUrl`, and optional `dynamicParams`) instead of exposing the lower-level menu-fixture shape. The shared baseline now also stubs `GET /users/me/preferences`, so authenticated host-preview suites inherit the same preferences bootstrap seam that the host runtime now requires without re-registering that endpoint in every MF-owned E2E project.
171
+ - `installHostAuthenticatedBootstrapRoutes({ page: browserContext, moduleId: 'platform' })`
172
+ Installs the existing auth, locale, branding, preferences and shell routes for every
173
+ page in a browser context. Use this before a real user action opens a host popup;
174
+ opener-only `page.route(...)` handlers do not intercept that popup's requests.
175
+ Route-only bootstrap options accept `Page | BrowserContext`; navigation helpers
176
+ still require `Page`. Keep feature endpoints context-scoped as well, and narrow
177
+ API patterns to `/api/v1/...` so they cannot fulfill `/reports/:uuid` HTML navigation
178
+ with JSON. The Export DataGrid and Tags visible-column E2E flows exercise this seam.
171
179
  - `installHostAuthenticatedMfModuleDictionaryRoute(...)`
172
180
  Installs the common authenticated MF module-dictionary route used after host-side launch so each MF pilot does not need its own one-line `isAuth: true` wrapper around the lower-level module-dictionary installer.
173
181
  - `openHostAuthenticatedMfPreviewModule(...)`
@@ -312,7 +320,6 @@ Current shared Vitest helpers in `@m4l/testing/vitest` include:
312
320
  - `createM4lAppFormLayoutsModuleOverrides(...)`
313
321
  - `createM4lAppCoreModuleMock(...)`
314
322
  - `createM4lPackageGclickModuleMock(...)`
315
- - `createM4lResourceSynchronizationModuleOverrides()`
316
323
  - `createM4lPackageGclickRealtimeModuleMock(...)`
317
324
  - `createM4lAppGraphicsModuleMock(...)`
318
325
  Includes a neutral `useInfinitePaginate()` entry (no rows, `hasMore: false`,
@@ -339,9 +346,8 @@ Current shared Vitest helpers in `@m4l/testing/vitest` include:
339
346
  - `createReResizableModuleMock(...)`
340
347
  - `createReactLeafletModuleMock(...)`
341
348
  Reusable module factories for M4L component consumers plus app and package `test/setup.ts` files so packages, hosts, and MFs can keep thin local adapters instead of repeating the same large `vi.mock(...)` payloads. When a consumer needs untouched real exports too, pass `baseModule` populated from `importOriginal(...)` and let the shared factory override only the test-facing surface.
342
- `createM4lAppFormComponentsModuleOverrides(...)` provides a reusable override payload for app/MF `@m4l/components` setups that need the dynamic-MF parameters store plus neutral form container/action placeholders (`FormContainer`, `ActionsContainer`, `ActionFormCancel`, `ActionFormIntro`, `RHFAutocompleteAsync`, and `RHFRadioGroup`) without copying the same local override object across app test setups. The canonical `RHFAutocompleteAsync` mock remains a neutral placeholder; inspect its props for optional `add` configuration without opening a real creation window.
349
+ `createM4lAppFormComponentsModuleOverrides(...)` provides a reusable override payload for app/MF `@m4l/components` setups that need the dynamic-MF parameters store plus neutral form container/action placeholders (`FormContainer`, `ActionsContainer`, `ActionFormCancel`, `ActionFormIntro`, `RHFAutocompleteAsync`, and `RHFRadioGroup`) without copying the same local override object across app test setups.
343
350
  `createM4lAppFormLayoutsModuleOverrides(...)` provides a reusable override payload for app/MF `@m4l/layouts` setups that need neutral paper-form seams (`useDynamicPaperForm`, `useFormAddEdit`) and a configurable `createComponentField(...)` identity baseline without repeating the same setup-local overrides.
344
- `createM4lMFActionModuleOverrides()` provides opt-in `completeMFAction` and `isMFActionRequest` spies plus the production `MF_ACTION_REQUEST_PARAM` identity for save-orchestration tests. Request recognition defaults to false and completion is a no-op; individual scenarios can enable recognition or make the observer throw. Compose it through app-component `moduleOverrides` instead of dynamically importing a component implementation from an MF setup, because that dynamic workspace import marks the component package as lazy in Nx's dependency graph. The standard factory continues to preserve real action helpers through `baseModule`; transport and lifecycle behavior have their own component-level tests.
345
351
  `createReactHookFormModuleMock(...)` now accepts `useFormContextData` so tests can inject package-local `setValue`, `reset`, `formState`, and related RHF behavior without rebuilding the full `react-hook-form` contract in each file.
346
352
  `createLeafletModuleMock(...)` now covers the repeated partial `leaflet` seams that showed up during the `GpsMap` normalization work: configurable `L.control.scale()` and `L.DomEvent.disableClickPropagation()` / `disableScrollPropagation()` behavior, while still preserving real exports through `baseModule` when the consumer needs the untouched runtime surface.
347
353
  `createReactLeafletModuleMock(...)` now covers neutral `Circle`, `GeoJSON`, `Polygon`, `Polyline`, `LayerGroup`, `Marker`, `Popup`, and configurable `useMap()` behavior. Use `useMapData` when the test can keep one stable map object for the whole file, or `useMapImplementation` when the test needs `useMap()` to read mutable per-test state such as a late-bound fake map ref. When a test still needs real exports such as `MapContainer`, keep the mock partial by passing `baseModule` from `importOriginal(...)` and override only the shape components or `useMap()` contract that belong to the scenario.
@@ -363,7 +369,6 @@ Current shared Vitest helpers in `@m4l/testing/vitest` include:
363
369
  The shared M4L app factories now also cover neutral platform-shell and MF-loading collaborators that repeatedly show up in app tests, including provider passthrough components such as `ModuleDictionaryProvider`, `ModuleSkeletonProvider`, `DomainCountryProvider`, `FormatterProvider`, `ModalProvider`, `PopupsProvider`, `AreasProvider`, `FlagsProvider`, `EnvironmentProvider`, `HostToolsProvider`, `NetworkProvider`, `AuthProvider`, `LocalesProvider`, `ThemeSettingsProvider`, `DeviceTypeProvider`, and `HostThemeProvider`, plus shell primitives such as `SideBar`, `AppBar`, `HelmetPage`, `AreasAdmin`, `LanguagePopover`, `AccountPopover`, `MFNoAuthApp`, `MFLoader`, `createDynamicMFStore(...)`, `createToaster(...)`, `getMFLoaderComponentsDictionary()`, `getLoadingErrorComponentsDictionary()`, and locale/domain hooks such as `useLocales()`, `useDomainCountry()`, and `getLocaleFromNetwork()`.
364
370
  The shared base `@m4l/components` layer now also owns reusable view primitives such as `Divider`, `NavLink`, and `WindowBase`, plus focused placeholder helpers such as `createDividerComponentMock(...)`, `createNavLinkComponentMock(...)`, and `createWindowBaseComponentMock(...)` so app tests can stay on top of the setup-owned baseline instead of rebuilding local workspace-library mocks.
365
371
  `createM4lPackageGclickModuleMock(...)` remains intentionally specific to the `@m4l/gclick` package and covers map-store, indicator, and GNSS enum behavior that only makes sense when mocking that exact runtime package.
366
- `createM4lResourceSynchronizationModuleOverrides()` is an explicit opt-in for MF orchestration suites that need controllable `useResourceInvalidation`, `useResourceMutation`, and `useEntityReferenceAdd` hooks plus the `PERSONS_RESOURCE` and `PROTOCOL_PERSON_REPORT_METHODS_RESOURCE` identities. A lightweight MF setup can use this payload directly without importing the full map/video runtime; a suite that needs other GClick exports can pass it through `moduleOverrides` or combine it with its existing partial mock. The standard package factory keeps these new exports real by default. Each factory invocation owns stable hook results and action functions, so component rerenders do not create artificial subscription changes. The resource contract test imports the real public root while isolating unrelated feature barrels, and compares the two identity constants with production values. Component passthrough contracts reuse the existing real Components preload; the generic autocomplete and MF action helpers remain real unless explicitly overridden.
367
372
  The shared app-components baseline now exposes a minimal but stable
368
373
  `WINDOW_SIZES.square` contract with both `medium` and `large` entries so app
369
374
  tests can open modal windows without each suite rebuilding the same shape
@@ -5,7 +5,7 @@ import { q as Q, l as x, r as B, w as ee, v as te, u as re } from "./userPrefere
5
5
  import "date-fns";
6
6
  import "history";
7
7
  import y from "react";
8
- const k = "__rhfOnSubmitRef", ne = {
8
+ const O = "__rhfOnSubmitRef", ne = {
9
9
  square: {
10
10
  large: {
11
11
  width: 800,
@@ -102,13 +102,13 @@ function he(e) {
102
102
  function Se(e) {
103
103
  return e?.type === "icon";
104
104
  }
105
- function Me(e) {
105
+ function Pe(e) {
106
106
  return e?.type === "color";
107
107
  }
108
- function Pe(e) {
108
+ function Me(e) {
109
109
  return e?.type === "image";
110
110
  }
111
- function O(e) {
111
+ function k(e) {
112
112
  return typeof e == "string" ? JSON.stringify(e) : typeof e == "symbol" ? e.toString() : $(e, {
113
113
  depth: 4,
114
114
  breakLength: 1 / 0,
@@ -118,15 +118,15 @@ function O(e) {
118
118
  }
119
119
  function A(e, n, o, r, a) {
120
120
  e.push(
121
- `${n} ${o}: expected ${O(r)}, got ${O(a)}`
121
+ `${n} ${o}: expected ${k(r)}, got ${k(a)}`
122
122
  );
123
123
  }
124
- function R(e, n, o) {
124
+ function _(e, n, o) {
125
125
  e.push(`${n} ${o}: expected a function, got undefined`);
126
126
  }
127
- function L(e, n, o) {
127
+ function w(e, n, o) {
128
128
  e.push(
129
- `${n} ${o}: expected undefined, got ${O("function")}`
129
+ `${n} ${o}: expected undefined, got ${k("function")}`
130
130
  );
131
131
  }
132
132
  function Ae(e, n, o, r) {
@@ -136,7 +136,7 @@ function Ae(e, n, o, r) {
136
136
  }
137
137
  const a = Object.keys(o).sort(), i = Object.keys(r).sort();
138
138
  g(a, i) || e.push(
139
- `${n} testProps keys: expected ${O(i)}, got ${O(a)}`
139
+ `${n} testProps keys: expected ${k(i)}, got ${k(a)}`
140
140
  ), i.forEach((s) => {
141
141
  const c = r[s], d = o[s];
142
142
  if (c === D) {
@@ -264,14 +264,14 @@ function be(e) {
264
264
  requiresFormatter: !0,
265
265
  requiresFilter: !1,
266
266
  requiresSort: !1
267
- } : Me(e) ? {
267
+ } : Pe(e) ? {
268
268
  expectedTestProps: {
269
269
  fieldValue: e.fieldValue
270
270
  },
271
271
  requiresFormatter: !0,
272
272
  requiresFilter: !1,
273
273
  requiresSort: !1
274
- } : Pe(e) ? {
274
+ } : Me(e) ? {
275
275
  expectedTestProps: {
276
276
  fieldValue: e.fieldValue,
277
277
  fieldText: e.fieldText,
@@ -287,7 +287,7 @@ function be(e) {
287
287
  function Te(e) {
288
288
  return {
289
289
  expectedTestProps: {
290
- unsupportedHookCall: O(e)
290
+ unsupportedHookCall: k(e)
291
291
  },
292
292
  requiresFormatter: !0,
293
293
  requiresFilter: !0,
@@ -335,10 +335,10 @@ function et(e, n) {
335
335
  s,
336
336
  i.testProps,
337
337
  c.expectedTestProps
338
- ), i.formatter === void 0 && R(o, s, "formatter"), c.requiresFilter && i.customFilter === void 0 && R(o, s, "customFilter"), c.requiresSort && i.customSort === void 0 && R(o, s, "customSort");
338
+ ), i.formatter === void 0 && _(o, s, "formatter"), c.requiresFilter && i.customFilter === void 0 && _(o, s, "customFilter"), c.requiresSort && i.customSort === void 0 && _(o, s, "customSort");
339
339
  return;
340
340
  }
341
- i.formatter !== void 0 && L(o, s, "formatter"), i.customFilter !== void 0 && L(o, s, "customFilter"), i.customSort !== void 0 && L(o, s, "customSort");
341
+ i.formatter !== void 0 && w(o, s, "formatter"), i.customFilter !== void 0 && w(o, s, "customFilter"), i.customSort !== void 0 && w(o, s, "customSort");
342
342
  }), o;
343
343
  }
344
344
  function p(e) {
@@ -387,21 +387,21 @@ function T(e) {
387
387
  })
388
388
  );
389
389
  }
390
- function Oe(e = "property") {
390
+ function ke(e = "property") {
391
391
  return t.fn(
392
392
  ({ property: n }) => y.createElement("div", {
393
393
  "data-testid": `${e}-${String(n)}`
394
394
  })
395
395
  );
396
396
  }
397
- function Ee(e = "data-src") {
397
+ function Fe(e = "data-src") {
398
398
  return t.fn(
399
399
  ({ src: n }) => y.createElement("span", {
400
400
  [e]: String(n)
401
401
  })
402
402
  );
403
403
  }
404
- function Fe(e = "divider") {
404
+ function Ee(e = "divider") {
405
405
  return t.fn(
406
406
  ({ customVariant: n, orientation: o }) => y.createElement("div", {
407
407
  "data-testid": e,
@@ -410,7 +410,7 @@ function Fe(e = "divider") {
410
410
  })
411
411
  );
412
412
  }
413
- function ke(e = "nav-link") {
413
+ function Oe(e = "nav-link") {
414
414
  return t.fn(
415
415
  ({ children: n, reloadDocument: o, text: r, to: a, ...i }) => y.createElement(
416
416
  "a",
@@ -444,7 +444,7 @@ function Ie(e = "window-base") {
444
444
  )
445
445
  );
446
446
  }
447
- function _e({
447
+ function Le({
448
448
  testId: e,
449
449
  disabledProp: n = "disabled",
450
450
  handlerProp: o = "onClick",
@@ -490,7 +490,7 @@ function C() {
490
490
  testProps: e
491
491
  }));
492
492
  }
493
- function w(e) {
493
+ function R(e) {
494
494
  return typeof e == "string" ? JSON.stringify(e) : $(e, {
495
495
  depth: 4,
496
496
  breakLength: 1 / 0,
@@ -498,9 +498,9 @@ function w(e) {
498
498
  sorted: !0
499
499
  });
500
500
  }
501
- function P(e, n, o, r, a) {
501
+ function M(e, n, o, r, a) {
502
502
  e.push(
503
- `${n} ${o}: expected ${w(r)}, got ${w(a)}`
503
+ `${n} ${o}: expected ${R(r)}, got ${R(a)}`
504
504
  );
505
505
  }
506
506
  function rt(e, n) {
@@ -513,37 +513,37 @@ function rt(e, n) {
513
513
  o.push(`${s} missing field at index ${a}`);
514
514
  return;
515
515
  }
516
- if (i.name !== r.name && P(
516
+ if (i.name !== r.name && M(
517
517
  o,
518
518
  s,
519
519
  "name",
520
520
  r.name,
521
521
  i.name
522
- ), g(i.dictionaryId, r.dictionaryId) || P(
522
+ ), g(i.dictionaryId, r.dictionaryId) || M(
523
523
  o,
524
524
  s,
525
525
  "dictionaryId",
526
526
  r.dictionaryId,
527
527
  i.dictionaryId
528
- ), i.type !== r.type && P(
528
+ ), i.type !== r.type && M(
529
529
  o,
530
530
  s,
531
531
  "type",
532
532
  r.type,
533
533
  i.type
534
- ), g(i.multiple, r.multiple) || P(
534
+ ), g(i.multiple, r.multiple) || M(
535
535
  o,
536
536
  s,
537
537
  "multiple",
538
538
  r.multiple,
539
539
  i.multiple
540
- ), g(i.presence, r.presence) || P(
540
+ ), g(i.presence, r.presence) || M(
541
541
  o,
542
542
  s,
543
543
  "presence",
544
544
  r.presence,
545
545
  i.presence
546
- ), r.defaultOperator !== void 0 && !g(i.defaultOperator, r.defaultOperator) && P(
546
+ ), r.defaultOperator !== void 0 && !g(i.defaultOperator, r.defaultOperator) && M(
547
547
  o,
548
548
  s,
549
549
  "defaultOperator",
@@ -552,19 +552,19 @@ function rt(e, n) {
552
552
  ), r.restritcOperatorsTo !== void 0 && !g(
553
553
  i.restritcOperatorsTo,
554
554
  r.restritcOperatorsTo
555
- ) && P(
555
+ ) && M(
556
556
  o,
557
557
  s,
558
558
  "restritcOperatorsTo",
559
559
  r.restritcOperatorsTo,
560
560
  i.restritcOperatorsTo
561
- ), r.defaultOperand1 !== void 0 && !g(i.defaultOperand1, r.defaultOperand1) && P(
561
+ ), r.defaultOperand1 !== void 0 && !g(i.defaultOperand1, r.defaultOperand1) && M(
562
562
  o,
563
563
  s,
564
564
  "defaultOperand1",
565
565
  r.defaultOperand1,
566
566
  i.defaultOperand1
567
- ), r.urlIcon !== void 0 && !g(i.urlIcon, r.urlIcon) && P(
567
+ ), r.urlIcon !== void 0 && !g(i.urlIcon, r.urlIcon) && M(
568
568
  o,
569
569
  s,
570
570
  "urlIcon",
@@ -580,7 +580,7 @@ function rt(e, n) {
580
580
  r.selectAsyncOptions && !g(
581
581
  i.selectAsyncOptions,
582
582
  r.selectAsyncOptions
583
- ) && P(
583
+ ) && M(
584
584
  o,
585
585
  s,
586
586
  "selectAsyncOptions",
@@ -589,13 +589,13 @@ function rt(e, n) {
589
589
  );
590
590
  }
591
591
  }), o) : (o.push(
592
- `[fields] type: expected "array", got ${w(typeof e)}`
592
+ `[fields] type: expected "array", got ${R(typeof e)}`
593
593
  ), o);
594
594
  }
595
- function Re(e = k) {
595
+ function _e(e = O) {
596
596
  return globalThis[e];
597
597
  }
598
- function Le(e) {
598
+ function we(e) {
599
599
  return e === void 0 ? "" : JSON.stringify(e);
600
600
  }
601
601
  function V(e) {
@@ -606,7 +606,7 @@ function V(e) {
606
606
  sorted: !0
607
607
  });
608
608
  }
609
- function E(e, n, o, r, a) {
609
+ function F(e, n, o, r, a) {
610
610
  e.push(
611
611
  `${n} ${o}: expected ${V(r)}, got ${V(a)}`
612
612
  );
@@ -621,31 +621,31 @@ function nt(e, n) {
621
621
  o.push(`${s} missing field at index ${a}`);
622
622
  return;
623
623
  }
624
- i.name !== r.name && E(
624
+ i.name !== r.name && F(
625
625
  o,
626
626
  s,
627
627
  "name",
628
628
  r.name,
629
629
  i.name
630
- ), g(i.dictionaryId, r.dictionaryId) || E(
630
+ ), g(i.dictionaryId, r.dictionaryId) || F(
631
631
  o,
632
632
  s,
633
633
  "dictionaryId",
634
634
  r.dictionaryId,
635
635
  i.dictionaryId
636
- ), i.type !== r.type && E(
636
+ ), i.type !== r.type && F(
637
637
  o,
638
638
  s,
639
639
  "type",
640
640
  r.type,
641
641
  i.type
642
- ), g(i.presence, r.presence) || E(
642
+ ), g(i.presence, r.presence) || F(
643
643
  o,
644
644
  s,
645
645
  "presence",
646
646
  r.presence,
647
647
  i.presence
648
- ), r.urlIcon !== void 0 && !g(i.urlIcon, r.urlIcon) && E(
648
+ ), r.urlIcon !== void 0 && !g(i.urlIcon, r.urlIcon) && F(
649
649
  o,
650
650
  s,
651
651
  "urlIcon",
@@ -656,7 +656,7 @@ function nt(e, n) {
656
656
  `[fields] type: expected "array", got ${V(typeof e)}`
657
657
  ), o);
658
658
  }
659
- function we() {
659
+ function Re() {
660
660
  return {
661
661
  hashLayers: {},
662
662
  mapActions: {
@@ -711,7 +711,7 @@ function at({
711
711
  console.error = n;
712
712
  });
713
713
  }
714
- function st(e = k) {
714
+ function st(e = O) {
715
715
  globalThis[e] = {
716
716
  current: null
717
717
  };
@@ -795,7 +795,7 @@ function ct({
795
795
  function W({
796
796
  baseModule: e = {},
797
797
  moduleOverrides: n = {},
798
- submitRefGlobalKey: o = k
798
+ submitRefGlobalKey: o = O
799
799
  } = {}) {
800
800
  const r = e.createValidationPartialObject, a = e.createValidationFullObject, i = e.createValidationSchema, s = e.getStepsAndValidationSchema;
801
801
  return {
@@ -803,7 +803,7 @@ function W({
803
803
  Accordion: p("accordion"),
804
804
  ContainerFlow: S("container-flow"),
805
805
  ActionsGroup: p("actions-group"),
806
- Divider: Fe(),
806
+ Divider: Ee(),
807
807
  ChipStatusFormatter: t.fn(({ label: c }) => /* @__PURE__ */ u("div", { "data-testid": "chip-status-formatter", children: c ?? "" })),
808
808
  BooleanFormatter: t.fn(({ value: c }) => /* @__PURE__ */ u("div", { "data-testid": "boolean-formatter", children: `${c ?? ""}` })),
809
809
  DateFormatter: t.fn(({ value: c }) => `${c ?? ""}`),
@@ -813,9 +813,9 @@ function W({
813
813
  getTypographyStyles: t.fn(() => ({})),
814
814
  getComponentClasses: t.fn(
815
815
  (c, d) => (Array.isArray(d) ? d : Object.keys(d)).reduce(
816
- (m, M) => ({
816
+ (m, P) => ({
817
817
  ...m,
818
- [M]: M
818
+ [P]: P
819
819
  }),
820
820
  {}
821
821
  )
@@ -847,7 +847,7 @@ function W({
847
847
  onSubmit: d,
848
848
  statusLoad: l
849
849
  }) => {
850
- const m = Re(o);
850
+ const m = _e(o);
851
851
  return m && d && (m.current = d), /* @__PURE__ */ u(
852
852
  "div",
853
853
  {
@@ -884,10 +884,10 @@ function W({
884
884
  DataGrid: t.fn(({ children: c }) => /* @__PURE__ */ u("div", { "data-testid": "data-grid", children: c })),
885
885
  Stack: v("stack"),
886
886
  Button: t.fn(
887
- ({ children: c, disabled: d, label: l, onClick: m, "data-testid": M }) => /* @__PURE__ */ u(
887
+ ({ children: c, disabled: d, label: l, onClick: m, "data-testid": P }) => /* @__PURE__ */ u(
888
888
  "button",
889
889
  {
890
- "data-testid": typeof M == "string" ? M : "button",
890
+ "data-testid": typeof P == "string" ? P : "button",
891
891
  disabled: !!d,
892
892
  onClick: m,
893
893
  children: String(l ?? c ?? "")
@@ -898,7 +898,7 @@ function W({
898
898
  WindowBase: Ie(),
899
899
  Card: v("card"),
900
900
  Typography: v("typography"),
901
- NavLink: ke(),
901
+ NavLink: Oe(),
902
902
  Tooltip: t.fn(
903
903
  ({
904
904
  children: c,
@@ -931,8 +931,8 @@ function W({
931
931
  }
932
932
  )
933
933
  ),
934
- Icon: Ee(),
935
- ReactJsonViewer: t.fn(({ data: c }) => /* @__PURE__ */ u("div", { "data-testid": "react-json-view", children: Le(c) })),
934
+ Icon: Fe(),
935
+ ReactJsonViewer: t.fn(({ data: c }) => /* @__PURE__ */ u("div", { "data-testid": "react-json-view", children: we(c) })),
936
936
  TabsNavigator: S("tabs-navigator", "TabsNavigator"),
937
937
  DistanceToNowFormatter: t.fn(
938
938
  ({
@@ -967,7 +967,7 @@ function W({
967
967
  (c, d, l) => d.filter((m) => c.has(l(m)))
968
968
  ),
969
969
  PaperForm: Ce(),
970
- PropertyValue: Oe(),
970
+ PropertyValue: ke(),
971
971
  RHFColorPicker: T("rhf-color"),
972
972
  RHFCheckbox: T("rhf-checkbox"),
973
973
  RHFHelperError: T("rhf-helper"),
@@ -995,7 +995,7 @@ function W({
995
995
  StepperNextButton: S("stepper-next"),
996
996
  StepperPrevButton: S("stepper-prev"),
997
997
  StepperSubmitButton: S("stepper-submit"),
998
- StepperCancelButton: _e({
998
+ StepperCancelButton: Le({
999
999
  testId: "stepper-cancel-button",
1000
1000
  handlerProp: "onClose",
1001
1001
  labelProp: "children"
@@ -1013,7 +1013,7 @@ function W({
1013
1013
  function dt({
1014
1014
  baseModule: e = {},
1015
1015
  moduleOverrides: n = {},
1016
- submitRefGlobalKey: o = k
1016
+ submitRefGlobalKey: o = O
1017
1017
  } = {}) {
1018
1018
  return {
1019
1019
  ...W({ baseModule: e, submitRefGlobalKey: o }),
@@ -1106,14 +1106,7 @@ function ut({
1106
1106
  RHFRadioGroup: t.fn(() => null)
1107
1107
  };
1108
1108
  }
1109
- function ft() {
1110
- return {
1111
- MF_ACTION_REQUEST_PARAM: "mfActionRequest",
1112
- completeMFAction: t.fn(),
1113
- isMFActionRequest: t.fn(() => !1)
1114
- };
1115
- }
1116
- function lt({
1109
+ function ft({
1117
1110
  baseModule: e = {},
1118
1111
  baseStoreState: n,
1119
1112
  environmentData: o,
@@ -1131,7 +1124,7 @@ function lt({
1131
1124
  const m = x({
1132
1125
  ...U,
1133
1126
  ...o
1134
- }), M = r ?? B(), h = ee(
1127
+ }), P = r ?? B(), h = ee(
1135
1128
  s
1136
1129
  ), b = te(s), K = n ?? {}, z = l ?? {
1137
1130
  flagsActions: {
@@ -1177,16 +1170,16 @@ function lt({
1177
1170
  EMMIT_EVENT_HOST_EMERGE_WINDOW: "EMMIT_EVENT_HOST_EMERGE_WINDOW"
1178
1171
  },
1179
1172
  getPropertyByString: t.fn(
1180
- (f, I, _) => {
1173
+ (f, I, L) => {
1181
1174
  if (f == null)
1182
- return _;
1175
+ return L;
1183
1176
  try {
1184
1177
  return I.split(".").reduce(
1185
1178
  (Z, X) => Z?.[X],
1186
1179
  f
1187
- ) ?? _;
1180
+ ) ?? L;
1188
1181
  } catch {
1189
- return _;
1182
+ return L;
1190
1183
  }
1191
1184
  }
1192
1185
  ),
@@ -1202,7 +1195,7 @@ function lt({
1202
1195
  useFlagsStore: t.fn(
1203
1196
  (f) => f(z)
1204
1197
  ),
1205
- useHostTools: t.fn(() => M),
1198
+ useHostTools: t.fn(() => P),
1206
1199
  useModuleDictionary: t.fn(() => ({
1207
1200
  getLabel: t.fn(i),
1208
1201
  getModuleLabel: t.fn(() => a)
@@ -1245,7 +1238,7 @@ function lt({
1245
1238
  ...c
1246
1239
  };
1247
1240
  }
1248
- function pt({
1241
+ function lt({
1249
1242
  baseModule: e = {},
1250
1243
  moduleOverrides: n = {}
1251
1244
  } = {}) {
@@ -1308,7 +1301,7 @@ function pt({
1308
1301
  ...n
1309
1302
  };
1310
1303
  }
1311
- function mt({
1304
+ function pt({
1312
1305
  baseModule: e = {},
1313
1306
  moduleOverrides: n = {}
1314
1307
  } = {}) {
@@ -1347,7 +1340,7 @@ function mt({
1347
1340
  ...n
1348
1341
  };
1349
1342
  }
1350
- function yt({
1343
+ function mt({
1351
1344
  createComponentFieldImplementation: e
1352
1345
  } = {}) {
1353
1346
  return {
@@ -1358,7 +1351,7 @@ function yt({
1358
1351
  )
1359
1352
  };
1360
1353
  }
1361
- function gt({
1354
+ function yt({
1362
1355
  baseModule: e = {},
1363
1356
  domEventData: n,
1364
1357
  moduleOverrides: o = {},
@@ -1382,7 +1375,7 @@ function gt({
1382
1375
  ...o
1383
1376
  };
1384
1377
  }
1385
- function vt({
1378
+ function gt({
1386
1379
  baseModule: e = {},
1387
1380
  dataGridPersistenceData: n,
1388
1381
  dynamicFilterAndSortData: o,
@@ -1413,7 +1406,7 @@ function vt({
1413
1406
  popupsActions: {
1414
1407
  addPopup: t.fn()
1415
1408
  }
1416
- }, M = s ?? {
1409
+ }, P = s ?? {
1417
1410
  getCookie: t.fn(),
1418
1411
  getWindowId: t.fn(() => "test-window-id"),
1419
1412
  setCookie: t.fn(),
@@ -1431,11 +1424,11 @@ function vt({
1431
1424
  ),
1432
1425
  useWatchTyped: t.fn(() => {
1433
1426
  }),
1434
- useWindowToolsMF: t.fn(() => M),
1427
+ useWindowToolsMF: t.fn(() => P),
1435
1428
  ...a
1436
1429
  };
1437
1430
  }
1438
- function ht({
1431
+ function vt({
1439
1432
  baseModule: e = {},
1440
1433
  environmentData: n,
1441
1434
  getLabel: o = (d, l) => l ? `label:${d}:${l}` : `label:${d}`,
@@ -1450,7 +1443,7 @@ function ht({
1450
1443
  ...n
1451
1444
  }), l = r ?? B(), m = s ?? {
1452
1445
  hasPrivilege: t.fn(() => !0)
1453
- }, M = c ?? {
1446
+ }, P = c ?? {
1454
1447
  networkOperation: t.fn()
1455
1448
  };
1456
1449
  return {
@@ -1466,17 +1459,17 @@ function ht({
1466
1459
  })),
1467
1460
  useModulePrivileges: t.fn(() => m),
1468
1461
  useModuleSkeleton: t.fn(() => !1),
1469
- useNetwork: t.fn(() => M),
1462
+ useNetwork: t.fn(() => P),
1470
1463
  ...a
1471
1464
  };
1472
1465
  }
1473
- function St({
1466
+ function ht({
1474
1467
  baseModule: e = {},
1475
1468
  mapStoreState: n,
1476
1469
  moduleOverrides: o = {}
1477
1470
  } = {}) {
1478
1471
  const r = {
1479
- ...we(),
1472
+ ...Re(),
1480
1473
  ...n
1481
1474
  };
1482
1475
  return {
@@ -1544,30 +1537,16 @@ function St({
1544
1537
  ...o
1545
1538
  };
1546
1539
  }
1547
- function Mt() {
1548
- const e = { scopeKey: "test-scope", refreshKey: void 0 }, n = {
1549
- scopeKey: "test-scope",
1550
- publishResourceChange: t.fn(async (r) => r.operationId ?? "operation-test"),
1551
- reportFailure: t.fn()
1552
- }, o = t.fn(async () => ({ status: "cancelled" }));
1553
- return {
1554
- PERSONS_RESOURCE: "rt_persons",
1555
- PROTOCOL_PERSON_REPORT_METHODS_RESOURCE: "rt_protocol_person_report_methods",
1556
- useResourceInvalidation: t.fn(() => e),
1557
- useResourceMutation: t.fn(() => n),
1558
- useEntityReferenceAdd: t.fn(() => o)
1559
- };
1560
- }
1561
1540
  const He = "#1E96DC", Ne = /* @__PURE__ */ new Set(["state", "updatedAt", "value"]);
1562
1541
  var G = /* @__PURE__ */ ((e) => (e[e.off = 0] = "off", e[e.moving = 1] = "moving", e[e.stopped = 2] = "stopped", e[e.stoppedRalenti = 3] = "stoppedRalenti", e[e.stoppedExcesiveRalenti = 4] = "stoppedExcesiveRalenti", e[e.towing = 5] = "towing", e[e.powerSaving = 6] = "powerSaving", e[e.maxSpeed = 7] = "maxSpeed", e[e.notDetectable = 250] = "notDetectable", e))(G || {}), J = /* @__PURE__ */ ((e) => (e[e.reliable = 0] = "reliable", e[e.acceptable = 1] = "acceptable", e[e.noSignal = 2] = "noSignal", e))(J || {});
1563
- function F(e) {
1542
+ function E(e) {
1564
1543
  if (typeof e != "object" || e === null || Array.isArray(e))
1565
1544
  return !1;
1566
1545
  const n = Object.getPrototypeOf(e);
1567
1546
  return n === Object.prototype || n === null;
1568
1547
  }
1569
1548
  function N(e) {
1570
- return F(e) ? Object.keys(e).some((n) => Ne.has(n)) : !1;
1549
+ return E(e) ? Object.keys(e).some((n) => Ne.has(n)) : !1;
1571
1550
  }
1572
1551
  function qe(e, n) {
1573
1552
  const o = e.updatedAt, r = n.updatedAt;
@@ -1601,7 +1580,7 @@ function j(e, n) {
1601
1580
  };
1602
1581
  if (Array.isArray(n))
1603
1582
  return n;
1604
- if (F(e) && F(n)) {
1583
+ if (E(e) && E(n)) {
1605
1584
  let o = n, r = !1;
1606
1585
  return Object.entries(n).forEach(([a, i]) => {
1607
1586
  const s = j(
@@ -1619,9 +1598,9 @@ function Ue(e, n) {
1619
1598
  e,
1620
1599
  n
1621
1600
  );
1622
- return F(o) ? o : n;
1601
+ return E(o) ? o : n;
1623
1602
  }
1624
- function Pt({
1603
+ function St({
1625
1604
  baseModule: e = {},
1626
1605
  moduleOverrides: n = {},
1627
1606
  surface: o = "root"
@@ -1643,7 +1622,7 @@ function Pt({
1643
1622
  ...n
1644
1623
  };
1645
1624
  }
1646
- function At({
1625
+ function Pt({
1647
1626
  baseModule: e = {},
1648
1627
  moduleOverrides: n = {}
1649
1628
  } = {}) {
@@ -1669,7 +1648,7 @@ function At({
1669
1648
  ...n
1670
1649
  };
1671
1650
  }
1672
- function bt({
1651
+ function Mt({
1673
1652
  baseModule: e = {},
1674
1653
  moduleOverrides: n = {}
1675
1654
  } = {}) {
@@ -1705,7 +1684,7 @@ function bt({
1705
1684
  ...n
1706
1685
  };
1707
1686
  }
1708
- function Tt({
1687
+ function At({
1709
1688
  baseModule: e = {},
1710
1689
  moduleOverrides: n = {},
1711
1690
  useFormContextData: o = {}
@@ -1728,12 +1707,12 @@ function Tt({
1728
1707
  ...n
1729
1708
  };
1730
1709
  }
1731
- function Ct() {
1710
+ function bt() {
1732
1711
  return {
1733
1712
  Resizable: t.fn(({ children: e }) => /* @__PURE__ */ u("div", { "data-testid": "resizable", children: e }))
1734
1713
  };
1735
1714
  }
1736
- function Dt({
1715
+ function Tt({
1737
1716
  baseModule: e = {},
1738
1717
  moduleOverrides: n = {},
1739
1718
  useMapData: o,
@@ -1831,11 +1810,10 @@ function Dt({
1831
1810
  };
1832
1811
  }
1833
1812
  export {
1834
- Dt as $,
1835
1813
  H as A,
1836
1814
  ot as B,
1837
1815
  it as C,
1838
- k as D,
1816
+ O as D,
1839
1817
  at as E,
1840
1818
  st as F,
1841
1819
  ct as G,
@@ -1846,19 +1824,18 @@ export {
1846
1824
  pt as L,
1847
1825
  ne as M,
1848
1826
  mt as N,
1849
- yt as O,
1850
- W as P,
1851
- gt as Q,
1852
- $e as R,
1827
+ W as O,
1828
+ yt as P,
1829
+ $e as Q,
1830
+ gt as R,
1853
1831
  vt as S,
1854
1832
  ht as T,
1855
1833
  St as U,
1856
- Mt as V,
1857
- Pt as W,
1834
+ Pt as V,
1835
+ Mt as W,
1858
1836
  At as X,
1859
1837
  bt as Y,
1860
1838
  Tt as Z,
1861
- Ct as _,
1862
1839
  oe as a,
1863
1840
  ie as b,
1864
1841
  ae as c,
@@ -1872,17 +1849,17 @@ export {
1872
1849
  v as k,
1873
1850
  De as l,
1874
1851
  T as m,
1875
- Oe as n,
1876
- Ee as o,
1877
- Fe as p,
1878
- ke as q,
1852
+ ke as n,
1853
+ Fe as o,
1854
+ Ee as p,
1855
+ Oe as q,
1879
1856
  Ie as r,
1880
- _e as s,
1857
+ Le as s,
1881
1858
  tt as t,
1882
1859
  C as u,
1883
1860
  rt as v,
1884
- Re as w,
1885
- Le as x,
1861
+ _e as w,
1862
+ we as x,
1886
1863
  nt as y,
1887
- we as z
1864
+ Re as z
1888
1865
  };
package/index.js CHANGED
@@ -1,80 +1,78 @@
1
1
  import { act as o } from "react";
2
- import { afterAll as r, afterEach as c, beforeAll as s, beforeEach as M, describe as l, expect as n, it as i, test as k, vi as d } from "vitest";
2
+ import { afterAll as r, afterEach as c, beforeAll as s, beforeEach as M, describe as l, expect as n, it as i, test as k, vi as p } from "vitest";
3
3
  import { cleanup as u, fireEvent as m, renderHook as C, screen as f, waitFor as g, within as A } from "@testing-library/react";
4
4
  import { default as E } from "@testing-library/user-event";
5
- import { c as v } from "./chunks/render-CsuV8xqo.js";
6
- import { D as R, a as x, M as L, f as _, v as D, y as h, s as G, k as O, h as b, u as B, z as H, p as I, l as y, o as T, Q as w, G as N, H as W, K, I as z, O as U, L as V, N as Y, P as Z, J as j, R as q, S as J, T as Q, U as X, W as $, X as ee, Y as ae, V as oe, m as te, q as re, j as ce, n as se, _ as Me, Z as le, $ as ne, i as ie, t as ke, r as de, d as pe, b as ue, c as me, e as Ce, g as fe, B as ge, A as Ae, C as Fe, w as Ee, E as Pe, F as ve, x as Se } from "./chunks/reactLeaflet-CYEpmWXL.js";
5
+ import { c as S } from "./chunks/render-CsuV8xqo.js";
6
+ import { D as x, a as L, M as R, f as D, v as _, y as G, s as h, k as b, h as B, u as H, z as I, p as O, l as T, o as w, P as y, G as N, H as W, J as K, I as U, N as V, K as z, L as Y, O as Z, Q as j, R as q, S as J, T as Q, U as X, V as $, W as ee, m as ae, q as oe, j as te, n as re, Y as ce, X as se, Z as Me, i as le, t as ne, r as ie, d as ke, b as pe, c as de, e as ue, g as me, B as Ce, A as fe, C as ge, w as Ae, E as Fe, F as Ee, x as Pe } from "./chunks/reactLeaflet-Ca5S8G_T.js";
7
7
  export {
8
- R as DEFAULT_RHF_SUBMIT_REF_GLOBAL_KEY,
9
- x as M4L_APP_DATAGRID_SEMANTIC_WIDTHS,
10
- L as M4L_APP_WINDOW_SIZES,
8
+ x as DEFAULT_RHF_SUBMIT_REF_GLOBAL_KEY,
9
+ L as M4L_APP_DATAGRID_SEMANTIC_WIDTHS,
10
+ R as M4L_APP_WINDOW_SIZES,
11
11
  o as act,
12
12
  r as afterAll,
13
13
  c as afterEach,
14
- _ as assertColumnConfigs,
15
- D as assertFilterFields,
16
- h as assertSortFields,
14
+ D as assertColumnConfigs,
15
+ _ as assertFilterFields,
16
+ G as assertSortFields,
17
17
  s as beforeAll,
18
18
  M as beforeEach,
19
19
  u as cleanup,
20
- G as createActionButtonComponentMock,
21
- O as createChildrenContainerComponentMock,
22
- b as createChildrenDivComponentMock,
23
- B as createDataGridColumnHookMock,
24
- H as createDefaultM4lPackageGclickMapStoreState,
25
- I as createDividerComponentMock,
26
- y as createHelmetPageComponentMock,
27
- T as createIconComponentMock,
28
- w as createLeafletModuleMock,
20
+ h as createActionButtonComponentMock,
21
+ b as createChildrenContainerComponentMock,
22
+ B as createChildrenDivComponentMock,
23
+ H as createDataGridColumnHookMock,
24
+ I as createDefaultM4lPackageGclickMapStoreState,
25
+ O as createDividerComponentMock,
26
+ T as createHelmetPageComponentMock,
27
+ w as createIconComponentMock,
28
+ y as createLeafletModuleMock,
29
29
  N as createM4lAppBaseModuleMock,
30
30
  W as createM4lAppComponentsModuleMock,
31
31
  K as createM4lAppCoreModuleMock,
32
- z as createM4lAppFormComponentsModuleOverrides,
33
- U as createM4lAppFormLayoutsModuleOverrides,
34
- V as createM4lAppGraphicsModuleMock,
32
+ U as createM4lAppFormComponentsModuleOverrides,
33
+ V as createM4lAppFormLayoutsModuleOverrides,
34
+ z as createM4lAppGraphicsModuleMock,
35
35
  Y as createM4lAppLayoutsModuleMock,
36
36
  Z as createM4lBaseComponentsModuleMock,
37
- j as createM4lMFActionModuleOverrides,
38
- q as createM4lPackageBaseModuleMock,
39
- J as createM4lPackageComponentsModuleMock,
40
- Q as createM4lPackageCoreModuleMock,
41
- X as createM4lPackageGclickModuleMock,
42
- $ as createM4lPackageGclickRealtimeModuleMock,
43
- ee as createM4lPackageGraphicsModuleMock,
44
- ae as createM4lPackageLayoutsModuleMock,
45
- oe as createM4lResourceSynchronizationModuleOverrides,
46
- te as createNamedFieldComponentMock,
47
- re as createNavLinkComponentMock,
48
- ce as createPaperFormComponentMock,
49
- se as createPropertyValueComponentMock,
50
- Me as createReResizableModuleMock,
51
- le as createReactHookFormModuleMock,
52
- ne as createReactLeafletModuleMock,
53
- ie as createStaticDivComponentMock,
54
- ke as createSuspenseLoadableComponentMock,
55
- de as createWindowBaseComponentMock,
56
- pe as defaultM4lAppEnvironmentOverrides,
57
- ue as defaultM4lPackageEnvironmentOverrides,
37
+ j as createM4lPackageBaseModuleMock,
38
+ q as createM4lPackageComponentsModuleMock,
39
+ J as createM4lPackageCoreModuleMock,
40
+ Q as createM4lPackageGclickModuleMock,
41
+ X as createM4lPackageGclickRealtimeModuleMock,
42
+ $ as createM4lPackageGraphicsModuleMock,
43
+ ee as createM4lPackageLayoutsModuleMock,
44
+ ae as createNamedFieldComponentMock,
45
+ oe as createNavLinkComponentMock,
46
+ te as createPaperFormComponentMock,
47
+ re as createPropertyValueComponentMock,
48
+ ce as createReResizableModuleMock,
49
+ se as createReactHookFormModuleMock,
50
+ Me as createReactLeafletModuleMock,
51
+ le as createStaticDivComponentMock,
52
+ ne as createSuspenseLoadableComponentMock,
53
+ ie as createWindowBaseComponentMock,
54
+ ke as defaultM4lAppEnvironmentOverrides,
55
+ pe as defaultM4lPackageEnvironmentOverrides,
58
56
  l as describe,
59
- me as distanceToNowFormatterFixture,
57
+ de as distanceToNowFormatterFixture,
60
58
  n as expect,
61
59
  m as fireEvent,
62
- Ce as gclickGnssMotionStatusEnumFixture,
63
- fe as gclickGnssSignalEnumFixture,
64
- ge as getMissingModuleMockExports,
65
- Ae as getModuleExportContractKind,
66
- Fe as getModuleMockKindMismatches,
67
- Ee as getRHFSubmitRef,
68
- Pe as installConsoleErrorFilter,
69
- ve as installRhfOnSubmitRef,
60
+ ue as gclickGnssMotionStatusEnumFixture,
61
+ me as gclickGnssSignalEnumFixture,
62
+ Ce as getMissingModuleMockExports,
63
+ fe as getModuleExportContractKind,
64
+ ge as getModuleMockKindMismatches,
65
+ Ae as getRHFSubmitRef,
66
+ Fe as installConsoleErrorFilter,
67
+ Ee as installRhfOnSubmitRef,
70
68
  i as it,
71
- v as render,
69
+ S as render,
72
70
  C as renderHook,
73
71
  f as screen,
74
- Se as stringifyViewerData,
72
+ Pe as stringifyViewerData,
75
73
  k as test,
76
74
  E as userEvent,
77
- d as vi,
75
+ p as vi,
78
76
  g as waitFor,
79
77
  A as within
80
78
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@m4l/testing",
3
- "version": "1.2.1-beta-docs-autocomplete-async-with-add-mf-sync.0",
3
+ "version": "1.2.1-beta-fix-reports-viewer-chart-tab-resize.0",
4
4
  "description": "Shared M4L testing contracts for React, Vitest and Playwright",
5
5
  "license": "UNLICENSED",
6
6
  "engines": {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Stable module id used by shared testing fixtures that need a deterministic
2
+ * Stable module id used by shared testing fixtures that need a deterministic.
3
3
  * module identity without coupling the fixture back to one package.
4
4
  */
5
5
  export declare const testModuleId = "testing";
@@ -4,6 +4,6 @@ import type { HostUIConfigFixture } from '../types';
4
4
  * no-auth shell can render deterministically without hitting remote storage.
5
5
  */
6
6
  export declare function installHostUiConfigAssetRoutes(options: {
7
- page: import('@playwright/test').Page;
7
+ page: import('@playwright/test').Page | import('@playwright/test').BrowserContext;
8
8
  uiConfig?: Partial<HostUIConfigFixture>;
9
9
  }): Promise<void>;
@@ -1,4 +1,4 @@
1
- import type { Page } from '@playwright/test';
1
+ import type { BrowserContext, Page } from '@playwright/test';
2
2
  /**
3
3
  * Shared UI-config payload shape used by host-style Playwright mocks.
4
4
  * Keep this contract local to the testing library so app E2E projects can
@@ -206,7 +206,7 @@ export type HostMutationFixture = HostMutationSuccessFixture | HostMutationError
206
206
  * Installs the shared UI-config bootstrap route.
207
207
  */
208
208
  export interface InstallHostUIConfigRouteOptions {
209
- page: Page;
209
+ page: Page | BrowserContext;
210
210
  uiConfig?: Partial<HostUIConfigFixture>;
211
211
  status?: number;
212
212
  delayMs?: number;
@@ -230,7 +230,7 @@ export interface InstallHostGuestSessionRouteOptions {
230
230
  * Installs the shared authenticated session bootstrap route.
231
231
  */
232
232
  export interface InstallHostAuthenticatedSessionRouteOptions {
233
- page: Page;
233
+ page: Page | BrowserContext;
234
234
  session?: Partial<HostAuthenticatedSessionUserFixture>;
235
235
  status?: number;
236
236
  delayMs?: number;
@@ -239,14 +239,14 @@ export interface InstallHostAuthenticatedSessionRouteOptions {
239
239
  * Installs the shared locale bootstrap route.
240
240
  */
241
241
  export interface InstallHostLocaleRouteOptions {
242
- page: Page;
242
+ page: Page | BrowserContext;
243
243
  locale?: Partial<HostLocaleFixture>;
244
244
  }
245
245
  /**
246
246
  * Installs the shared authenticated user-preferences bootstrap route.
247
247
  */
248
248
  export interface InstallHostUserPreferencesRouteOptions {
249
- page: Page;
249
+ page: Page | BrowserContext;
250
250
  userPreferences?: Partial<HostUserPreferencesFixture>;
251
251
  status?: number;
252
252
  delayMs?: number;
@@ -255,7 +255,7 @@ export interface InstallHostUserPreferencesRouteOptions {
255
255
  * Installs the shared no-auth dictionary bootstrap route.
256
256
  */
257
257
  export interface InstallHostModuleDictionaryRouteOptions {
258
- page: Page;
258
+ page: Page | BrowserContext;
259
259
  moduleId: string;
260
260
  moduleDictionary?: HostModuleDictionaryFixture;
261
261
  isAuth?: boolean;
@@ -272,21 +272,21 @@ export interface InstallHostAuthenticatedMfModuleDictionaryRouteOptions extends
272
272
  * Installs the shared authenticated areas route.
273
273
  */
274
274
  export interface InstallHostAreasRouteOptions {
275
- page: Page;
275
+ page: Page | BrowserContext;
276
276
  areas?: HostAreaFixture[];
277
277
  }
278
278
  /**
279
279
  * Installs the shared cookies route used by the platform shell.
280
280
  */
281
281
  export interface InstallHostCookiesRouteOptions {
282
- page: Page;
282
+ page: Page | BrowserContext;
283
283
  cookies?: HostCookieFixture[];
284
284
  }
285
285
  /**
286
286
  * Installs the shared menus route used by the platform shell.
287
287
  */
288
288
  export interface InstallHostMenusRouteOptions {
289
- page: Page;
289
+ page: Page | BrowserContext;
290
290
  menuData?: HostMenuItemFixture[];
291
291
  /**
292
292
  * Rows served to the **account popover** (`menus?position=1`), the door the host
@@ -321,7 +321,7 @@ export interface InstallHostGuestBootstrapRoutesOptions {
321
321
  * Installs a complete authenticated bootstrap baseline for host-style apps.
322
322
  */
323
323
  export interface InstallHostAuthenticatedBootstrapRoutesOptions {
324
- page: Page;
324
+ page: Page | BrowserContext;
325
325
  moduleId: string;
326
326
  uiConfig?: Partial<HostUIConfigFixture>;
327
327
  uiConfigRouteOptions?: HostUiConfigRouteControlOptions;
@@ -1,4 +1,4 @@
1
- import type { CreateM4lAppComponentsModuleMockOptions, CreateM4lAppFormComponentsModuleOverridesOptions, MFActionModuleOverrides, VitestModuleMockExports } from '../../types';
1
+ import type { CreateM4lAppComponentsModuleMockOptions, CreateM4lAppFormComponentsModuleOverridesOptions, VitestModuleMockExports } from '../../types';
2
2
  /**
3
3
  * Builds the shared `@m4l/components` mock payload used by M4L app test
4
4
  * setups.
@@ -18,5 +18,3 @@ export declare function createM4lAppComponentsModuleMock({ baseModule, moduleOve
18
18
  * `moduleOverrides` payloads.
19
19
  */
20
20
  export declare function createM4lAppFormComponentsModuleOverrides({ dynamicMFParameters, }?: CreateM4lAppFormComponentsModuleOverridesOptions): VitestModuleMockExports;
21
- /** Isolate MF completion observers for app tests while leaving the standard factory's real exports intact. */
22
- export declare function createM4lMFActionModuleOverrides(): MFActionModuleOverrides;
@@ -1,4 +1,4 @@
1
- import type { CreateM4lPackageGclickModuleMockOptions, ResourceSynchronizationModuleOverrides, VitestModuleMockExports } from '../../types';
1
+ import type { CreateM4lPackageGclickModuleMockOptions, VitestModuleMockExports } from '../../types';
2
2
  /**
3
3
  * Builds the shared `@m4l/gclick` mock payload used by tests that depend on
4
4
  * the exact runtime package.
@@ -8,5 +8,3 @@ import type { CreateM4lPackageGclickModuleMockOptions, ResourceSynchronizationMo
8
8
  * on orchestration logic.
9
9
  */
10
10
  export declare function createM4lPackageGclickModuleMock({ baseModule, mapStoreState, moduleOverrides, }?: CreateM4lPackageGclickModuleMockOptions): VitestModuleMockExports;
11
- /** Supply isolated resource hooks and stable identities without loading unrelated GClick feature runtimes. */
12
- export declare function createM4lResourceSynchronizationModuleOverrides(): ResourceSynchronizationModuleOverrides;
@@ -1,6 +1,5 @@
1
1
  import type { EnvironmentFixture, HostToolsFixture, UserPreferencesFixture } from '../../mocks/src/index';
2
2
  import type React from 'react';
3
- import type { Mock } from 'vitest';
4
3
  export type UnknownRecord = Record<string, unknown>;
5
4
  export type VitestModuleMockExports = Record<string, unknown>;
6
5
  export type PropsWithChildren = {
@@ -68,12 +67,6 @@ export interface CreateM4lAppComponentsModuleMockOptions extends CreateVitestMod
68
67
  export interface CreateM4lAppFormComponentsModuleOverridesOptions {
69
68
  dynamicMFParameters?: UnknownRecord;
70
69
  }
71
- /** Describe opt-in MF completion collaborators without importing the runtime component package. */
72
- export type MFActionModuleOverrides = {
73
- MF_ACTION_REQUEST_PARAM: 'mfActionRequest';
74
- completeMFAction: Mock<(hostTools: unknown, request: unknown, outcome: unknown) => void>;
75
- isMFActionRequest: Mock<(value: unknown) => boolean>;
76
- };
77
70
  export interface CreateM4lAppFormLayoutsModuleOverridesOptions {
78
71
  createComponentFieldImplementation?: (field: UnknownRecord) => unknown;
79
72
  }
@@ -102,31 +95,6 @@ export type CreateM4lPackageGraphicsModuleMockOptions = CreateVitestModuleMockOp
102
95
  export interface CreateM4lPackageGclickModuleMockOptions extends CreateVitestModuleMockOptions {
103
96
  mapStoreState?: UnknownRecord;
104
97
  }
105
- /** Mirrors the committed-mutation input needed by resource synchronization mocks. */
106
- export interface ResourceMutationMockInput {
107
- mutation: 'created' | 'updated' | 'deleted' | 'revalidate';
108
- entityId: string;
109
- operationId?: string;
110
- requestId?: string;
111
- requesterWindowId?: string;
112
- }
113
- /** Names resource-hook mocks through Vitest's public types for portable declarations. */
114
- export type ResourceSynchronizationModuleOverrides = {
115
- PERSONS_RESOURCE: 'rt_persons';
116
- PROTOCOL_PERSON_REPORT_METHODS_RESOURCE: 'rt_protocol_person_report_methods';
117
- useResourceInvalidation: Mock<() => {
118
- scopeKey: string;
119
- refreshKey: string | undefined;
120
- }>;
121
- useResourceMutation: Mock<() => {
122
- scopeKey: string;
123
- publishResourceChange: Mock<(change: ResourceMutationMockInput) => Promise<string>>;
124
- reportFailure: Mock;
125
- }>;
126
- useEntityReferenceAdd: Mock<() => Mock<() => Promise<{
127
- status: 'cancelled';
128
- }>>>;
129
- };
130
98
  export interface CreateM4lPackageGclickRealtimeModuleMockOptions extends CreateVitestModuleMockOptions {
131
99
  surface?: 'root' | 'payload' | 'contracts';
132
100
  }
package/vitest/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { D as o, a as t, M as c, f as s, v as r, y as M, s as l, k as n, h as i, u as k, z as d, p as u, l as p, o as m, Q as C, G as g, H as F, K as A, I as P, O as S, L as R, N as v, P as E, J as L, R as _, S as f, T as D, U as G, W as O, X as h, Y as B, V as I, m as x, q as y, j as H, n as T, _ as N, Z as b, $ as W, i as w, t as K, r as z, d as U, b as V, c as Y, e as Z, g as j, B as q, A as J, C as Q, w as X, E as $, F as ee, x as ae } from "../chunks/reactLeaflet-CYEpmWXL.js";
1
+ import { D as o, a as t, M as c, f as s, v as r, y as M, s as l, k as n, h as i, u as k, z as p, p as d, l as u, o as m, P as C, G as g, H as F, J as A, I as P, N as S, K as E, L, O as R, Q as f, R as D, S as _, T as v, U as G, V as B, W as I, m as O, q as h, j as x, n as H, Y as T, X as y, Z as N, i as b, t as W, r as w, d as K, b as U, c as V, e as z, g as Y, B as Z, A as j, C as q, w as J, E as Q, F as X, x as $ } from "../chunks/reactLeaflet-Ca5S8G_T.js";
2
2
  export {
3
3
  o as DEFAULT_RHF_SUBMIT_REF_GLOBAL_KEY,
4
4
  t as M4L_APP_DATAGRID_SEMANTIC_WIDTHS,
@@ -10,9 +10,9 @@ export {
10
10
  n as createChildrenContainerComponentMock,
11
11
  i as createChildrenDivComponentMock,
12
12
  k as createDataGridColumnHookMock,
13
- d as createDefaultM4lPackageGclickMapStoreState,
14
- u as createDividerComponentMock,
15
- p as createHelmetPageComponentMock,
13
+ p as createDefaultM4lPackageGclickMapStoreState,
14
+ d as createDividerComponentMock,
15
+ u as createHelmetPageComponentMock,
16
16
  m as createIconComponentMock,
17
17
  C as createLeafletModuleMock,
18
18
  g as createM4lAppBaseModuleMock,
@@ -20,38 +20,36 @@ export {
20
20
  A as createM4lAppCoreModuleMock,
21
21
  P as createM4lAppFormComponentsModuleOverrides,
22
22
  S as createM4lAppFormLayoutsModuleOverrides,
23
- R as createM4lAppGraphicsModuleMock,
24
- v as createM4lAppLayoutsModuleMock,
25
- E as createM4lBaseComponentsModuleMock,
26
- L as createM4lMFActionModuleOverrides,
27
- _ as createM4lPackageBaseModuleMock,
28
- f as createM4lPackageComponentsModuleMock,
29
- D as createM4lPackageCoreModuleMock,
30
- G as createM4lPackageGclickModuleMock,
31
- O as createM4lPackageGclickRealtimeModuleMock,
32
- h as createM4lPackageGraphicsModuleMock,
33
- B as createM4lPackageLayoutsModuleMock,
34
- I as createM4lResourceSynchronizationModuleOverrides,
35
- x as createNamedFieldComponentMock,
36
- y as createNavLinkComponentMock,
37
- H as createPaperFormComponentMock,
38
- T as createPropertyValueComponentMock,
39
- N as createReResizableModuleMock,
40
- b as createReactHookFormModuleMock,
41
- W as createReactLeafletModuleMock,
42
- w as createStaticDivComponentMock,
43
- K as createSuspenseLoadableComponentMock,
44
- z as createWindowBaseComponentMock,
45
- U as defaultM4lAppEnvironmentOverrides,
46
- V as defaultM4lPackageEnvironmentOverrides,
47
- Y as distanceToNowFormatterFixture,
48
- Z as gclickGnssMotionStatusEnumFixture,
49
- j as gclickGnssSignalEnumFixture,
50
- q as getMissingModuleMockExports,
51
- J as getModuleExportContractKind,
52
- Q as getModuleMockKindMismatches,
53
- X as getRHFSubmitRef,
54
- $ as installConsoleErrorFilter,
55
- ee as installRhfOnSubmitRef,
56
- ae as stringifyViewerData
23
+ E as createM4lAppGraphicsModuleMock,
24
+ L as createM4lAppLayoutsModuleMock,
25
+ R as createM4lBaseComponentsModuleMock,
26
+ f as createM4lPackageBaseModuleMock,
27
+ D as createM4lPackageComponentsModuleMock,
28
+ _ as createM4lPackageCoreModuleMock,
29
+ v as createM4lPackageGclickModuleMock,
30
+ G as createM4lPackageGclickRealtimeModuleMock,
31
+ B as createM4lPackageGraphicsModuleMock,
32
+ I as createM4lPackageLayoutsModuleMock,
33
+ O as createNamedFieldComponentMock,
34
+ h as createNavLinkComponentMock,
35
+ x as createPaperFormComponentMock,
36
+ H as createPropertyValueComponentMock,
37
+ T as createReResizableModuleMock,
38
+ y as createReactHookFormModuleMock,
39
+ N as createReactLeafletModuleMock,
40
+ b as createStaticDivComponentMock,
41
+ W as createSuspenseLoadableComponentMock,
42
+ w as createWindowBaseComponentMock,
43
+ K as defaultM4lAppEnvironmentOverrides,
44
+ U as defaultM4lPackageEnvironmentOverrides,
45
+ V as distanceToNowFormatterFixture,
46
+ z as gclickGnssMotionStatusEnumFixture,
47
+ Y as gclickGnssSignalEnumFixture,
48
+ Z as getMissingModuleMockExports,
49
+ j as getModuleExportContractKind,
50
+ q as getModuleMockKindMismatches,
51
+ J as getRHFSubmitRef,
52
+ Q as installConsoleErrorFilter,
53
+ X as installRhfOnSubmitRef,
54
+ $ as stringifyViewerData
57
55
  };