@trackunit/react-core-contexts-test 1.17.53-alpha-df0e8d549b3.0 → 1.17.53
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 +1 -0
- package/index.cjs2.js +39 -1
- package/index.esm.js +1 -1
- package/index.esm2.js +40 -3
- package/package.json +4 -4
- package/src/TrackunitProvidersMockBuilder.d.ts +32 -1
- package/src/index.d.ts +1 -0
- package/src/mocks/mockFeatureFlagContext.d.ts +2 -0
package/index.cjs.js
CHANGED
|
@@ -30,6 +30,7 @@ exports.mockAnalyticsContext = index.mockAnalyticsContext;
|
|
|
30
30
|
exports.mockAssetSortingContext = index.mockAssetSortingContext;
|
|
31
31
|
exports.mockCurrentUserContext = index.mockCurrentUserContext;
|
|
32
32
|
exports.mockEnvironmentContext = index.mockEnvironmentContext;
|
|
33
|
+
exports.mockFeatureFlagContext = index.mockFeatureFlagContext;
|
|
33
34
|
exports.mockFilterBarContext = index.mockFilterBarContext;
|
|
34
35
|
exports.mockNavigationContext = index.mockNavigationContext;
|
|
35
36
|
exports.mockOemBrandingContext = index.mockOemBrandingContext;
|
package/index.cjs2.js
CHANGED
|
@@ -120,6 +120,10 @@ const mockEnvironmentContext = {
|
|
|
120
120
|
reportAccessClientId: "",
|
|
121
121
|
};
|
|
122
122
|
|
|
123
|
+
const mockFeatureFlagContext = {
|
|
124
|
+
flags: [],
|
|
125
|
+
};
|
|
126
|
+
|
|
123
127
|
/**
|
|
124
128
|
* This is a mock for the FilterBarContext.
|
|
125
129
|
*
|
|
@@ -13779,6 +13783,7 @@ class TrackunitProvidersMockBuilder {
|
|
|
13779
13783
|
this.selectedCurrentUserContext = mockCurrentUserContext;
|
|
13780
13784
|
this.selectedCurrentUserPreferenceContext = mockCurrentUserPreferenceContext;
|
|
13781
13785
|
this.selectedAnalyticsContext = mockAnalyticsContext;
|
|
13786
|
+
this.selectedFeatureFlagsContext = mockFeatureFlagContext;
|
|
13782
13787
|
this.selectedOemBrandingContext = mockOemBrandingContext;
|
|
13783
13788
|
this.selectedUserSubscriptionContext = mockUserSubscriptionContext;
|
|
13784
13789
|
this.selectedFilterBarValues = mockFilterBarContext;
|
|
@@ -13814,6 +13819,38 @@ class TrackunitProvidersMockBuilder {
|
|
|
13814
13819
|
this.selectedAnalyticsContext = { ...mockAnalyticsContext, ...analyticsContext };
|
|
13815
13820
|
return this;
|
|
13816
13821
|
}
|
|
13822
|
+
/**
|
|
13823
|
+
* Use this to pass in enabled feature flags.
|
|
13824
|
+
* Defaults to mockFeatureFlagContext (no enabled flags).
|
|
13825
|
+
*
|
|
13826
|
+
* This context is used by the useFeatureFlags hook from lib "@trackunit/react-core-hooks"
|
|
13827
|
+
*
|
|
13828
|
+
* Pass a bare string to enable a flag (`state: true`), or a `{ key, state }`
|
|
13829
|
+
* object to set an explicit state. The latter is required to represent a flag
|
|
13830
|
+
* that is present but disabled (`state: false`) — needed when a consumer reads
|
|
13831
|
+
* the flag with `defaultValueWhenMissing: true`, where mere absence resolves
|
|
13832
|
+
* to enabled rather than disabled.
|
|
13833
|
+
*
|
|
13834
|
+
* @see mockFeatureFlagContext
|
|
13835
|
+
* @example
|
|
13836
|
+
* ...
|
|
13837
|
+
* it("should allow render", async () => {
|
|
13838
|
+
* await trackunitProviders().featureFlags(["yourFlag"]).render(<YourTestComponent data-testid="yourTestId" />);
|
|
13839
|
+
* expect(screen.getByTestId("yourTestId")).toBeInTheDocument();
|
|
13840
|
+
* });
|
|
13841
|
+
* ...
|
|
13842
|
+
* @example
|
|
13843
|
+
* // Explicitly disable a flag (present but off):
|
|
13844
|
+
* await trackunitProviders().featureFlags([{ key: "yourFlag", state: false }]).render(...);
|
|
13845
|
+
* @param flags - The feature flags to set. Strings enable the flag; `{ key, state }` objects set an explicit state.
|
|
13846
|
+
* @returns { TrackunitProvidersMockBuilder } - The builder.
|
|
13847
|
+
*/
|
|
13848
|
+
featureFlags(flags) {
|
|
13849
|
+
this.selectedFeatureFlagsContext = {
|
|
13850
|
+
flags: flags.map(flag => (typeof flag === "string" ? { key: flag, state: true } : flag)),
|
|
13851
|
+
};
|
|
13852
|
+
return this;
|
|
13853
|
+
}
|
|
13817
13854
|
/**
|
|
13818
13855
|
* Use this Environment Context.
|
|
13819
13856
|
* Defaults to mockEnvironmentContext.
|
|
@@ -14298,7 +14335,7 @@ class TrackunitProvidersMockBuilder {
|
|
|
14298
14335
|
* @param testChildren - the child element being tested.
|
|
14299
14336
|
*/
|
|
14300
14337
|
getMockedCompositionRoot(testChildren) {
|
|
14301
|
-
return (jsxRuntime.jsx(reactCoreContextsApi.ErrorHandlingContextProvider, { value: this.selectedErrorHandler, children: jsxRuntime.jsx(reactCoreContextsApi.CurrentUserProvider, { value: this.selectedCurrentUserContext, children: jsxRuntime.jsx(reactCoreContextsApi.AnalyticsContext.Provider, { value: this.selectedAnalyticsContext, children: jsxRuntime.jsx(reactCoreContextsApi.UserSubscriptionProvider, { value: this.selectedUserSubscriptionContext, children: jsxRuntime.jsx(reactCoreContextsApi.OemBrandingContextProvider, { value: this.selectedOemBrandingContext, children: jsxRuntime.jsx(reactCoreContextsApi.TokenProvider, { value: this.selectedTokenContext, children: jsxRuntime.jsx(reactCoreContextsApi.ToastProvider, { value: this.selectedToastContext, children: jsxRuntime.jsx(reactCoreContextsApi.ConfirmationDialogProvider, { value: this.selectedConfirmationDialogContext, children: jsxRuntime.jsx(reactCoreContextsApi.FilterBarProvider, { value: this.selectedFilterBarValues, children: jsxRuntime.jsx(reactCoreContextsApi.ExportDataContext.Provider, { value: this.selectedExportDataContext, children: jsxRuntime.jsx(reactCoreContextsApi.AssetSortingProvider, { value: this.selectedAssetSortingContext, children: jsxRuntime.jsx(ApolloMockedProviderWithError, { addTypename: false, mocks: this.selectedApolloMocks, children: jsxRuntime.jsx(reactCoreContextsApi.NavigationContextProvider, { value: this.selectedNavigationContext, children: jsxRuntime.jsx(reactCoreContextsApi.CurrentUserPreferenceProvider, { value: this.selectedCurrentUserPreferenceContext, children: jsxRuntime.jsx(reactCoreContextsApi.EnvironmentContextProvider, { value: this.selectedEnvironmentContext, children: jsxRuntime.jsx(reactCoreContextsApi.ModalDialogContextProvider, { value: this.selectedModalDialogContext, children: jsxRuntime.jsx(reactCoreContextsApi.TimeRangeProvider, { value: this.selectedTimeRangeContext, children: jsxRuntime.jsx(reactCoreContextsApi.WidgetConfigProvider, { value: this.selectedWidgetConfigContext, children: jsxRuntime.jsx(reactCoreContextsApi.GeolocationProvider, { value: this.selectedGeolocationContext, children: testChildren }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }));
|
|
14338
|
+
return (jsxRuntime.jsx(reactCoreContextsApi.ErrorHandlingContextProvider, { value: this.selectedErrorHandler, children: jsxRuntime.jsx(reactCoreContextsApi.CurrentUserProvider, { value: this.selectedCurrentUserContext, children: jsxRuntime.jsx(reactCoreContextsApi.AnalyticsContext.Provider, { value: this.selectedAnalyticsContext, children: jsxRuntime.jsx(reactCoreContextsApi.UserSubscriptionProvider, { value: this.selectedUserSubscriptionContext, children: jsxRuntime.jsx(reactCoreContextsApi.OemBrandingContextProvider, { value: this.selectedOemBrandingContext, children: jsxRuntime.jsx(reactCoreContextsApi.TokenProvider, { value: this.selectedTokenContext, children: jsxRuntime.jsx(reactCoreContextsApi.ToastProvider, { value: this.selectedToastContext, children: jsxRuntime.jsx(reactCoreContextsApi.ConfirmationDialogProvider, { value: this.selectedConfirmationDialogContext, children: jsxRuntime.jsx(reactCoreContextsApi.FilterBarProvider, { value: this.selectedFilterBarValues, children: jsxRuntime.jsx(reactCoreContextsApi.ExportDataContext.Provider, { value: this.selectedExportDataContext, children: jsxRuntime.jsx(reactCoreContextsApi.AssetSortingProvider, { value: this.selectedAssetSortingContext, children: jsxRuntime.jsx(ApolloMockedProviderWithError, { addTypename: false, mocks: this.selectedApolloMocks, children: jsxRuntime.jsx(reactCoreContextsApi.NavigationContextProvider, { value: this.selectedNavigationContext, children: jsxRuntime.jsx(reactCoreContextsApi.CurrentUserPreferenceProvider, { value: this.selectedCurrentUserPreferenceContext, children: jsxRuntime.jsx(reactCoreContextsApi.EnvironmentContextProvider, { value: this.selectedEnvironmentContext, children: jsxRuntime.jsx(reactCoreContextsApi.ModalDialogContextProvider, { value: this.selectedModalDialogContext, children: jsxRuntime.jsx(reactCoreContextsApi.TimeRangeProvider, { value: this.selectedTimeRangeContext, children: jsxRuntime.jsx(reactCoreContextsApi.WidgetConfigProvider, { value: this.selectedWidgetConfigContext, children: jsxRuntime.jsx(reactCoreContextsApi.GeolocationProvider, { value: this.selectedGeolocationContext, children: jsxRuntime.jsx(reactCoreContextsApi.FeatureFlagContextProvider, { value: this.selectedFeatureFlagsContext, children: testChildren }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }));
|
|
14302
14339
|
}
|
|
14303
14340
|
getMockedCompositionRootWithRouter(testChildren) {
|
|
14304
14341
|
const childrenWithRouter = (jsxRuntime.jsx(RouterContainer, { addTestRootContainer: true, rootRoute: this.selectedRootRoute, selectedRouterProps: this.selectedRouterProps, children: testChildren }));
|
|
@@ -14624,6 +14661,7 @@ exports.mockAnalyticsContext = mockAnalyticsContext;
|
|
|
14624
14661
|
exports.mockAssetSortingContext = mockAssetSortingContext;
|
|
14625
14662
|
exports.mockCurrentUserContext = mockCurrentUserContext;
|
|
14626
14663
|
exports.mockEnvironmentContext = mockEnvironmentContext;
|
|
14664
|
+
exports.mockFeatureFlagContext = mockFeatureFlagContext;
|
|
14627
14665
|
exports.mockFilterBarContext = mockFilterBarContext;
|
|
14628
14666
|
exports.mockNavigationContext = mockNavigationContext;
|
|
14629
14667
|
exports.mockOemBrandingContext = mockOemBrandingContext;
|
package/index.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { D as Debugger, T as TrackunitProvidersMockBuilder,
|
|
1
|
+
export { D as Debugger, T as TrackunitProvidersMockBuilder, o as doNothing, f as flushPromises, b as flushPromisesInAct, n as mergeDeepVars, m as mockAnalyticsContext, c as mockAssetSortingContext, d as mockCurrentUserContext, e as mockEnvironmentContext, g as mockFeatureFlagContext, h as mockFilterBarContext, i as mockNavigationContext, j as mockOemBrandingContext, k as mockToastContext, l as mockUserSubscriptionContext, q as queryFor, p as queryForHook, t as trackunitProviders, u as useDebugger, v as validateIrisApp } from './index.esm2.js';
|
|
2
2
|
import '@trackunit/iris-app-runtime-core-api';
|
|
3
3
|
import 'react/jsx-runtime';
|
|
4
4
|
import 'react';
|
package/index.esm2.js
CHANGED
|
@@ -5,7 +5,7 @@ import React__default, { createContext, useContext, Children, createElement, isV
|
|
|
5
5
|
import * as DeprecatedReactTestUtils from 'react-dom/test-utils';
|
|
6
6
|
import ReactDOM from 'react-dom';
|
|
7
7
|
import * as ReactDOMClient from 'react-dom/client';
|
|
8
|
-
import { ErrorHandlingContextProvider, CurrentUserProvider, AnalyticsContext, UserSubscriptionProvider, OemBrandingContextProvider, TokenProvider, ToastProvider, ConfirmationDialogProvider, FilterBarProvider, ExportDataContext, AssetSortingProvider, NavigationContextProvider, CurrentUserPreferenceProvider, EnvironmentContextProvider, ModalDialogContextProvider, TimeRangeProvider, WidgetConfigProvider, GeolocationProvider } from '@trackunit/react-core-contexts-api';
|
|
8
|
+
import { ErrorHandlingContextProvider, CurrentUserProvider, AnalyticsContext, UserSubscriptionProvider, OemBrandingContextProvider, TokenProvider, ToastProvider, ConfirmationDialogProvider, FilterBarProvider, ExportDataContext, AssetSortingProvider, NavigationContextProvider, CurrentUserPreferenceProvider, EnvironmentContextProvider, ModalDialogContextProvider, TimeRangeProvider, WidgetConfigProvider, GeolocationProvider, FeatureFlagContextProvider } from '@trackunit/react-core-contexts-api';
|
|
9
9
|
import { omit } from 'es-toolkit';
|
|
10
10
|
import { ApolloLink } from '@apollo/client';
|
|
11
11
|
import { loadDevMessages, loadErrorMessages } from '@apollo/client/dev';
|
|
@@ -98,6 +98,10 @@ const mockEnvironmentContext = {
|
|
|
98
98
|
reportAccessClientId: "",
|
|
99
99
|
};
|
|
100
100
|
|
|
101
|
+
const mockFeatureFlagContext = {
|
|
102
|
+
flags: [],
|
|
103
|
+
};
|
|
104
|
+
|
|
101
105
|
/**
|
|
102
106
|
* This is a mock for the FilterBarContext.
|
|
103
107
|
*
|
|
@@ -13757,6 +13761,7 @@ class TrackunitProvidersMockBuilder {
|
|
|
13757
13761
|
this.selectedCurrentUserContext = mockCurrentUserContext;
|
|
13758
13762
|
this.selectedCurrentUserPreferenceContext = mockCurrentUserPreferenceContext;
|
|
13759
13763
|
this.selectedAnalyticsContext = mockAnalyticsContext;
|
|
13764
|
+
this.selectedFeatureFlagsContext = mockFeatureFlagContext;
|
|
13760
13765
|
this.selectedOemBrandingContext = mockOemBrandingContext;
|
|
13761
13766
|
this.selectedUserSubscriptionContext = mockUserSubscriptionContext;
|
|
13762
13767
|
this.selectedFilterBarValues = mockFilterBarContext;
|
|
@@ -13792,6 +13797,38 @@ class TrackunitProvidersMockBuilder {
|
|
|
13792
13797
|
this.selectedAnalyticsContext = { ...mockAnalyticsContext, ...analyticsContext };
|
|
13793
13798
|
return this;
|
|
13794
13799
|
}
|
|
13800
|
+
/**
|
|
13801
|
+
* Use this to pass in enabled feature flags.
|
|
13802
|
+
* Defaults to mockFeatureFlagContext (no enabled flags).
|
|
13803
|
+
*
|
|
13804
|
+
* This context is used by the useFeatureFlags hook from lib "@trackunit/react-core-hooks"
|
|
13805
|
+
*
|
|
13806
|
+
* Pass a bare string to enable a flag (`state: true`), or a `{ key, state }`
|
|
13807
|
+
* object to set an explicit state. The latter is required to represent a flag
|
|
13808
|
+
* that is present but disabled (`state: false`) — needed when a consumer reads
|
|
13809
|
+
* the flag with `defaultValueWhenMissing: true`, where mere absence resolves
|
|
13810
|
+
* to enabled rather than disabled.
|
|
13811
|
+
*
|
|
13812
|
+
* @see mockFeatureFlagContext
|
|
13813
|
+
* @example
|
|
13814
|
+
* ...
|
|
13815
|
+
* it("should allow render", async () => {
|
|
13816
|
+
* await trackunitProviders().featureFlags(["yourFlag"]).render(<YourTestComponent data-testid="yourTestId" />);
|
|
13817
|
+
* expect(screen.getByTestId("yourTestId")).toBeInTheDocument();
|
|
13818
|
+
* });
|
|
13819
|
+
* ...
|
|
13820
|
+
* @example
|
|
13821
|
+
* // Explicitly disable a flag (present but off):
|
|
13822
|
+
* await trackunitProviders().featureFlags([{ key: "yourFlag", state: false }]).render(...);
|
|
13823
|
+
* @param flags - The feature flags to set. Strings enable the flag; `{ key, state }` objects set an explicit state.
|
|
13824
|
+
* @returns { TrackunitProvidersMockBuilder } - The builder.
|
|
13825
|
+
*/
|
|
13826
|
+
featureFlags(flags) {
|
|
13827
|
+
this.selectedFeatureFlagsContext = {
|
|
13828
|
+
flags: flags.map(flag => (typeof flag === "string" ? { key: flag, state: true } : flag)),
|
|
13829
|
+
};
|
|
13830
|
+
return this;
|
|
13831
|
+
}
|
|
13795
13832
|
/**
|
|
13796
13833
|
* Use this Environment Context.
|
|
13797
13834
|
* Defaults to mockEnvironmentContext.
|
|
@@ -14276,7 +14313,7 @@ class TrackunitProvidersMockBuilder {
|
|
|
14276
14313
|
* @param testChildren - the child element being tested.
|
|
14277
14314
|
*/
|
|
14278
14315
|
getMockedCompositionRoot(testChildren) {
|
|
14279
|
-
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(ExportDataContext.Provider, { value: this.selectedExportDataContext, 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: jsx(WidgetConfigProvider, { value: this.selectedWidgetConfigContext, children: jsx(GeolocationProvider, { value: this.selectedGeolocationContext, children: testChildren }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }));
|
|
14316
|
+
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(ExportDataContext.Provider, { value: this.selectedExportDataContext, 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: jsx(WidgetConfigProvider, { value: this.selectedWidgetConfigContext, children: jsx(GeolocationProvider, { value: this.selectedGeolocationContext, children: jsx(FeatureFlagContextProvider, { value: this.selectedFeatureFlagsContext, children: testChildren }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }));
|
|
14280
14317
|
}
|
|
14281
14318
|
getMockedCompositionRootWithRouter(testChildren) {
|
|
14282
14319
|
const childrenWithRouter = (jsx(RouterContainer, { addTestRootContainer: true, rootRoute: this.selectedRootRoute, selectedRouterProps: this.selectedRouterProps, children: testChildren }));
|
|
@@ -14591,4 +14628,4 @@ const validateIrisApp = async (irisApp) => {
|
|
|
14591
14628
|
return null;
|
|
14592
14629
|
};
|
|
14593
14630
|
|
|
14594
|
-
export { Debugger as D, TrackunitProvidersMockBuilder as T, act as a, flushPromisesInAct as b, mockAssetSortingContext as c, mockCurrentUserContext as d, mockEnvironmentContext as e, flushPromises as f,
|
|
14631
|
+
export { Debugger as D, TrackunitProvidersMockBuilder as T, act as a, flushPromisesInAct as b, mockAssetSortingContext as c, mockCurrentUserContext as d, mockEnvironmentContext as e, flushPromises as f, mockFeatureFlagContext as g, mockFilterBarContext as h, mockNavigationContext as i, mockOemBrandingContext as j, mockToastContext as k, mockUserSubscriptionContext as l, mockAnalyticsContext as m, mergeDeepVars as n, doNothing as o, queryForHook as p, queryFor as q, renderHook as r, trackunitProviders as t, useDebugger as u, validateIrisApp as v };
|
package/package.json
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trackunit/react-core-contexts-test",
|
|
3
|
-
"version": "1.17.53
|
|
3
|
+
"version": "1.17.53",
|
|
4
4
|
"repository": "https://github.com/Trackunit/manager",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
6
6
|
"engines": {
|
|
7
7
|
"node": ">=24.x"
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
|
-
"@trackunit/shared-utils": "1.15.48
|
|
10
|
+
"@trackunit/shared-utils": "1.15.48",
|
|
11
11
|
"@tanstack/router-core": "1.114.29",
|
|
12
|
-
"@trackunit/iris-app-runtime-core-api": "1.16.53
|
|
13
|
-
"@trackunit/react-core-contexts-api": "1.17.53
|
|
12
|
+
"@trackunit/iris-app-runtime-core-api": "1.16.53",
|
|
13
|
+
"@trackunit/react-core-contexts-api": "1.17.53",
|
|
14
14
|
"es-toolkit": "^1.39.10"
|
|
15
15
|
},
|
|
16
16
|
"peerDependencies": {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { MockedResponse } from "@apollo/client/testing";
|
|
2
2
|
import { AnyRoute, RegisteredRouter } from "@tanstack/react-router";
|
|
3
3
|
import { RenderResult } from "@testing-library/react";
|
|
4
|
-
import { AnalyticsRuntimeApiSync, AssetSortingState, ConfirmationDialogRuntimeApi, CurrentUserPreferenceState, CurrentUserState, EnvironmentState, ErrorHandlingContextValue, FilterBarContext, ModalDialogRuntimeApi, NavigationRuntimeApi, OemBrandingRuntimeApi, TimeRangeContext, TokenContext, UserSubscription, WidgetConfigContext } from "@trackunit/iris-app-runtime-core-api";
|
|
4
|
+
import { AnalyticsRuntimeApiSync, AssetSortingState, ConfirmationDialogRuntimeApi, CurrentUserPreferenceState, CurrentUserState, EnvironmentState, ErrorHandlingContextValue, FeatureFlagState, FilterBarContext, ModalDialogRuntimeApi, NavigationRuntimeApi, OemBrandingRuntimeApi, TimeRangeContext, TokenContext, UserSubscription, WidgetConfigContext } from "@trackunit/iris-app-runtime-core-api";
|
|
5
5
|
import { ExportDataContextState, GeolocationContextValue, ToastContextValue } from "@trackunit/react-core-contexts-api";
|
|
6
6
|
import { ReactElement, ReactNode } from "react";
|
|
7
7
|
import { MemoryRouterProps } from "./utils/routingUtils";
|
|
@@ -31,6 +31,7 @@ export declare class TrackunitProvidersMockBuilder<TRouterTree extends AnyRoute>
|
|
|
31
31
|
protected selectedCurrentUserContext: CurrentUserState;
|
|
32
32
|
protected selectedCurrentUserPreferenceContext: CurrentUserPreferenceState;
|
|
33
33
|
protected selectedAnalyticsContext: AnalyticsRuntimeApiSync<Record<string, never>>;
|
|
34
|
+
protected selectedFeatureFlagsContext: FeatureFlagState;
|
|
34
35
|
protected selectedOemBrandingContext: OemBrandingRuntimeApi;
|
|
35
36
|
protected selectedUserSubscriptionContext: UserSubscription;
|
|
36
37
|
protected selectedFilterBarValues: FilterBarContext;
|
|
@@ -61,6 +62,36 @@ export declare class TrackunitProvidersMockBuilder<TRouterTree extends AnyRoute>
|
|
|
61
62
|
* @returns { TrackunitProvidersMockBuilder } - The builder.
|
|
62
63
|
*/
|
|
63
64
|
analytics(analyticsContext: Partial<AnalyticsRuntimeApiSync<any>>): this;
|
|
65
|
+
/**
|
|
66
|
+
* Use this to pass in enabled feature flags.
|
|
67
|
+
* Defaults to mockFeatureFlagContext (no enabled flags).
|
|
68
|
+
*
|
|
69
|
+
* This context is used by the useFeatureFlags hook from lib "@trackunit/react-core-hooks"
|
|
70
|
+
*
|
|
71
|
+
* Pass a bare string to enable a flag (`state: true`), or a `{ key, state }`
|
|
72
|
+
* object to set an explicit state. The latter is required to represent a flag
|
|
73
|
+
* that is present but disabled (`state: false`) — needed when a consumer reads
|
|
74
|
+
* the flag with `defaultValueWhenMissing: true`, where mere absence resolves
|
|
75
|
+
* to enabled rather than disabled.
|
|
76
|
+
*
|
|
77
|
+
* @see mockFeatureFlagContext
|
|
78
|
+
* @example
|
|
79
|
+
* ...
|
|
80
|
+
* it("should allow render", async () => {
|
|
81
|
+
* await trackunitProviders().featureFlags(["yourFlag"]).render(<YourTestComponent data-testid="yourTestId" />);
|
|
82
|
+
* expect(screen.getByTestId("yourTestId")).toBeInTheDocument();
|
|
83
|
+
* });
|
|
84
|
+
* ...
|
|
85
|
+
* @example
|
|
86
|
+
* // Explicitly disable a flag (present but off):
|
|
87
|
+
* await trackunitProviders().featureFlags([{ key: "yourFlag", state: false }]).render(...);
|
|
88
|
+
* @param flags - The feature flags to set. Strings enable the flag; `{ key, state }` objects set an explicit state.
|
|
89
|
+
* @returns { TrackunitProvidersMockBuilder } - The builder.
|
|
90
|
+
*/
|
|
91
|
+
featureFlags(flags: Array<string | {
|
|
92
|
+
key: string;
|
|
93
|
+
state: boolean;
|
|
94
|
+
}>): this;
|
|
64
95
|
/**
|
|
65
96
|
* Use this Environment Context.
|
|
66
97
|
* Defaults to mockEnvironmentContext.
|
package/src/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export * from "./mocks/mockAnalyticsContext";
|
|
|
2
2
|
export * from "./mocks/mockAssetSortingContext";
|
|
3
3
|
export * from "./mocks/mockCurrentUserContext";
|
|
4
4
|
export * from "./mocks/mockEnvironmentContext";
|
|
5
|
+
export * from "./mocks/mockFeatureFlagContext";
|
|
5
6
|
export * from "./mocks/mockFilterBarContext";
|
|
6
7
|
export * from "./mocks/mockNavigationContext";
|
|
7
8
|
export * from "./mocks/mockOemBrandingContext";
|