@trackunit/react-core-contexts-test 1.3.72 → 1.3.74

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/index.cjs.js CHANGED
@@ -204,6 +204,13 @@ const mockOemBrandingContext = {
204
204
  getOemImage: doNothing,
205
205
  };
206
206
 
207
+ const mockTimeRangeContext = {
208
+ timeRange: {
209
+ startMsInEpoch: 1,
210
+ endMsInEpoch: 2,
211
+ },
212
+ };
213
+
207
214
  const mockToastContext = {
208
215
  addToast: doNothing,
209
216
  setIsManifestError: doNothing,
@@ -303,7 +310,7 @@ const RouterContainer = ({ addTestRootContainer, selectedRouterProps, rootRoute,
303
310
  const client = react.useApolloClient();
304
311
  // The current version of createMemoryHistory seem to have issues when NOT ending on / so adding a # will not effect what url is rendered but it seems to work
305
312
  const memoryHistory = React.useRef(reactRouter.createMemoryHistory({
306
- initialEntries: selectedRouterProps?.initialEntries?.map(entry => entry.path + "#") ?? ["/#"],
313
+ initialEntries: selectedRouterProps?.initialEntries?.reverse().map(entry => entry.path + "#") ?? ["/#"],
307
314
  initialIndex: 0,
308
315
  }));
309
316
  const getChildren = React.useCallback(() => children, [children]);
@@ -340,6 +347,9 @@ const RouterContainer = ({ addTestRootContainer, selectedRouterProps, rootRoute,
340
347
  selectedRouterProps?.initialEntries?.forEach(entry => {
341
348
  const route = pathsToRoute[entry.route];
342
349
  if (route) {
350
+ if (entry.beforeLoad) {
351
+ route.options.beforeLoad = entry.beforeLoad;
352
+ }
343
353
  if (entry.component) {
344
354
  route.options.component = entry.component;
345
355
  }
@@ -373,6 +383,8 @@ const RouterContainer = ({ addTestRootContainer, selectedRouterProps, rootRoute,
373
383
  return reactRouter.createRouter({
374
384
  routeTree: localRootRoute,
375
385
  history: memoryHistory.current,
386
+ defaultPendingMs: 0,
387
+ defaultPendingMinMs: 0, // Add this to control minimum pending time
376
388
  context: {
377
389
  hasAccessTo: async () => {
378
390
  return true;
@@ -457,6 +469,7 @@ class TrackunitProvidersMockBuilder {
457
469
  constructor() {
458
470
  this.selectedEnvironmentContext = mockEnvironmentContext;
459
471
  this.selectedModalDialogContext = mockModalDialogContext;
472
+ this.selectedTimeRangeContext = mockTimeRangeContext;
460
473
  this.selectedNavigationContext = mockNavigationContext;
461
474
  this.selectedTokenContext = { token: "fakeToken" };
462
475
  this.selectedApolloMocks = [];
@@ -534,6 +547,16 @@ class TrackunitProvidersMockBuilder {
534
547
  this.selectedEnvironmentContext = { ...mockEnvironmentContext, ...environmentContext };
535
548
  return this;
536
549
  }
550
+ /**
551
+ * Use this Time Range Context, used for myhome.
552
+ * Defaults to mockTimeRangeContext.
553
+ *
554
+ * @see mockTimeRangeContext
555
+ */
556
+ timeRange(timeRangeContext) {
557
+ this.selectedTimeRangeContext = { ...mockTimeRangeContext, ...timeRangeContext };
558
+ return this;
559
+ }
537
560
  /**
538
561
  * Use this Navigation Context.
539
562
  * Defaults to mockNavigationContext.
@@ -870,7 +893,7 @@ class TrackunitProvidersMockBuilder {
870
893
  * @param testChildren - the child element being tested.
871
894
  */
872
895
  getMockedCompositionRoot(testChildren) {
873
- return (jsxRuntime.jsx(reactCoreHooks.ErrorHandlingContextProvider, { value: this.selectedErrorHandler, children: jsxRuntime.jsx(reactCoreHooks.CurrentUserProvider, { value: this.selectedCurrentUserContext, children: jsxRuntime.jsx(reactCoreHooks.AnalyticsContext.Provider, { value: this.selectedAnalyticsContext, children: jsxRuntime.jsx(reactCoreHooks.UserSubscriptionProvider, { value: this.selectedUserSubscriptionContext, children: jsxRuntime.jsx(reactCoreHooks.OemBrandingContextProvider, { value: this.selectedOemBrandingContext, children: jsxRuntime.jsx(reactCoreHooks.TokenProvider, { value: this.selectedTokenContext, children: jsxRuntime.jsx(reactCoreHooks.ToastProvider, { value: this.selectedToastContext, children: jsxRuntime.jsx(reactCoreHooks.ConfirmationDialogProvider, { value: this.selectedConfirmationDialogContext, children: jsxRuntime.jsx(reactCoreHooks.FilterBarProvider, { value: this.selectedFilterBarValues, children: jsxRuntime.jsx(reactCoreHooks.AssetSortingProvider, { value: this.selectedAssetSortingContext, children: jsxRuntime.jsx(ApolloMockedProviderWithError, { addTypename: false, mocks: this.selectedApolloMocks, children: jsxRuntime.jsx(reactCoreHooks.NavigationContextProvider, { value: this.selectedNavigationContext, children: jsxRuntime.jsx(reactCoreHooks.CurrentUserPreferenceProvider, { value: this.selectedCurrentUserPreferenceContext, children: jsxRuntime.jsx(reactCoreHooks.EnvironmentContextProvider, { value: this.selectedEnvironmentContext, children: jsxRuntime.jsx(reactCoreHooks.ModalDialogContextProvider, { value: this.selectedModalDialogContext, children: testChildren }) }) }) }) }) }) }) }) }) }) }) }) }) }) }));
896
+ return (jsxRuntime.jsx(reactCoreHooks.ErrorHandlingContextProvider, { value: this.selectedErrorHandler, children: jsxRuntime.jsx(reactCoreHooks.CurrentUserProvider, { value: this.selectedCurrentUserContext, children: jsxRuntime.jsx(reactCoreHooks.AnalyticsContext.Provider, { value: this.selectedAnalyticsContext, children: jsxRuntime.jsx(reactCoreHooks.UserSubscriptionProvider, { value: this.selectedUserSubscriptionContext, children: jsxRuntime.jsx(reactCoreHooks.OemBrandingContextProvider, { value: this.selectedOemBrandingContext, children: jsxRuntime.jsx(reactCoreHooks.TokenProvider, { value: this.selectedTokenContext, children: jsxRuntime.jsx(reactCoreHooks.ToastProvider, { value: this.selectedToastContext, children: jsxRuntime.jsx(reactCoreHooks.ConfirmationDialogProvider, { value: this.selectedConfirmationDialogContext, children: jsxRuntime.jsx(reactCoreHooks.FilterBarProvider, { value: this.selectedFilterBarValues, children: jsxRuntime.jsx(reactCoreHooks.AssetSortingProvider, { value: this.selectedAssetSortingContext, children: jsxRuntime.jsx(ApolloMockedProviderWithError, { addTypename: false, mocks: this.selectedApolloMocks, children: jsxRuntime.jsx(reactCoreHooks.NavigationContextProvider, { value: this.selectedNavigationContext, children: jsxRuntime.jsx(reactCoreHooks.CurrentUserPreferenceProvider, { value: this.selectedCurrentUserPreferenceContext, children: jsxRuntime.jsx(reactCoreHooks.EnvironmentContextProvider, { value: this.selectedEnvironmentContext, children: jsxRuntime.jsx(reactCoreHooks.ModalDialogContextProvider, { value: this.selectedModalDialogContext, children: jsxRuntime.jsx(reactCoreHooks.TimeRangeProvider, { value: this.selectedTimeRangeContext, children: testChildren }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }));
874
897
  }
875
898
  getMockedCompositionRootWithRouter(testChildren) {
876
899
  const childrenWithRouter = (jsxRuntime.jsx(RouterContainer, { addTestRootContainer: true, rootRoute: this.selectedRootRoute, selectedRouterProps: this.selectedRouterProps, children: testChildren }));
package/index.esm.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { act, render } from '@testing-library/react';
3
- import { ErrorHandlingContextProvider, CurrentUserProvider, AnalyticsContext, UserSubscriptionProvider, OemBrandingContextProvider, TokenProvider, ToastProvider, ConfirmationDialogProvider, FilterBarProvider, AssetSortingProvider, NavigationContextProvider, CurrentUserPreferenceProvider, EnvironmentContextProvider, ModalDialogContextProvider } from '@trackunit/react-core-hooks';
3
+ import { ErrorHandlingContextProvider, CurrentUserProvider, AnalyticsContext, UserSubscriptionProvider, OemBrandingContextProvider, TokenProvider, ToastProvider, ConfirmationDialogProvider, FilterBarProvider, AssetSortingProvider, NavigationContextProvider, CurrentUserPreferenceProvider, EnvironmentContextProvider, ModalDialogContextProvider, TimeRangeProvider } from '@trackunit/react-core-hooks';
4
4
  import omit from 'lodash/omit';
5
5
  import { ApolloLink } from '@apollo/client';
6
6
  import { loadDevMessages, loadErrorMessages } from '@apollo/client/dev';
@@ -202,6 +202,13 @@ const mockOemBrandingContext = {
202
202
  getOemImage: doNothing,
203
203
  };
204
204
 
205
+ const mockTimeRangeContext = {
206
+ timeRange: {
207
+ startMsInEpoch: 1,
208
+ endMsInEpoch: 2,
209
+ },
210
+ };
211
+
205
212
  const mockToastContext = {
206
213
  addToast: doNothing,
207
214
  setIsManifestError: doNothing,
@@ -301,7 +308,7 @@ const RouterContainer = ({ addTestRootContainer, selectedRouterProps, rootRoute,
301
308
  const client = useApolloClient();
302
309
  // The current version of createMemoryHistory seem to have issues when NOT ending on / so adding a # will not effect what url is rendered but it seems to work
303
310
  const memoryHistory = useRef(createMemoryHistory({
304
- initialEntries: selectedRouterProps?.initialEntries?.map(entry => entry.path + "#") ?? ["/#"],
311
+ initialEntries: selectedRouterProps?.initialEntries?.reverse().map(entry => entry.path + "#") ?? ["/#"],
305
312
  initialIndex: 0,
306
313
  }));
307
314
  const getChildren = useCallback(() => children, [children]);
@@ -338,6 +345,9 @@ const RouterContainer = ({ addTestRootContainer, selectedRouterProps, rootRoute,
338
345
  selectedRouterProps?.initialEntries?.forEach(entry => {
339
346
  const route = pathsToRoute[entry.route];
340
347
  if (route) {
348
+ if (entry.beforeLoad) {
349
+ route.options.beforeLoad = entry.beforeLoad;
350
+ }
341
351
  if (entry.component) {
342
352
  route.options.component = entry.component;
343
353
  }
@@ -371,6 +381,8 @@ const RouterContainer = ({ addTestRootContainer, selectedRouterProps, rootRoute,
371
381
  return createRouter({
372
382
  routeTree: localRootRoute,
373
383
  history: memoryHistory.current,
384
+ defaultPendingMs: 0,
385
+ defaultPendingMinMs: 0, // Add this to control minimum pending time
374
386
  context: {
375
387
  hasAccessTo: async () => {
376
388
  return true;
@@ -455,6 +467,7 @@ class TrackunitProvidersMockBuilder {
455
467
  constructor() {
456
468
  this.selectedEnvironmentContext = mockEnvironmentContext;
457
469
  this.selectedModalDialogContext = mockModalDialogContext;
470
+ this.selectedTimeRangeContext = mockTimeRangeContext;
458
471
  this.selectedNavigationContext = mockNavigationContext;
459
472
  this.selectedTokenContext = { token: "fakeToken" };
460
473
  this.selectedApolloMocks = [];
@@ -532,6 +545,16 @@ class TrackunitProvidersMockBuilder {
532
545
  this.selectedEnvironmentContext = { ...mockEnvironmentContext, ...environmentContext };
533
546
  return this;
534
547
  }
548
+ /**
549
+ * Use this Time Range Context, used for myhome.
550
+ * Defaults to mockTimeRangeContext.
551
+ *
552
+ * @see mockTimeRangeContext
553
+ */
554
+ timeRange(timeRangeContext) {
555
+ this.selectedTimeRangeContext = { ...mockTimeRangeContext, ...timeRangeContext };
556
+ return this;
557
+ }
535
558
  /**
536
559
  * Use this Navigation Context.
537
560
  * Defaults to mockNavigationContext.
@@ -868,7 +891,7 @@ class TrackunitProvidersMockBuilder {
868
891
  * @param testChildren - the child element being tested.
869
892
  */
870
893
  getMockedCompositionRoot(testChildren) {
871
- return (jsx(ErrorHandlingContextProvider, { value: this.selectedErrorHandler, children: jsx(CurrentUserProvider, { value: this.selectedCurrentUserContext, children: jsx(AnalyticsContext.Provider, { value: this.selectedAnalyticsContext, children: jsx(UserSubscriptionProvider, { value: this.selectedUserSubscriptionContext, children: jsx(OemBrandingContextProvider, { value: this.selectedOemBrandingContext, children: jsx(TokenProvider, { value: this.selectedTokenContext, children: jsx(ToastProvider, { value: this.selectedToastContext, children: jsx(ConfirmationDialogProvider, { value: this.selectedConfirmationDialogContext, children: jsx(FilterBarProvider, { value: this.selectedFilterBarValues, children: jsx(AssetSortingProvider, { value: this.selectedAssetSortingContext, children: jsx(ApolloMockedProviderWithError, { addTypename: false, mocks: this.selectedApolloMocks, children: jsx(NavigationContextProvider, { value: this.selectedNavigationContext, children: jsx(CurrentUserPreferenceProvider, { value: this.selectedCurrentUserPreferenceContext, children: jsx(EnvironmentContextProvider, { value: this.selectedEnvironmentContext, children: jsx(ModalDialogContextProvider, { value: this.selectedModalDialogContext, children: testChildren }) }) }) }) }) }) }) }) }) }) }) }) }) }) }));
894
+ return (jsx(ErrorHandlingContextProvider, { value: this.selectedErrorHandler, children: jsx(CurrentUserProvider, { value: this.selectedCurrentUserContext, children: jsx(AnalyticsContext.Provider, { value: this.selectedAnalyticsContext, children: jsx(UserSubscriptionProvider, { value: this.selectedUserSubscriptionContext, children: jsx(OemBrandingContextProvider, { value: this.selectedOemBrandingContext, children: jsx(TokenProvider, { value: this.selectedTokenContext, children: jsx(ToastProvider, { value: this.selectedToastContext, children: jsx(ConfirmationDialogProvider, { value: this.selectedConfirmationDialogContext, children: jsx(FilterBarProvider, { value: this.selectedFilterBarValues, children: jsx(AssetSortingProvider, { value: this.selectedAssetSortingContext, children: jsx(ApolloMockedProviderWithError, { addTypename: false, mocks: this.selectedApolloMocks, children: jsx(NavigationContextProvider, { value: this.selectedNavigationContext, children: jsx(CurrentUserPreferenceProvider, { value: this.selectedCurrentUserPreferenceContext, children: jsx(EnvironmentContextProvider, { value: this.selectedEnvironmentContext, children: jsx(ModalDialogContextProvider, { value: this.selectedModalDialogContext, children: jsx(TimeRangeProvider, { value: this.selectedTimeRangeContext, children: testChildren }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }));
872
895
  }
873
896
  getMockedCompositionRootWithRouter(testChildren) {
874
897
  const childrenWithRouter = (jsx(RouterContainer, { addTestRootContainer: true, rootRoute: this.selectedRootRoute, selectedRouterProps: this.selectedRouterProps, children: testChildren }));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trackunit/react-core-contexts-test",
3
- "version": "1.3.72",
3
+ "version": "1.3.74",
4
4
  "repository": "https://github.com/Trackunit/manager",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "engines": {
@@ -12,10 +12,11 @@
12
12
  "react": "19.0.0",
13
13
  "lodash": "4.17.21",
14
14
  "graphql": "^16.10.0",
15
- "@tanstack/react-router": "1.47.1",
16
- "@trackunit/react-core-contexts-api": "1.4.69",
17
- "@trackunit/react-core-hooks": "1.3.71",
18
- "@trackunit/shared-utils": "1.5.68"
15
+ "@tanstack/react-router": "1.114.29",
16
+ "@tanstack/router-core": "1.114.29",
17
+ "@trackunit/react-core-contexts-api": "1.4.71",
18
+ "@trackunit/react-core-hooks": "1.3.73",
19
+ "@trackunit/shared-utils": "1.5.69"
19
20
  },
20
21
  "module": "./index.esm.js",
21
22
  "main": "./index.cjs.js",
@@ -1,7 +1,7 @@
1
1
  import { MockedResponse } from "@apollo/client/testing";
2
2
  import { AnyRoute } from "@tanstack/react-router";
3
3
  import { RenderResult } from "@testing-library/react";
4
- import { AssetSortingContextValue, ConfirmationDialogContextValue, CurrentUserContextInterface, ErrorHandlingContextValue, FilterBarContext, IAnalyticsContext, IEnvironmentContext, INavigationContext, IToastContext, ITokenContext, IUserPreferencesContext, IUserSubscriptionContext, ModalDialogContextValue, OemBrandingContext } from "@trackunit/react-core-contexts-api";
4
+ import { AssetSortingContextValue, ConfirmationDialogContextValue, CurrentUserContextInterface, ErrorHandlingContextValue, FilterBarContext, IAnalyticsContext, IEnvironmentContext, INavigationContext, IToastContext, ITokenContext, IUserPreferencesContext, IUserSubscriptionContext, ModalDialogContextValue, OemBrandingContext, TimeRangeContext } from "@trackunit/react-core-contexts-api";
5
5
  import { ReactElement, ReactNode } from "react";
6
6
  import { MemoryRouterProps } from "./utils/routingUtils";
7
7
  /**
@@ -16,6 +16,7 @@ import { MemoryRouterProps } from "./utils/routingUtils";
16
16
  export declare class TrackunitProvidersMockBuilder<T extends AnyRoute> {
17
17
  protected selectedEnvironmentContext: IEnvironmentContext;
18
18
  protected selectedModalDialogContext: ModalDialogContextValue;
19
+ protected selectedTimeRangeContext: TimeRangeContext;
19
20
  protected selectedNavigationContext: INavigationContext;
20
21
  protected selectedTokenContext: ITokenContext;
21
22
  protected selectedApolloMocks: MockedResponse[];
@@ -81,6 +82,13 @@ export declare class TrackunitProvidersMockBuilder<T extends AnyRoute> {
81
82
  * @returns { TrackunitProvidersMockBuilder } - The builder.
82
83
  */
83
84
  environment(environmentContext: Partial<IEnvironmentContext>): this;
85
+ /**
86
+ * Use this Time Range Context, used for myhome.
87
+ * Defaults to mockTimeRangeContext.
88
+ *
89
+ * @see mockTimeRangeContext
90
+ */
91
+ timeRange(timeRangeContext: Partial<TimeRangeContext>): this;
84
92
  /**
85
93
  * Use this Navigation Context.
86
94
  * Defaults to mockNavigationContext.
@@ -0,0 +1,2 @@
1
+ import { TimeRangeContext } from "@trackunit/react-core-contexts-api";
2
+ export declare const mockTimeRangeContext: TimeRangeContext;
@@ -6,6 +6,7 @@ export type MemoryRouterProps<T extends AnyRoute> = {
6
6
  route: RouteIds<RegisteredRouter["routeTree"]>;
7
7
  path: string;
8
8
  component?: () => ReactElement | null;
9
+ beforeLoad?: () => void;
9
10
  }[];
10
11
  context?: Record<string, unknown>;
11
12
  };