@m4l/testing 1.2.0 → 1.2.1-beta-docs-autocomplete-async-with-add-mf-sync.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
@@ -312,6 +312,7 @@ Current shared Vitest helpers in `@m4l/testing/vitest` include:
312
312
  - `createM4lAppFormLayoutsModuleOverrides(...)`
313
313
  - `createM4lAppCoreModuleMock(...)`
314
314
  - `createM4lPackageGclickModuleMock(...)`
315
+ - `createM4lResourceSynchronizationModuleOverrides()`
315
316
  - `createM4lPackageGclickRealtimeModuleMock(...)`
316
317
  - `createM4lAppGraphicsModuleMock(...)`
317
318
  Includes a neutral `useInfinitePaginate()` entry (no rows, `hasMore: false`,
@@ -338,8 +339,9 @@ Current shared Vitest helpers in `@m4l/testing/vitest` include:
338
339
  - `createReResizableModuleMock(...)`
339
340
  - `createReactLeafletModuleMock(...)`
340
341
  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.
341
- `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.
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.
342
343
  `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.
343
345
  `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.
344
346
  `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.
345
347
  `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.
@@ -361,6 +363,7 @@ Current shared Vitest helpers in `@m4l/testing/vitest` include:
361
363
  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()`.
362
364
  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.
363
365
  `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.
364
367
  The shared app-components baseline now exposes a minimal but stable
365
368
  `WINDOW_SIZES.square` contract with both `medium` and `large` entries so app
366
369
  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 O = "__rhfOnSubmitRef", ne = {
8
+ const k = "__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 Pe(e) {
105
+ function Me(e) {
106
106
  return e?.type === "color";
107
107
  }
108
- function Me(e) {
108
+ function Pe(e) {
109
109
  return e?.type === "image";
110
110
  }
111
- function k(e) {
111
+ function O(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 k(e) {
118
118
  }
119
119
  function A(e, n, o, r, a) {
120
120
  e.push(
121
- `${n} ${o}: expected ${k(r)}, got ${k(a)}`
121
+ `${n} ${o}: expected ${O(r)}, got ${O(a)}`
122
122
  );
123
123
  }
124
- function _(e, n, o) {
124
+ function R(e, n, o) {
125
125
  e.push(`${n} ${o}: expected a function, got undefined`);
126
126
  }
127
- function w(e, n, o) {
127
+ function L(e, n, o) {
128
128
  e.push(
129
- `${n} ${o}: expected undefined, got ${k("function")}`
129
+ `${n} ${o}: expected undefined, got ${O("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 ${k(i)}, got ${k(a)}`
139
+ `${n} testProps keys: expected ${O(i)}, got ${O(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
- } : Pe(e) ? {
267
+ } : Me(e) ? {
268
268
  expectedTestProps: {
269
269
  fieldValue: e.fieldValue
270
270
  },
271
271
  requiresFormatter: !0,
272
272
  requiresFilter: !1,
273
273
  requiresSort: !1
274
- } : Me(e) ? {
274
+ } : Pe(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: k(e)
290
+ unsupportedHookCall: O(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 && _(o, s, "formatter"), c.requiresFilter && i.customFilter === void 0 && _(o, s, "customFilter"), c.requiresSort && i.customSort === void 0 && _(o, s, "customSort");
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");
339
339
  return;
340
340
  }
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");
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");
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 ke(e = "property") {
390
+ function Oe(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 Fe(e = "data-src") {
397
+ function Ee(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 Ee(e = "divider") {
404
+ function Fe(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 Ee(e = "divider") {
410
410
  })
411
411
  );
412
412
  }
413
- function Oe(e = "nav-link") {
413
+ function ke(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 Le({
447
+ function _e({
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 R(e) {
493
+ function w(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 R(e) {
498
498
  sorted: !0
499
499
  });
500
500
  }
501
- function M(e, n, o, r, a) {
501
+ function P(e, n, o, r, a) {
502
502
  e.push(
503
- `${n} ${o}: expected ${R(r)}, got ${R(a)}`
503
+ `${n} ${o}: expected ${w(r)}, got ${w(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 && M(
516
+ if (i.name !== r.name && P(
517
517
  o,
518
518
  s,
519
519
  "name",
520
520
  r.name,
521
521
  i.name
522
- ), g(i.dictionaryId, r.dictionaryId) || M(
522
+ ), g(i.dictionaryId, r.dictionaryId) || P(
523
523
  o,
524
524
  s,
525
525
  "dictionaryId",
526
526
  r.dictionaryId,
527
527
  i.dictionaryId
528
- ), i.type !== r.type && M(
528
+ ), i.type !== r.type && P(
529
529
  o,
530
530
  s,
531
531
  "type",
532
532
  r.type,
533
533
  i.type
534
- ), g(i.multiple, r.multiple) || M(
534
+ ), g(i.multiple, r.multiple) || P(
535
535
  o,
536
536
  s,
537
537
  "multiple",
538
538
  r.multiple,
539
539
  i.multiple
540
- ), g(i.presence, r.presence) || M(
540
+ ), g(i.presence, r.presence) || P(
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) && M(
546
+ ), r.defaultOperator !== void 0 && !g(i.defaultOperator, r.defaultOperator) && P(
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
- ) && M(
555
+ ) && P(
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) && M(
561
+ ), r.defaultOperand1 !== void 0 && !g(i.defaultOperand1, r.defaultOperand1) && P(
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) && M(
567
+ ), r.urlIcon !== void 0 && !g(i.urlIcon, r.urlIcon) && P(
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
- ) && M(
583
+ ) && P(
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 ${R(typeof e)}`
592
+ `[fields] type: expected "array", got ${w(typeof e)}`
593
593
  ), o);
594
594
  }
595
- function _e(e = O) {
595
+ function Re(e = k) {
596
596
  return globalThis[e];
597
597
  }
598
- function we(e) {
598
+ function Le(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 F(e, n, o, r, a) {
609
+ function E(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 && F(
624
+ i.name !== r.name && E(
625
625
  o,
626
626
  s,
627
627
  "name",
628
628
  r.name,
629
629
  i.name
630
- ), g(i.dictionaryId, r.dictionaryId) || F(
630
+ ), g(i.dictionaryId, r.dictionaryId) || E(
631
631
  o,
632
632
  s,
633
633
  "dictionaryId",
634
634
  r.dictionaryId,
635
635
  i.dictionaryId
636
- ), i.type !== r.type && F(
636
+ ), i.type !== r.type && E(
637
637
  o,
638
638
  s,
639
639
  "type",
640
640
  r.type,
641
641
  i.type
642
- ), g(i.presence, r.presence) || F(
642
+ ), g(i.presence, r.presence) || E(
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) && F(
648
+ ), r.urlIcon !== void 0 && !g(i.urlIcon, r.urlIcon) && E(
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 Re() {
659
+ function we() {
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 = O) {
714
+ function st(e = k) {
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 = O
798
+ submitRefGlobalKey: o = k
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: Ee(),
806
+ Divider: Fe(),
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, P) => ({
816
+ (m, M) => ({
817
817
  ...m,
818
- [P]: P
818
+ [M]: M
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 = _e(o);
850
+ const m = Re(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": P }) => /* @__PURE__ */ u(
887
+ ({ children: c, disabled: d, label: l, onClick: m, "data-testid": M }) => /* @__PURE__ */ u(
888
888
  "button",
889
889
  {
890
- "data-testid": typeof P == "string" ? P : "button",
890
+ "data-testid": typeof M == "string" ? M : "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: Oe(),
901
+ NavLink: ke(),
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: Fe(),
935
- ReactJsonViewer: t.fn(({ data: c }) => /* @__PURE__ */ u("div", { "data-testid": "react-json-view", children: we(c) })),
934
+ Icon: Ee(),
935
+ ReactJsonViewer: t.fn(({ data: c }) => /* @__PURE__ */ u("div", { "data-testid": "react-json-view", children: Le(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: ke(),
970
+ PropertyValue: Oe(),
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: Le({
998
+ StepperCancelButton: _e({
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 = O
1016
+ submitRefGlobalKey: o = k
1017
1017
  } = {}) {
1018
1018
  return {
1019
1019
  ...W({ baseModule: e, submitRefGlobalKey: o }),
@@ -1106,7 +1106,14 @@ function ut({
1106
1106
  RHFRadioGroup: t.fn(() => null)
1107
1107
  };
1108
1108
  }
1109
- function ft({
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({
1110
1117
  baseModule: e = {},
1111
1118
  baseStoreState: n,
1112
1119
  environmentData: o,
@@ -1124,7 +1131,7 @@ function ft({
1124
1131
  const m = x({
1125
1132
  ...U,
1126
1133
  ...o
1127
- }), P = r ?? B(), h = ee(
1134
+ }), M = r ?? B(), h = ee(
1128
1135
  s
1129
1136
  ), b = te(s), K = n ?? {}, z = l ?? {
1130
1137
  flagsActions: {
@@ -1170,16 +1177,16 @@ function ft({
1170
1177
  EMMIT_EVENT_HOST_EMERGE_WINDOW: "EMMIT_EVENT_HOST_EMERGE_WINDOW"
1171
1178
  },
1172
1179
  getPropertyByString: t.fn(
1173
- (f, I, L) => {
1180
+ (f, I, _) => {
1174
1181
  if (f == null)
1175
- return L;
1182
+ return _;
1176
1183
  try {
1177
1184
  return I.split(".").reduce(
1178
1185
  (Z, X) => Z?.[X],
1179
1186
  f
1180
- ) ?? L;
1187
+ ) ?? _;
1181
1188
  } catch {
1182
- return L;
1189
+ return _;
1183
1190
  }
1184
1191
  }
1185
1192
  ),
@@ -1195,7 +1202,7 @@ function ft({
1195
1202
  useFlagsStore: t.fn(
1196
1203
  (f) => f(z)
1197
1204
  ),
1198
- useHostTools: t.fn(() => P),
1205
+ useHostTools: t.fn(() => M),
1199
1206
  useModuleDictionary: t.fn(() => ({
1200
1207
  getLabel: t.fn(i),
1201
1208
  getModuleLabel: t.fn(() => a)
@@ -1238,7 +1245,7 @@ function ft({
1238
1245
  ...c
1239
1246
  };
1240
1247
  }
1241
- function lt({
1248
+ function pt({
1242
1249
  baseModule: e = {},
1243
1250
  moduleOverrides: n = {}
1244
1251
  } = {}) {
@@ -1301,7 +1308,7 @@ function lt({
1301
1308
  ...n
1302
1309
  };
1303
1310
  }
1304
- function pt({
1311
+ function mt({
1305
1312
  baseModule: e = {},
1306
1313
  moduleOverrides: n = {}
1307
1314
  } = {}) {
@@ -1340,7 +1347,7 @@ function pt({
1340
1347
  ...n
1341
1348
  };
1342
1349
  }
1343
- function mt({
1350
+ function yt({
1344
1351
  createComponentFieldImplementation: e
1345
1352
  } = {}) {
1346
1353
  return {
@@ -1351,7 +1358,7 @@ function mt({
1351
1358
  )
1352
1359
  };
1353
1360
  }
1354
- function yt({
1361
+ function gt({
1355
1362
  baseModule: e = {},
1356
1363
  domEventData: n,
1357
1364
  moduleOverrides: o = {},
@@ -1375,7 +1382,7 @@ function yt({
1375
1382
  ...o
1376
1383
  };
1377
1384
  }
1378
- function gt({
1385
+ function vt({
1379
1386
  baseModule: e = {},
1380
1387
  dataGridPersistenceData: n,
1381
1388
  dynamicFilterAndSortData: o,
@@ -1406,7 +1413,7 @@ function gt({
1406
1413
  popupsActions: {
1407
1414
  addPopup: t.fn()
1408
1415
  }
1409
- }, P = s ?? {
1416
+ }, M = s ?? {
1410
1417
  getCookie: t.fn(),
1411
1418
  getWindowId: t.fn(() => "test-window-id"),
1412
1419
  setCookie: t.fn(),
@@ -1424,11 +1431,11 @@ function gt({
1424
1431
  ),
1425
1432
  useWatchTyped: t.fn(() => {
1426
1433
  }),
1427
- useWindowToolsMF: t.fn(() => P),
1434
+ useWindowToolsMF: t.fn(() => M),
1428
1435
  ...a
1429
1436
  };
1430
1437
  }
1431
- function vt({
1438
+ function ht({
1432
1439
  baseModule: e = {},
1433
1440
  environmentData: n,
1434
1441
  getLabel: o = (d, l) => l ? `label:${d}:${l}` : `label:${d}`,
@@ -1443,7 +1450,7 @@ function vt({
1443
1450
  ...n
1444
1451
  }), l = r ?? B(), m = s ?? {
1445
1452
  hasPrivilege: t.fn(() => !0)
1446
- }, P = c ?? {
1453
+ }, M = c ?? {
1447
1454
  networkOperation: t.fn()
1448
1455
  };
1449
1456
  return {
@@ -1459,17 +1466,17 @@ function vt({
1459
1466
  })),
1460
1467
  useModulePrivileges: t.fn(() => m),
1461
1468
  useModuleSkeleton: t.fn(() => !1),
1462
- useNetwork: t.fn(() => P),
1469
+ useNetwork: t.fn(() => M),
1463
1470
  ...a
1464
1471
  };
1465
1472
  }
1466
- function ht({
1473
+ function St({
1467
1474
  baseModule: e = {},
1468
1475
  mapStoreState: n,
1469
1476
  moduleOverrides: o = {}
1470
1477
  } = {}) {
1471
1478
  const r = {
1472
- ...Re(),
1479
+ ...we(),
1473
1480
  ...n
1474
1481
  };
1475
1482
  return {
@@ -1537,16 +1544,30 @@ function ht({
1537
1544
  ...o
1538
1545
  };
1539
1546
  }
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
+ }
1540
1561
  const He = "#1E96DC", Ne = /* @__PURE__ */ new Set(["state", "updatedAt", "value"]);
1541
1562
  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 || {});
1542
- function E(e) {
1563
+ function F(e) {
1543
1564
  if (typeof e != "object" || e === null || Array.isArray(e))
1544
1565
  return !1;
1545
1566
  const n = Object.getPrototypeOf(e);
1546
1567
  return n === Object.prototype || n === null;
1547
1568
  }
1548
1569
  function N(e) {
1549
- return E(e) ? Object.keys(e).some((n) => Ne.has(n)) : !1;
1570
+ return F(e) ? Object.keys(e).some((n) => Ne.has(n)) : !1;
1550
1571
  }
1551
1572
  function qe(e, n) {
1552
1573
  const o = e.updatedAt, r = n.updatedAt;
@@ -1580,7 +1601,7 @@ function j(e, n) {
1580
1601
  };
1581
1602
  if (Array.isArray(n))
1582
1603
  return n;
1583
- if (E(e) && E(n)) {
1604
+ if (F(e) && F(n)) {
1584
1605
  let o = n, r = !1;
1585
1606
  return Object.entries(n).forEach(([a, i]) => {
1586
1607
  const s = j(
@@ -1598,9 +1619,9 @@ function Ue(e, n) {
1598
1619
  e,
1599
1620
  n
1600
1621
  );
1601
- return E(o) ? o : n;
1622
+ return F(o) ? o : n;
1602
1623
  }
1603
- function St({
1624
+ function Pt({
1604
1625
  baseModule: e = {},
1605
1626
  moduleOverrides: n = {},
1606
1627
  surface: o = "root"
@@ -1622,7 +1643,7 @@ function St({
1622
1643
  ...n
1623
1644
  };
1624
1645
  }
1625
- function Pt({
1646
+ function At({
1626
1647
  baseModule: e = {},
1627
1648
  moduleOverrides: n = {}
1628
1649
  } = {}) {
@@ -1648,7 +1669,7 @@ function Pt({
1648
1669
  ...n
1649
1670
  };
1650
1671
  }
1651
- function Mt({
1672
+ function bt({
1652
1673
  baseModule: e = {},
1653
1674
  moduleOverrides: n = {}
1654
1675
  } = {}) {
@@ -1684,7 +1705,7 @@ function Mt({
1684
1705
  ...n
1685
1706
  };
1686
1707
  }
1687
- function At({
1708
+ function Tt({
1688
1709
  baseModule: e = {},
1689
1710
  moduleOverrides: n = {},
1690
1711
  useFormContextData: o = {}
@@ -1707,12 +1728,12 @@ function At({
1707
1728
  ...n
1708
1729
  };
1709
1730
  }
1710
- function bt() {
1731
+ function Ct() {
1711
1732
  return {
1712
1733
  Resizable: t.fn(({ children: e }) => /* @__PURE__ */ u("div", { "data-testid": "resizable", children: e }))
1713
1734
  };
1714
1735
  }
1715
- function Tt({
1736
+ function Dt({
1716
1737
  baseModule: e = {},
1717
1738
  moduleOverrides: n = {},
1718
1739
  useMapData: o,
@@ -1810,10 +1831,11 @@ function Tt({
1810
1831
  };
1811
1832
  }
1812
1833
  export {
1834
+ Dt as $,
1813
1835
  H as A,
1814
1836
  ot as B,
1815
1837
  it as C,
1816
- O as D,
1838
+ k as D,
1817
1839
  at as E,
1818
1840
  st as F,
1819
1841
  ct as G,
@@ -1824,18 +1846,19 @@ export {
1824
1846
  pt as L,
1825
1847
  ne as M,
1826
1848
  mt as N,
1827
- W as O,
1828
- yt as P,
1829
- $e as Q,
1830
- gt as R,
1849
+ yt as O,
1850
+ W as P,
1851
+ gt as Q,
1852
+ $e as R,
1831
1853
  vt as S,
1832
1854
  ht as T,
1833
1855
  St as U,
1834
- Pt as V,
1835
- Mt as W,
1856
+ Mt as V,
1857
+ Pt as W,
1836
1858
  At as X,
1837
1859
  bt as Y,
1838
1860
  Tt as Z,
1861
+ Ct as _,
1839
1862
  oe as a,
1840
1863
  ie as b,
1841
1864
  ae as c,
@@ -1849,17 +1872,17 @@ export {
1849
1872
  v as k,
1850
1873
  De as l,
1851
1874
  T as m,
1852
- ke as n,
1853
- Fe as o,
1854
- Ee as p,
1855
- Oe as q,
1875
+ Oe as n,
1876
+ Ee as o,
1877
+ Fe as p,
1878
+ ke as q,
1856
1879
  Ie as r,
1857
- Le as s,
1880
+ _e as s,
1858
1881
  tt as t,
1859
1882
  C as u,
1860
1883
  rt as v,
1861
- _e as w,
1862
- we as x,
1884
+ Re as w,
1885
+ Le as x,
1863
1886
  nt as y,
1864
- Re as z
1887
+ we as z
1865
1888
  };
package/index.js CHANGED
@@ -1,78 +1,80 @@
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 p } 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 d } 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 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";
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";
7
7
  export {
8
- x as DEFAULT_RHF_SUBMIT_REF_GLOBAL_KEY,
9
- L as M4L_APP_DATAGRID_SEMANTIC_WIDTHS,
10
- R as M4L_APP_WINDOW_SIZES,
8
+ R as DEFAULT_RHF_SUBMIT_REF_GLOBAL_KEY,
9
+ x as M4L_APP_DATAGRID_SEMANTIC_WIDTHS,
10
+ L as M4L_APP_WINDOW_SIZES,
11
11
  o as act,
12
12
  r as afterAll,
13
13
  c as afterEach,
14
- D as assertColumnConfigs,
15
- _ as assertFilterFields,
16
- G as assertSortFields,
14
+ _ as assertColumnConfigs,
15
+ D as assertFilterFields,
16
+ h as assertSortFields,
17
17
  s as beforeAll,
18
18
  M as beforeEach,
19
19
  u as cleanup,
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,
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,
29
29
  N as createM4lAppBaseModuleMock,
30
30
  W as createM4lAppComponentsModuleMock,
31
31
  K as createM4lAppCoreModuleMock,
32
- U as createM4lAppFormComponentsModuleOverrides,
33
- V as createM4lAppFormLayoutsModuleOverrides,
34
- z as createM4lAppGraphicsModuleMock,
32
+ z as createM4lAppFormComponentsModuleOverrides,
33
+ U as createM4lAppFormLayoutsModuleOverrides,
34
+ V as createM4lAppGraphicsModuleMock,
35
35
  Y as createM4lAppLayoutsModuleMock,
36
36
  Z as createM4lBaseComponentsModuleMock,
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,
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,
56
58
  l as describe,
57
- de as distanceToNowFormatterFixture,
59
+ me as distanceToNowFormatterFixture,
58
60
  n as expect,
59
61
  m as fireEvent,
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,
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,
68
70
  i as it,
69
- S as render,
71
+ v as render,
70
72
  C as renderHook,
71
73
  f as screen,
72
- Pe as stringifyViewerData,
74
+ Se as stringifyViewerData,
73
75
  k as test,
74
76
  E as userEvent,
75
- p as vi,
77
+ d as vi,
76
78
  g as waitFor,
77
79
  A as within
78
80
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@m4l/testing",
3
- "version": "1.2.0",
3
+ "version": "1.2.1-beta-docs-autocomplete-async-with-add-mf-sync.0",
4
4
  "description": "Shared M4L testing contracts for React, Vitest and Playwright",
5
5
  "license": "UNLICENSED",
6
6
  "engines": {
@@ -1,4 +1,4 @@
1
- import type { CreateM4lAppComponentsModuleMockOptions, CreateM4lAppFormComponentsModuleOverridesOptions, VitestModuleMockExports } from '../../types';
1
+ import type { CreateM4lAppComponentsModuleMockOptions, CreateM4lAppFormComponentsModuleOverridesOptions, MFActionModuleOverrides, VitestModuleMockExports } from '../../types';
2
2
  /**
3
3
  * Builds the shared `@m4l/components` mock payload used by M4L app test
4
4
  * setups.
@@ -18,3 +18,5 @@ 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, VitestModuleMockExports } from '../../types';
1
+ import type { CreateM4lPackageGclickModuleMockOptions, ResourceSynchronizationModuleOverrides, 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,3 +8,5 @@ import type { CreateM4lPackageGclickModuleMockOptions, VitestModuleMockExports }
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,5 +1,6 @@
1
1
  import type { EnvironmentFixture, HostToolsFixture, UserPreferencesFixture } from '../../mocks/src/index';
2
2
  import type React from 'react';
3
+ import type { Mock } from 'vitest';
3
4
  export type UnknownRecord = Record<string, unknown>;
4
5
  export type VitestModuleMockExports = Record<string, unknown>;
5
6
  export type PropsWithChildren = {
@@ -67,6 +68,12 @@ export interface CreateM4lAppComponentsModuleMockOptions extends CreateVitestMod
67
68
  export interface CreateM4lAppFormComponentsModuleOverridesOptions {
68
69
  dynamicMFParameters?: UnknownRecord;
69
70
  }
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
+ };
70
77
  export interface CreateM4lAppFormLayoutsModuleOverridesOptions {
71
78
  createComponentFieldImplementation?: (field: UnknownRecord) => unknown;
72
79
  }
@@ -95,6 +102,31 @@ export type CreateM4lPackageGraphicsModuleMockOptions = CreateVitestModuleMockOp
95
102
  export interface CreateM4lPackageGclickModuleMockOptions extends CreateVitestModuleMockOptions {
96
103
  mapStoreState?: UnknownRecord;
97
104
  }
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
+ };
98
130
  export interface CreateM4lPackageGclickRealtimeModuleMockOptions extends CreateVitestModuleMockOptions {
99
131
  surface?: 'root' | 'payload' | 'contracts';
100
132
  }
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 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";
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";
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
- p as createDefaultM4lPackageGclickMapStoreState,
14
- d as createDividerComponentMock,
15
- u as createHelmetPageComponentMock,
13
+ d as createDefaultM4lPackageGclickMapStoreState,
14
+ u as createDividerComponentMock,
15
+ p as createHelmetPageComponentMock,
16
16
  m as createIconComponentMock,
17
17
  C as createLeafletModuleMock,
18
18
  g as createM4lAppBaseModuleMock,
@@ -20,36 +20,38 @@ export {
20
20
  A as createM4lAppCoreModuleMock,
21
21
  P as createM4lAppFormComponentsModuleOverrides,
22
22
  S as createM4lAppFormLayoutsModuleOverrides,
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
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
55
57
  };