mod-arch-shared 0.1.4 → 0.1.6

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.
Files changed (57) hide show
  1. package/README.md +39 -0
  2. package/dist/components/NavBar.d.ts.map +1 -1
  3. package/dist/components/NavBar.js +9 -2
  4. package/dist/components/NavBar.js.map +1 -1
  5. package/dist/components/__tests__/NavBar.test.d.ts +2 -0
  6. package/dist/components/__tests__/NavBar.test.d.ts.map +1 -0
  7. package/dist/components/__tests__/NavBar.test.js +64 -0
  8. package/dist/components/__tests__/NavBar.test.js.map +1 -0
  9. package/dist/components/design/TypedObjectIcon.d.ts.map +1 -1
  10. package/dist/components/design/TypedObjectIcon.js +7 -1
  11. package/dist/components/design/TypedObjectIcon.js.map +1 -1
  12. package/dist/context/ModularArchContext.d.ts +0 -5
  13. package/dist/context/ModularArchContext.d.ts.map +1 -1
  14. package/dist/context/ModularArchContext.js +28 -72
  15. package/dist/context/ModularArchContext.js.map +1 -1
  16. package/dist/context/__tests__/ModularArchContext.test.js +84 -1
  17. package/dist/context/__tests__/ModularArchContext.test.js.map +1 -1
  18. package/dist/hooks/__tests__/useModularArchContext.test.js +7 -20
  19. package/dist/hooks/__tests__/useModularArchContext.test.js.map +1 -1
  20. package/dist/hooks/__tests__/useNamespaces.test.d.ts +2 -0
  21. package/dist/hooks/__tests__/useNamespaces.test.d.ts.map +1 -0
  22. package/dist/hooks/__tests__/useNamespaces.test.js +63 -0
  23. package/dist/hooks/__tests__/useNamespaces.test.js.map +1 -0
  24. package/dist/hooks/useModularArchContext.d.ts +1 -2
  25. package/dist/hooks/useModularArchContext.d.ts.map +1 -1
  26. package/dist/hooks/useModularArchContext.js +1 -8
  27. package/dist/hooks/useModularArchContext.js.map +1 -1
  28. package/dist/hooks/useNamespaceSelector.js +2 -2
  29. package/dist/hooks/useNamespaceSelector.js.map +1 -1
  30. package/dist/hooks/useNamespaces.d.ts +2 -1
  31. package/dist/hooks/useNamespaces.d.ts.map +1 -1
  32. package/dist/hooks/useNamespaces.js +15 -5
  33. package/dist/hooks/useNamespaces.js.map +1 -1
  34. package/dist/hooks/useQueryParamNamespaces.d.ts.map +1 -1
  35. package/dist/hooks/useQueryParamNamespaces.js +1 -0
  36. package/dist/hooks/useQueryParamNamespaces.js.map +1 -1
  37. package/dist/hooks/useSettings.d.ts.map +1 -1
  38. package/dist/hooks/useSettings.js +2 -1
  39. package/dist/hooks/useSettings.js.map +1 -1
  40. package/dist/types/common.d.ts +7 -0
  41. package/dist/types/common.d.ts.map +1 -1
  42. package/dist/types/common.js.map +1 -1
  43. package/dist/types/k8sTypes.d.ts +24 -0
  44. package/dist/types/k8sTypes.d.ts.map +1 -1
  45. package/dist/utilities/index.d.ts +1 -0
  46. package/dist/utilities/index.d.ts.map +1 -1
  47. package/dist/utilities/index.js +1 -0
  48. package/dist/utilities/index.js.map +1 -1
  49. package/dist/utilities/string.d.ts +2 -0
  50. package/dist/utilities/string.d.ts.map +1 -0
  51. package/dist/utilities/string.js +5 -0
  52. package/dist/utilities/string.js.map +1 -0
  53. package/dist/utilities/utils.d.ts +25 -0
  54. package/dist/utilities/utils.d.ts.map +1 -1
  55. package/dist/utilities/utils.js +98 -0
  56. package/dist/utilities/utils.js.map +1 -1
  57. package/package.json +1 -1
package/README.md CHANGED
@@ -73,6 +73,45 @@ The repository contains the following modules:
73
73
  - **style**: Global styles
74
74
  - **types**: TypeScript type definitions
75
75
 
76
+ ## Configuration
77
+
78
+ ### ModularArchConfig
79
+
80
+ The library supports various configuration options through the `ModularArchConfig` interface:
81
+
82
+ ```typescript
83
+ interface ModularArchConfig {
84
+ deploymentMode: DeploymentMode;
85
+ platformMode: PlatformMode;
86
+ URL_PREFIX: string;
87
+ BFF_API_VERSION: string;
88
+ mandatoryNamespace?: string; // Optional: Force a specific namespace
89
+ }
90
+ ```
91
+
92
+ #### Mandatory Namespace
93
+
94
+ The `mandatoryNamespace` option allows you to enforce a specific namespace throughout the application:
95
+
96
+ ```typescript
97
+ const config = {
98
+ deploymentMode: DeploymentMode.Standalone,
99
+ platformMode: PlatformMode.Default,
100
+ URL_PREFIX: '/api',
101
+ BFF_API_VERSION: 'v1',
102
+ mandatoryNamespace: 'production' // Force the use of 'production' namespace
103
+ };
104
+ ```
105
+
106
+ When `mandatoryNamespace` is set:
107
+
108
+ - The namespace selector in the UI will be disabled
109
+ - All API calls will be restricted to the specified namespace
110
+ - Users cannot switch to different namespaces
111
+ - The `useNamespaces` hook will only return the mandatory namespace
112
+
113
+ This is useful for production environments or when you want to restrict users to a specific namespace.
114
+
76
115
  ## Development
77
116
 
78
117
  ### Prerequisites
@@ -1 +1 @@
1
- {"version":3,"file":"NavBar.d.ts","sourceRoot":"","sources":["../../components/NavBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AA0B1B,UAAU,WAAW;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,QAAA,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAkFjC,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"NavBar.d.ts","sourceRoot":"","sources":["../../components/NavBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AA2B1B,UAAU,WAAW;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,QAAA,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CA0FjC,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -3,12 +3,16 @@ import { Brand, Dropdown, DropdownItem, DropdownList, Masthead, MastheadBrand, M
3
3
  import { SimpleSelect } from '@patternfly/react-templates';
4
4
  import { BarsIcon } from '@patternfly/react-icons';
5
5
  import { useNamespaceSelector } from '../hooks/useNamespaceSelector';
6
+ import { useModularArchContext } from '../hooks/useModularArchContext';
6
7
  import logoDarkTheme from '../images/logo-dark-theme.svg';
7
8
  import { useThemeContext } from '../hooks/useThemeContext';
8
9
  const NavBar = ({ username, onLogout }) => {
9
10
  const { namespaces, preferredNamespace, updatePreferredNamespace } = useNamespaceSelector();
11
+ const { config } = useModularArchContext();
10
12
  const { isMUITheme } = useThemeContext();
11
13
  const [userMenuOpen, setUserMenuOpen] = React.useState(false);
14
+ // Check if mandatory namespace is configured
15
+ const isMandatoryNamespace = Boolean(config.mandatoryNamespace);
12
16
  const options = namespaces.map((namespace) => ({
13
17
  content: namespace.name,
14
18
  value: namespace.name,
@@ -34,8 +38,11 @@ const NavBar = ({ username, onLogout }) => {
34
38
  React.createElement(ToolbarContent, null,
35
39
  React.createElement(ToolbarGroup, { variant: "action-group-plain", align: { default: 'alignStart' } },
36
40
  React.createElement(ToolbarItem, { className: "kubeflow-u-namespace-select" },
37
- React.createElement(SimpleSelect, { initialOptions: options, onSelect: (_ev, selection) => {
38
- updatePreferredNamespace({ name: String(selection) });
41
+ React.createElement(SimpleSelect, { initialOptions: options, isDisabled: isMandatoryNamespace, onSelect: (_ev, selection) => {
42
+ // Only allow selection if not mandatory namespace
43
+ if (!isMandatoryNamespace) {
44
+ updatePreferredNamespace({ name: String(selection) });
45
+ }
39
46
  } }))),
40
47
  username && (React.createElement(ToolbarGroup, { variant: "action-group-plain", align: { default: 'alignEnd' } },
41
48
  React.createElement(ToolbarItem, null,
@@ -1 +1 @@
1
- {"version":3,"file":"NavBar.js","sourceRoot":"","sources":["../../components/NavBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,UAAU,EAEV,gBAAgB,EAChB,OAAO,EACP,cAAc,EACd,YAAY,EACZ,WAAW,GACZ,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,aAAa,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAO1D,MAAM,MAAM,GAA0B,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC/D,MAAM,EAAE,UAAU,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,GAAG,oBAAoB,EAAE,CAAC;IAC5F,MAAM,EAAE,UAAU,EAAE,GAAG,eAAe,EAAE,CAAC;IAEzC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE9D,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC7C,OAAO,EAAE,SAAS,CAAC,IAAI;QACvB,KAAK,EAAE,SAAS,CAAC,IAAI;QACrB,QAAQ,EAAE,SAAS,CAAC,IAAI,KAAK,kBAAkB,EAAE,IAAI;KACtD,CAAC,CAAC,CAAC;IAEJ,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,eAAe,CAAC,KAAK,CAAC,CAAC;QACvB,QAAQ,EAAE,CAAC;IACb,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG;QACpB,oBAAC,YAAY,IAAC,GAAG,EAAC,QAAQ,EAAC,OAAO,EAAE,YAAY,cAEjC;KAChB,CAAC;IAEF,OAAO,CACL,oBAAC,QAAQ;QACP,oBAAC,YAAY;YACX,oBAAC,cAAc;gBACb,oBAAC,gBAAgB,IAAC,EAAE,EAAC,iBAAiB,EAAC,OAAO,EAAC,OAAO,gBAAY,sBAAsB;oBACtF,oBAAC,QAAQ,OAAG,CACK,CACJ;YAChB,CAAC,UAAU,CAAC,CAAC,CAAC,CACb,oBAAC,aAAa;gBACZ,oBAAC,YAAY,IAAC,SAAS,EAAC,GAAG;oBACzB,oBAAC,KAAK,IAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAC,UAAU,EAAC,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAI,CAC7D,CACD,CACjB,CAAC,CAAC,CAAC,IAAI,CACK;QACf,oBAAC,eAAe;YACd,oBAAC,OAAO;gBACN,oBAAC,cAAc;oBACb,oBAAC,YAAY,IAAC,OAAO,EAAC,oBAAoB,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE;wBACzE,oBAAC,WAAW,IAAC,SAAS,EAAC,6BAA6B;4BAClD,oBAAC,YAAY,IACX,cAAc,EAAE,OAAO,EACvB,QAAQ,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE;oCAC3B,wBAAwB,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gCACxD,CAAC,GACD,CACU,CACD;oBACd,QAAQ,IAAI,CACX,oBAAC,YAAY,IAAC,OAAO,EAAC,oBAAoB,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;wBACvE,oBAAC,WAAW;4BACV,oBAAC,QAAQ,IACP,WAAW,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAClC,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,EACjD,MAAM,EAAE,CAAC,SAAuC,EAAE,EAAE,CAAC,CACnD,oBAAC,UAAU,kBACE,WAAW,EACtB,EAAE,EAAC,kBAAkB,iBACT,yBAAyB,EACrC,GAAG,EAAE,SAAS,EACd,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,EAC7C,UAAU,EAAE,YAAY,IAEvB,QAAQ,CACE,CACd,EACD,MAAM,EAAE,YAAY;gCAEpB,oBAAC,YAAY,QAAE,aAAa,CAAgB,CACnC,CACC,CACD,CAChB,CACc,CACT,CACM,CACT,CACZ,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"NavBar.js","sourceRoot":"","sources":["../../components/NavBar.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import '@testing-library/jest-dom';
2
+ //# sourceMappingURL=NavBar.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NavBar.test.d.ts","sourceRoot":"","sources":["../../../components/__tests__/NavBar.test.tsx"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAC"}
@@ -0,0 +1,64 @@
1
+ import '@testing-library/jest-dom';
2
+ import React from 'react';
3
+ import { render, screen } from '@testing-library/react';
4
+ import * as useFetchStateModule from '../../utilities/useFetchState';
5
+ import { ModularArchContextProvider } from '../../context/ModularArchContext';
6
+ import { DeploymentMode, PlatformMode } from '../../utilities';
7
+ import NavBar from '../NavBar';
8
+ // Mock the utilities
9
+ jest.mock('~/utilities/useFetchState');
10
+ jest.mock('~/api/k8s', () => ({
11
+ getNamespaces: jest.fn(() => jest.fn(() => Promise.resolve([]))),
12
+ }));
13
+ const mockUseFetchState = useFetchStateModule.useFetchState;
14
+ const createMockConfig = (mandatoryNamespace, deploymentMode = DeploymentMode.Standalone, platformMode = PlatformMode.Default) => ({
15
+ deploymentMode,
16
+ platformMode,
17
+ URL_PREFIX: 'test',
18
+ BFF_API_VERSION: 'v1',
19
+ ...(mandatoryNamespace && { mandatoryNamespace }),
20
+ });
21
+ const createWrapper = (config) => {
22
+ const Wrapper = ({ children }) => (React.createElement(ModularArchContextProvider, { config: config }, children));
23
+ Wrapper.displayName = 'TestWrapper';
24
+ return Wrapper;
25
+ };
26
+ describe('NavBar mandatory namespace functionality', () => {
27
+ beforeEach(() => {
28
+ jest.clearAllMocks();
29
+ // Mock fetch for script loading
30
+ global.fetch = jest.fn().mockResolvedValue({ ok: false });
31
+ });
32
+ afterEach(() => {
33
+ jest.restoreAllMocks();
34
+ });
35
+ it('should disable namespace selection when mandatory namespace is set', async () => {
36
+ const mandatoryNamespace = 'mandatory-namespace';
37
+ const config = createMockConfig(mandatoryNamespace);
38
+ const Wrapper = createWrapper(config);
39
+ // Mock useFetchState to return only the mandatory namespace
40
+ mockUseFetchState.mockReturnValue([[{ name: mandatoryNamespace }], true, undefined, jest.fn()]);
41
+ render(React.createElement(NavBar, { onLogout: jest.fn() }), { wrapper: Wrapper });
42
+ // Check that the namespace selector is present with the mandatory namespace text
43
+ const namespaceButton = screen.getByText(mandatoryNamespace);
44
+ expect(namespaceButton).toBeInTheDocument();
45
+ // The MenuToggle button should be disabled due to mandatory namespace
46
+ const menuToggle = namespaceButton.closest('button');
47
+ expect(menuToggle).toBeDisabled();
48
+ });
49
+ it('should allow namespace selection when no mandatory namespace is set', async () => {
50
+ const config = createMockConfig();
51
+ const Wrapper = createWrapper(config);
52
+ const mockNamespaces = [{ name: 'namespace-1' }, { name: 'namespace-2' }];
53
+ // Mock useFetchState to return multiple namespaces
54
+ mockUseFetchState.mockReturnValue([mockNamespaces, true, undefined, jest.fn()]);
55
+ render(React.createElement(NavBar, { onLogout: jest.fn() }), { wrapper: Wrapper });
56
+ // Check that the namespace selector is present and enabled
57
+ const namespaceButton = screen.getByText('namespace-1');
58
+ expect(namespaceButton).toBeInTheDocument();
59
+ // The MenuToggle button should be enabled (not disabled)
60
+ const menuToggle = namespaceButton.closest('button');
61
+ expect(menuToggle).not.toBeDisabled();
62
+ });
63
+ });
64
+ //# sourceMappingURL=NavBar.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NavBar.test.js","sourceRoot":"","sources":["../../../components/__tests__/NavBar.test.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TypedObjectIcon.d.ts","sourceRoot":"","sources":["../../../components/design/TypedObjectIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAc,MAAM,2BAA2B,CAAC;AAG1E,KAAK,oBAAoB,GAAG,YAAY,GAAG;IACzC,YAAY,EAAE,iBAAiB,CAAC;IAChC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AACF,QAAA,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA0BnD,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"TypedObjectIcon.d.ts","sourceRoot":"","sources":["../../../components/design/TypedObjectIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAc,MAAM,2BAA2B,CAAC;AAG1E,KAAK,oBAAoB,GAAG,YAAY,GAAG;IACzC,YAAY,EAAE,iBAAiB,CAAC;IAChC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AACF,QAAA,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAgCnD,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { ProjectObjectType, typedColor } from '../../components/design/utils';
3
- import { RegisteredModelIcon } from '../../images/icons';
3
+ import { GroupIcon, RegisteredModelIcon, UserIcon } from '../../images/icons';
4
4
  const TypedObjectIcon = ({ resourceType, useTypedColor, style, ...rest }) => {
5
5
  let Icon;
6
6
  switch (resourceType) {
@@ -8,6 +8,12 @@ const TypedObjectIcon = ({ resourceType, useTypedColor, style, ...rest }) => {
8
8
  case ProjectObjectType.modelRegistrySettings:
9
9
  Icon = RegisteredModelIcon;
10
10
  break;
11
+ case ProjectObjectType.user:
12
+ Icon = UserIcon;
13
+ break;
14
+ case ProjectObjectType.group:
15
+ Icon = GroupIcon;
16
+ break;
11
17
  default:
12
18
  return null;
13
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TypedObjectIcon.js","sourceRoot":"","sources":["../../../components/design/TypedObjectIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAOrD,MAAM,eAAe,GAAmC,CAAC,EACvD,YAAY,EACZ,aAAa,EACb,KAAK,EACL,GAAG,IAAI,EACR,EAAE,EAAE;IACH,IAAI,IAAI,CAAC;IAET,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,iBAAiB,CAAC,gBAAgB,CAAC;QACxC,KAAK,iBAAiB,CAAC,qBAAqB;YAC1C,IAAI,GAAG,mBAAmB,CAAC;YAC3B,MAAM;QACR;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,CACL,oBAAC,IAAI,IACH,KAAK,EAAE;YACL,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS;YAC3D,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;SACjB,KACG,IAAI,GACR,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"TypedObjectIcon.js","sourceRoot":"","sources":["../../../components/design/TypedObjectIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAO1E,MAAM,eAAe,GAAmC,CAAC,EACvD,YAAY,EACZ,aAAa,EACb,KAAK,EACL,GAAG,IAAI,EACR,EAAE,EAAE;IACH,IAAI,IAAI,CAAC;IAET,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,iBAAiB,CAAC,gBAAgB,CAAC;QACxC,KAAK,iBAAiB,CAAC,qBAAqB;YAC1C,IAAI,GAAG,mBAAmB,CAAC;YAC3B,MAAM;QACR,KAAK,iBAAiB,CAAC,IAAI;YACzB,IAAI,GAAG,QAAQ,CAAC;YAChB,MAAM;QACR,KAAK,iBAAiB,CAAC,KAAK;YAC1B,IAAI,GAAG,SAAS,CAAC;YACjB,MAAM;QACR;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,CACL,oBAAC,IAAI,IACH,KAAK,EAAE;YACL,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS;YAC3D,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;SACjB,KACG,IAAI,GACR,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -15,11 +15,6 @@ type ModularArchContextProviderProps = {
15
15
  config: ModularArchConfig;
16
16
  };
17
17
  export declare const ModularArchContext: React.Context<ModularArchContextType | undefined>;
18
- declare global {
19
- interface Window {
20
- centraldashboard: any;
21
- }
22
- }
23
18
  export declare const ModularArchContextProvider: React.FC<ModularArchContextProviderProps>;
24
19
  export {};
25
20
  //# sourceMappingURL=ModularArchContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModularArchContext.d.ts","sourceRoot":"","sources":["../../context/ModularArchContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6C,MAAM,OAAO,CAAC;AAElE,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAKvD,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,iBAAiB,CAAC;IAE1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,mBAAmB,CAAC,EAAE,KAAK,CAAC;IAC5B,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,kBAAkB,EAAE,SAAS,GAAG,SAAS,CAAC;IAC1C,wBAAwB,EAAE,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,KAAK,IAAI,CAAC;IACrE,mBAAmB,CAAC,EAAE,KAAK,CAAC;IAE5B,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,KAAK,+BAA+B,GAAG;IACrC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,EAAE,iBAAiB,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,kBAAkB,mDAA+D,CAAC;AAE/F,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QAEd,gBAAgB,EAAE,GAAG,CAAC;KACvB;CACF;AAWD,eAAO,MAAM,0BAA0B,EAAE,KAAK,CAAC,EAAE,CAAC,+BAA+B,CAoIhF,CAAC"}
1
+ {"version":3,"file":"ModularArchContext.d.ts","sourceRoot":"","sources":["../../context/ModularArchContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6C,MAAM,OAAO,CAAC;AAElE,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAIvD,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,iBAAiB,CAAC;IAE1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,mBAAmB,CAAC,EAAE,KAAK,CAAC;IAC5B,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,kBAAkB,EAAE,SAAS,GAAG,SAAS,CAAC;IAC1C,wBAAwB,EAAE,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,KAAK,IAAI,CAAC;IACrE,mBAAmB,CAAC,EAAE,KAAK,CAAC;IAE5B,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,KAAK,+BAA+B,GAAG;IACrC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,EAAE,iBAAiB,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,kBAAkB,mDAA+D,CAAC;AAE/F,eAAO,MAAM,0BAA0B,EAAE,KAAK,CAAC,EAAE,CAAC,+BAA+B,CA+FhF,CAAC"}
@@ -1,94 +1,50 @@
1
1
  import React, { createContext, useEffect, useState } from 'react';
2
2
  import { Bullseye, Spinner } from '@patternfly/react-core';
3
- import { DeploymentMode, PlatformMode } from '../utilities';
4
- import { useFetchState } from '../utilities/useFetchState';
5
- import { getNamespaces } from '../api/k8s';
3
+ import { kubeflowScriptLoader, kubeflowNamespaceLoader } from '../utilities';
4
+ import { useNamespacesWithConfig } from '../hooks/useNamespaces';
6
5
  export const ModularArchContext = createContext(undefined);
7
- const loadScript = (src, onLoad, onError) => {
8
- const script = document.createElement('script');
9
- script.src = src;
10
- script.async = true;
11
- script.onload = onLoad;
12
- script.onerror = onError;
13
- document.head.appendChild(script);
14
- };
15
6
  export const ModularArchContextProvider = ({ children, config, }) => {
16
- const { deploymentMode, platformMode } = config;
17
- // Script loading state
7
+ const { deploymentMode, platformMode, mandatoryNamespace } = config;
18
8
  const [scriptLoaded, setScriptLoaded] = useState(false);
19
- // Namespace-related state
20
- const modArchConfig = React.useMemo(() => ({
21
- BFF_API_VERSION: config.BFF_API_VERSION,
22
- URL_PREFIX: config.URL_PREFIX,
23
- }), [config.BFF_API_VERSION, config.URL_PREFIX]);
24
- const listNamespaces = React.useMemo(() => getNamespaces('', modArchConfig), [modArchConfig]);
25
- const callback = React.useCallback((opts) => {
26
- if (!(deploymentMode === DeploymentMode.Standalone)) {
27
- return Promise.resolve([]);
28
- }
29
- return listNamespaces(opts);
30
- }, [deploymentMode, listNamespaces]);
31
- const [unsortedNamespaces, isLoaded, error] = useFetchState(callback, []);
32
- const namespaces = React.useMemo(() => unsortedNamespaces.toSorted((a, b) => a.name.localeCompare(b.name)), [unsortedNamespaces]);
33
9
  const [preferredNamespace, setPreferredNamespace] = useState(undefined);
34
10
  const [initializationError, setInitializationError] = useState();
11
+ // Namespace-related state
12
+ const [unsortedNamespaces, isLoaded, error] = useNamespacesWithConfig(config);
13
+ const namespaces = React.useMemo(() => unsortedNamespaces.toSorted((a, b) => a.name.localeCompare(b.name)), [unsortedNamespaces]);
35
14
  const firstNamespace = namespaces.length > 0 ? namespaces[0] : null;
15
+ // Set preferred namespace based on mandatory namespace or first available namespace
16
+ const defaultPreferredNamespace = React.useMemo(() => {
17
+ if (mandatoryNamespace) {
18
+ return { name: mandatoryNamespace };
19
+ }
20
+ return firstNamespace;
21
+ }, [mandatoryNamespace, firstNamespace]);
36
22
  // Script loader for kubeflow integration
37
23
  useEffect(() => {
38
- const scriptUrl = '/dashboard_lib.bundle.js';
39
- if (!(deploymentMode === DeploymentMode.Integrated) ||
40
- !(platformMode === PlatformMode.Kubeflow)) {
24
+ kubeflowScriptLoader(deploymentMode, platformMode, () => setScriptLoaded(true), (scriptError) => {
41
25
  // eslint-disable-next-line no-console
42
- console.warn('ModularArchContext: Script not loaded, only needed for kubeflow integration');
43
- setScriptLoaded(true);
44
- return;
45
- }
46
- fetch(scriptUrl, { method: 'HEAD' })
47
- .then((response) => {
48
- if (response.ok) {
49
- loadScript(scriptUrl, () => setScriptLoaded(true),
50
- // eslint-disable-next-line no-console
51
- () => console.error('Failed to load the script'));
52
- }
53
- else {
54
- // eslint-disable-next-line no-console
55
- console.warn('Script not found');
56
- setScriptLoaded(true);
57
- }
58
- })
59
- // eslint-disable-next-line no-console
60
- .catch((err) => console.error('Error checking script existence', err));
26
+ console.error('Error loading kubeflow script:', scriptError);
27
+ setScriptLoaded(true); // Still set to true to not block the UI
28
+ });
61
29
  }, [deploymentMode, platformMode]);
62
30
  // Namespace selector for kubeflow integration
63
31
  useEffect(() => {
64
- if (deploymentMode === DeploymentMode.Integrated &&
65
- platformMode === PlatformMode.Kubeflow &&
66
- scriptLoaded) {
67
- // Initialize the central dashboard client
68
- try {
69
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
70
- window.centraldashboard.CentralDashboardEventHandler.init((cdeh) => {
71
- // eslint-disable-next-line no-param-reassign
72
- cdeh.onNamespaceSelected = (newNamespace) => {
73
- setPreferredNamespace({ name: newNamespace });
74
- };
75
- });
76
- }
77
- catch (err) {
78
- /* eslint-disable no-console */
79
- console.error('Failed to initialize central dashboard client', err);
80
- if (err instanceof Error) {
81
- setInitializationError(err);
82
- }
83
- }
32
+ // If mandatory namespace is set, don't use kubeflow namespace loader
33
+ if (mandatoryNamespace) {
34
+ return;
84
35
  }
85
- }, [deploymentMode, platformMode, scriptLoaded]);
36
+ kubeflowNamespaceLoader(deploymentMode, platformMode, scriptLoaded, (newNamespace) => {
37
+ setPreferredNamespace({ name: newNamespace });
38
+ }, (err) => {
39
+ setInitializationError(err);
40
+ }, mandatoryNamespace);
41
+ }, [deploymentMode, platformMode, scriptLoaded, mandatoryNamespace]);
86
42
  const contextValue = React.useMemo(() => ({
87
43
  config,
88
44
  namespacesLoaded: isLoaded,
89
45
  namespacesLoadError: error,
90
46
  namespaces,
91
- preferredNamespace: preferredNamespace ?? firstNamespace ?? undefined,
47
+ preferredNamespace: preferredNamespace ?? defaultPreferredNamespace ?? undefined,
92
48
  updatePreferredNamespace: setPreferredNamespace,
93
49
  initializationError,
94
50
  scriptLoaded,
@@ -98,7 +54,7 @@ export const ModularArchContextProvider = ({ children, config, }) => {
98
54
  error,
99
55
  namespaces,
100
56
  preferredNamespace,
101
- firstNamespace,
57
+ defaultPreferredNamespace,
102
58
  initializationError,
103
59
  scriptLoaded,
104
60
  ]);
@@ -1 +1 @@
1
- {"version":3,"file":"ModularArchContext.js","sourceRoot":"","sources":["../../context/ModularArchContext.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ModularArchContext.js","sourceRoot":"","sources":["../../context/ModularArchContext.tsx"],"names":[],"mappings":"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"}
@@ -9,11 +9,12 @@ jest.mock('~/utilities/useFetchState');
9
9
  jest.mock('~/api/k8s');
10
10
  const mockUseFetchState = useFetchStateModule.useFetchState;
11
11
  const mockNamespaces = [{ name: 'namespace-2' }, { name: 'namespace-3' }, { name: 'namespace-1' }];
12
- const createMockConfig = (deploymentMode = DeploymentMode.Standalone, platformMode = PlatformMode.Default) => ({
12
+ const createMockConfig = (deploymentMode = DeploymentMode.Standalone, platformMode = PlatformMode.Default, mandatoryNamespace) => ({
13
13
  deploymentMode,
14
14
  platformMode,
15
15
  URL_PREFIX: 'model-registry',
16
16
  BFF_API_VERSION: 'v1',
17
+ ...(mandatoryNamespace && { mandatoryNamespace }),
17
18
  });
18
19
  describe('ModularArchContext', () => {
19
20
  const TestConsumer = () => {
@@ -247,5 +248,87 @@ describe('ModularArchContext', () => {
247
248
  render(React.createElement(TestConsumerWithError, null));
248
249
  expect(screen.getByText('No context')).toBeInTheDocument();
249
250
  });
251
+ describe('mandatory namespace functionality', () => {
252
+ it('should use mandatory namespace when provided in config', async () => {
253
+ const mandatoryNamespace = 'mandatory-namespace';
254
+ // Mock useFetchState to return only the mandatory namespace
255
+ mockUseFetchState.mockReturnValue([
256
+ [{ name: mandatoryNamespace }],
257
+ true,
258
+ undefined,
259
+ jest.fn(),
260
+ ]);
261
+ const config = createMockConfig(DeploymentMode.Standalone, PlatformMode.Default, mandatoryNamespace);
262
+ render(React.createElement(ModularArchContextProvider, { config: config },
263
+ React.createElement(TestConsumer, null)));
264
+ expect(screen.getByTestId('namespaces')).toHaveTextContent(mandatoryNamespace);
265
+ expect(screen.getByTestId('preferred')).toHaveTextContent(mandatoryNamespace);
266
+ });
267
+ it('should not fetch namespaces when mandatory namespace is set', async () => {
268
+ const mandatoryNamespace = 'mandatory-namespace';
269
+ // Mock useFetchState to return only the mandatory namespace
270
+ mockUseFetchState.mockReturnValue([
271
+ [{ name: mandatoryNamespace }],
272
+ true,
273
+ undefined,
274
+ jest.fn(),
275
+ ]);
276
+ const config = createMockConfig(DeploymentMode.Standalone, PlatformMode.Default, mandatoryNamespace);
277
+ render(React.createElement(ModularArchContextProvider, { config: config },
278
+ React.createElement(TestConsumer, null)));
279
+ // Should show the mandatory namespace as loaded
280
+ expect(screen.getByTestId('loading-state')).toHaveTextContent('true');
281
+ expect(screen.getByTestId('namespaces')).toHaveTextContent(mandatoryNamespace);
282
+ expect(screen.getByTestId('preferred')).toHaveTextContent(mandatoryNamespace);
283
+ });
284
+ it('should not use kubeflow namespace loader when mandatory namespace is set', async () => {
285
+ const mandatoryNamespace = 'mandatory-namespace';
286
+ mockUseFetchState.mockReturnValue([
287
+ [{ name: mandatoryNamespace }],
288
+ true,
289
+ undefined,
290
+ jest.fn(),
291
+ ]);
292
+ // Mock fetch to resolve successfully for script loading
293
+ global.fetch.mockResolvedValue({ ok: true });
294
+ // Mock script loading
295
+ const originalCreateElement = document.createElement;
296
+ const mockScript = {
297
+ src: '',
298
+ async: true,
299
+ onload: null,
300
+ onerror: null,
301
+ };
302
+ document.createElement = jest.fn((tagName) => {
303
+ if (tagName === 'script') {
304
+ return mockScript;
305
+ }
306
+ return originalCreateElement.call(document, tagName);
307
+ });
308
+ const appendChild = jest.spyOn(document.head, 'appendChild').mockImplementation(() => {
309
+ setTimeout(() => {
310
+ if (mockScript.onload) {
311
+ mockScript.onload.call(mockScript, new Event('load'));
312
+ }
313
+ }, 0);
314
+ return mockScript;
315
+ });
316
+ // Mock kubeflow window object
317
+ global.window.centraldashboard = {
318
+ CentralDashboardEventHandler: {
319
+ init: jest.fn(),
320
+ },
321
+ };
322
+ const config = createMockConfig(DeploymentMode.Integrated, PlatformMode.Kubeflow, mandatoryNamespace);
323
+ render(React.createElement(ModularArchContextProvider, { config: config },
324
+ React.createElement(TestConsumer, null)));
325
+ await waitFor(() => {
326
+ expect(screen.getByTestId('preferred')).toHaveTextContent(mandatoryNamespace);
327
+ });
328
+ // Cleanup
329
+ document.createElement = originalCreateElement;
330
+ appendChild.mockRestore();
331
+ });
332
+ });
250
333
  });
251
334
  //# sourceMappingURL=ModularArchContext.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModularArchContext.test.js","sourceRoot":"","sources":["../../../context/__tests__/ModularArchContext.test.tsx"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAC;AACnC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC9F,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3D,OAAO,KAAK,mBAAmB,MAAM,2BAA2B,CAAC;AAEjE,qBAAqB;AACrB,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;AACvC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAEvB,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,aAE7C,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;AAEnG,MAAM,gBAAgB,GAAG,CACvB,iBAAiC,cAAc,CAAC,UAAU,EAC1D,eAA6B,YAAY,CAAC,OAAO,EAC9B,EAAE,CAAC,CAAC;IACvB,cAAc;IACd,YAAY;IACZ,UAAU,EAAE,gBAAgB;IAC5B,eAAe,EAAE,IAAI;CACtB,CAAC,CAAC;AAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,4CAAiB,YAAY,iBAAiB,CAAC;QACxD,CAAC;QAED,MAAM,EACJ,MAAM,EACN,UAAU,EACV,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,GACb,GAAG,OAAO,CAAC;QAEZ,OAAO,CACL;YACE,4CAAiB,iBAAiB,IAAE,MAAM,CAAC,cAAc,CAAO;YAChE,4CAAiB,eAAe,IAAE,MAAM,CAAC,YAAY,CAAO;YAC5D,4CAAiB,eAAe,IAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAO;YACpE,4CAAiB,aAAa,IAAE,mBAAmB,EAAE,OAAO,IAAI,UAAU,CAAO;YACjF,4CAAiB,YAAY,IAAE,mBAAmB,EAAE,OAAO,IAAI,eAAe,CAAO;YACrF,4CAAiB,YAAY,IAAE,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAO;YAC/E,4CAAiB,WAAW,IAAE,kBAAkB,EAAE,IAAI,IAAI,MAAM,CAAO;YACvE,4CAAiB,eAAe,IAAE,YAAY,CAAC,QAAQ,EAAE,CAAO,CAC5D,CACP,CAAC;IACJ,CAAC,CAAC;IAEF,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,uCAAuC;QACvC,OAAO,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;QACtC,gCAAgC;QAChC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC5E,iBAAiB,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAEpE,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAElC,MAAM,CACJ,oBAAC,0BAA0B,IAAC,MAAM,EAAE,MAAM;YACxC,oBAAC,YAAY,OAAG,CACW,CAC9B,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAC9E,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACzE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACtE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QACxE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAC/D,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAClE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,iBAAiB,CAAC,eAAe,CAAC,CAAC,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAEhF,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAElC,MAAM,CACJ,oBAAC,0BAA0B,IAAC,MAAM,EAAE,MAAM;YACxC,oBAAC,YAAY,OAAG,CACW,CAC9B,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACtE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QACxE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,iBAAiB,CACxD,qCAAqC,CACtC,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACrD,iBAAiB,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAEhE,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAElC,MAAM,CACJ,oBAAC,0BAA0B,IAAC,MAAM,EAAE,MAAM;YACxC,oBAAC,YAAY,OAAG,CACW,CAC9B,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACtE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,CAAC;QACzF,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAC/D,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,iBAAiB,CAAC,eAAe,CAAC,CAAC,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAEhF,wDAAwD;QACvD,MAAM,CAAC,KAAmB,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5D,gDAAgD;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE;YACpC,qCAAqC;YACrC,QAAQ,CAAC;gBACP,mBAAmB,EAAE,IAAI,CAAC,EAAE,EAAE;aAC/B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,gBAAgB,GAAG;YAC/B,4BAA4B,EAAE;gBAC5B,IAAI,EAAE,QAAQ;aACf;SACF,CAAC;QAEF,sBAAsB;QACtB,MAAM,qBAAqB,GAAG,QAAQ,CAAC,aAAa,CAAC;QACrD,MAAM,UAAU,GAA+B;YAC7C,GAAG,EAAE,EAAE;YACP,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,IAAI;SACd,CAAC;QACF,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,OAAe,EAAmC,EAAE;YACpF,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACzB,OAAO,UAA+B,CAAC;YACzC,CAAC;YACD,OAAO,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,kBAAkB,CAAC,GAAS,EAAE;YACzF,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;oBACrB,UAAU,CAAC,MAA0D,CAAC,IAAI,CACzE,UAA+B,EAC/B,IAAI,KAAK,CAAC,MAAM,CAAC,CAClB,CAAC;gBACJ,CAAC;YACH,CAAC,EAAE,CAAC,CAAC,CAAC;YACN,OAAO,UAAkB,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,gBAAgB,CAAC,cAAc,CAAC,UAAU,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;QAElF,MAAM,CACJ,oBAAC,0BAA0B,IAAC,MAAM,EAAE,MAAM;YACxC,oBAAC,YAAY,OAAG,CACW,CAC9B,CAAC;QAEF,iCAAiC;QACjC,MAAM,OAAO,CAAC,GAAG,EAAE;YACjB,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAEpC,UAAU;QACV,QAAQ,CAAC,aAAa,GAAG,qBAAqB,CAAC;QAC/C,WAAW,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,iBAAiB,CAAC,eAAe,CAAC,CAAC,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAEhF,MAAM,WAAW,GAAG,GAAG,EAAE;YACvB,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;YACrD,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;gBACnB,IAAI,OAAO,EAAE,CAAC;oBACZ,GAAG,CAAC,GAAG,EAAE;wBACP,OAAO,CAAC,wBAAwB,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;oBAC5D,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;YACd,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAElC,MAAM,CACJ,oBAAC,0BAA0B,IAAC,MAAM,EAAE,MAAM;YACxC,oBAAC,YAAY,OAAG;YAChB,oBAAC,WAAW,OAAG,CACY,CAC9B,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QACjF,iBAAiB,CAAC,eAAe,CAAC,CAAC,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAEhF,wDAAwD;QACvD,MAAM,CAAC,KAAmB,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5D,gDAAgD;QAChD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,kBAAkB,EAAE,CAAC;QAErE,0EAA0E;QAC1E,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QACnE,MAAM,CAAC,MAAM,CAAC,gBAAgB,GAAG;YAC/B,4BAA4B,EAAE;gBAC5B,IAAI,EAAE,GAAG,EAAE;oBACT,MAAM,KAAK,CAAC;gBACd,CAAC;aACF;SACF,CAAC;QAEF,sBAAsB;QACtB,MAAM,qBAAqB,GAAG,QAAQ,CAAC,aAAa,CAAC;QACrD,MAAM,UAAU,GAAG;YACjB,GAAG,EAAE,EAAE;YACP,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,IAA2B;YACnC,OAAO,EAAE,IAA2B;SACrC,CAAC;QACF,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3C,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACzB,OAAO,UAA+B,CAAC;YACzC,CAAC;YACD,OAAO,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE;YACnF,yBAAyB;YACzB,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;oBACtB,UAAU,CAAC,MAAM,EAAE,CAAC;gBACtB,CAAC;YACH,CAAC,EAAE,CAAC,CAAC,CAAC;YACN,OAAO,UAA+B,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,gBAAgB,CAAC,cAAc,CAAC,UAAU,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;QAElF,MAAM,CACJ,oBAAC,0BAA0B,IAAC,MAAM,EAAE,MAAM;YACxC,oBAAC,YAAY,OAAG,CACW,CAC9B,CAAC;QAEF,6CAA6C;QAC7C,MAAM,OAAO,CAAC,GAAG,EAAE;YACjB,MAAM,CAAC,UAAU,CAAC,CAAC,oBAAoB,CACrC,+CAA+C,EAC/C,KAAK,CACN,CAAC;YACF,sDAAsD;YACtD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;QACpE,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,iBAAiB,CACxD,yCAAyC,CAC1C,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAEzE,UAAU;QACV,UAAU,CAAC,WAAW,EAAE,CAAC;QACzB,QAAQ,CAAC,aAAa,GAAG,qBAAqB,CAAC;QAC/C,WAAW,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,iBAAiB,CAAC,eAAe,CAAC,CAAC,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAEhF,MAAM,mBAAmB,GAAG,GAAG,EAAE;YAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;YAErD,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;gBACnB,IAAI,OAAO,EAAE,CAAC;oBACZ,GAAG,CAAC,GAAG,EAAE;wBACP,OAAO,CAAC,wBAAwB,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;wBAC1D,OAAO,CAAC,wBAAwB,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;wBAC1D,OAAO,CAAC,wBAAwB,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;oBAC5D,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;YAEd,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAElC,MAAM,CACJ,oBAAC,0BAA0B,IAAC,MAAM,EAAE,MAAM;YACxC,oBAAC,YAAY,OAAG;YAChB,oBAAC,mBAAmB,OAAG,CACI,CAC9B,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gFAAgF,EAAE,KAAK,IAAI,EAAE;QAC9F,iBAAiB,CAAC,eAAe,CAAC,CAAC,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAEhF,8CAA8C;QAC9C,IAAI,cAAgD,CAAC;QACrD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACtC,cAAc,GAAG,OAAO,CAAC;QAC3B,CAAC,CAAC,CAAC;QACF,MAAM,CAAC,KAAmB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAErD,MAAM,MAAM,GAAG,gBAAgB,CAAC,cAAc,CAAC,UAAU,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;QAElF,MAAM,CACJ,oBAAC,0BAA0B,IAAC,MAAM,EAAE,MAAM;YACxC,oBAAC,YAAY,OAAG,CACW,CAC9B,CAAC;QAEF,8BAA8B;QAC9B,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QAC5D,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;QAExE,iDAAiD;QACjD,GAAG,CAAC,GAAG,EAAE;YACP,cAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,qBAAqB,GAAG,GAAG,EAAE;YACjC,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;YACrD,OAAO,iCAAM,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAO,CAAC;QAC7D,CAAC,CAAC;QAEF,MAAM,CAAC,oBAAC,qBAAqB,OAAG,CAAC,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"ModularArchContext.test.js","sourceRoot":"","sources":["../../../context/__tests__/ModularArchContext.test.tsx"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import React from 'react';
3
3
  import { renderHook } from '@testing-library/react';
4
4
  import { ModularArchContextProvider } from '../../context/ModularArchContext';
5
5
  import { DeploymentMode, PlatformMode } from '../../utilities';
6
- import { useModularArchContext, useModularArchFullContext } from '../useModularArchContext';
6
+ import { useModularArchContext } from '../useModularArchContext';
7
7
  // Mock the k8s API module
8
8
  jest.mock('~/api/k8s', () => ({
9
9
  getNamespaces: jest.fn(() => jest.fn(() => Promise.resolve([]))),
@@ -16,22 +16,6 @@ const mockConfig = {
16
16
  };
17
17
  const wrapper = ({ children }) => (React.createElement(ModularArchContextProvider, { config: mockConfig }, children));
18
18
  describe('useModularArchContext', () => {
19
- beforeEach(() => {
20
- // Mock fetch for script loading
21
- global.fetch = jest.fn().mockResolvedValue({ ok: false });
22
- });
23
- afterEach(() => {
24
- jest.restoreAllMocks();
25
- });
26
- it('should return config from context', () => {
27
- const { result } = renderHook(() => useModularArchContext(), { wrapper });
28
- expect(result.current).toEqual(mockConfig);
29
- });
30
- it('should throw error when used outside provider', () => {
31
- expect(() => renderHook(() => useModularArchContext())).toThrow();
32
- });
33
- });
34
- describe('useModularArchFullContext', () => {
35
19
  beforeEach(() => {
36
20
  // Mock fetch for script loading
37
21
  global.fetch = jest.fn().mockResolvedValue({ ok: false });
@@ -40,14 +24,17 @@ describe('useModularArchFullContext', () => {
40
24
  jest.restoreAllMocks();
41
25
  });
42
26
  it('should return full context', () => {
43
- const { result } = renderHook(() => useModularArchFullContext(), { wrapper });
44
- expect(result.current.config).toEqual(mockConfig);
27
+ const { result } = renderHook(() => useModularArchContext(), { wrapper });
45
28
  expect(result.current).toHaveProperty('namespaces');
46
29
  expect(result.current).toHaveProperty('namespacesLoaded');
47
30
  expect(result.current).toHaveProperty('scriptLoaded');
48
31
  });
32
+ it('should return config from context', () => {
33
+ const { result } = renderHook(() => useModularArchContext(), { wrapper });
34
+ expect(result.current.config).toEqual(mockConfig);
35
+ });
49
36
  it('should throw error when used outside provider', () => {
50
- expect(() => renderHook(() => useModularArchFullContext())).toThrow();
37
+ expect(() => renderHook(() => useModularArchContext())).toThrow();
51
38
  });
52
39
  });
53
40
  //# sourceMappingURL=useModularArchContext.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useModularArchContext.test.js","sourceRoot":"","sources":["../../../hooks/__tests__/useModularArchContext.test.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useModularArchContext.test.js","sourceRoot":"","sources":["../../../hooks/__tests__/useModularArchContext.test.tsx"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAC;AACnC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,0BAA0B;AAC1B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;IAC5B,aAAa,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;CACjE,CAAC,CAAC,CAAC;AAEJ,MAAM,UAAU,GAAG;IACjB,cAAc,EAAE,cAAc,CAAC,UAAU;IACzC,YAAY,EAAE,YAAY,CAAC,OAAO;IAClC,UAAU,EAAE,MAAM;IAClB,eAAe,EAAE,IAAI;CACtB,CAAC;AAEF,MAAM,OAAO,GAAG,CAAC,EAAE,QAAQ,EAAiC,EAAE,EAAE,CAAC,CAC/D,oBAAC,0BAA0B,IAAC,MAAM,EAAE,UAAU,IAAG,QAAQ,CAA8B,CACxF,CAAC;AAEF,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,UAAU,CAAC,GAAG,EAAE;QACd,gCAAgC;QAChC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,qBAAqB,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAC1E,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QACpD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;QAC1D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,qBAAqB,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAC1E,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACpE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import '@testing-library/jest-dom';
2
+ //# sourceMappingURL=useNamespaces.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNamespaces.test.d.ts","sourceRoot":"","sources":["../../../hooks/__tests__/useNamespaces.test.tsx"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAC"}