@northern.tech/testing 0.8.3 → 0.8.4

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 (89) hide show
  1. package/dist/mockData.cjs +1288 -953
  2. package/dist/mockData.cjs.map +1 -1
  3. package/dist/mockData.d.cts +595 -569
  4. package/dist/mockData.d.ts +595 -569
  5. package/dist/mockData.js +1278 -45
  6. package/dist/mockData.js.map +1 -1
  7. package/dist/requestHandlers/deploymentHandlers.cjs +180 -1031
  8. package/dist/requestHandlers/deploymentHandlers.cjs.map +1 -1
  9. package/dist/requestHandlers/deploymentHandlers.d.cts +5 -3
  10. package/dist/requestHandlers/deploymentHandlers.d.ts +5 -3
  11. package/dist/requestHandlers/deploymentHandlers.js +189 -6
  12. package/dist/requestHandlers/deploymentHandlers.js.map +1 -1
  13. package/dist/requestHandlers/deviceHandlers.cjs +426 -1090
  14. package/dist/requestHandlers/deviceHandlers.cjs.map +1 -1
  15. package/dist/requestHandlers/deviceHandlers.d.cts +17 -15
  16. package/dist/requestHandlers/deviceHandlers.d.ts +17 -15
  17. package/dist/requestHandlers/deviceHandlers.js +426 -10
  18. package/dist/requestHandlers/deviceHandlers.js.map +1 -1
  19. package/dist/requestHandlers/monitorHandlers.cjs +20 -831
  20. package/dist/requestHandlers/monitorHandlers.cjs.map +1 -1
  21. package/dist/requestHandlers/monitorHandlers.d.cts +5 -3
  22. package/dist/requestHandlers/monitorHandlers.d.ts +5 -3
  23. package/dist/requestHandlers/monitorHandlers.js +20 -7
  24. package/dist/requestHandlers/monitorHandlers.js.map +1 -1
  25. package/dist/requestHandlers/organizationHandlers.cjs +296 -1113
  26. package/dist/requestHandlers/organizationHandlers.cjs.map +1 -1
  27. package/dist/requestHandlers/organizationHandlers.d.cts +5 -3
  28. package/dist/requestHandlers/organizationHandlers.d.ts +5 -3
  29. package/dist/requestHandlers/organizationHandlers.js +308 -6
  30. package/dist/requestHandlers/organizationHandlers.js.map +1 -1
  31. package/dist/requestHandlers/releaseHandlers.cjs +156 -960
  32. package/dist/requestHandlers/releaseHandlers.cjs.map +1 -1
  33. package/dist/requestHandlers/releaseHandlers.d.cts +5 -3
  34. package/dist/requestHandlers/releaseHandlers.d.ts +5 -3
  35. package/dist/requestHandlers/releaseHandlers.js +157 -6
  36. package/dist/requestHandlers/releaseHandlers.js.map +1 -1
  37. package/dist/requestHandlers/requestHandlers.cjs +26 -2000
  38. package/dist/requestHandlers/requestHandlers.cjs.map +1 -1
  39. package/dist/requestHandlers/requestHandlers.d.cts +5 -4
  40. package/dist/requestHandlers/requestHandlers.d.ts +5 -3
  41. package/dist/requestHandlers/requestHandlers.js +24 -32
  42. package/dist/requestHandlers/requestHandlers.js.map +1 -1
  43. package/dist/requestHandlers/userHandlers.cjs +138 -990
  44. package/dist/requestHandlers/userHandlers.cjs.map +1 -1
  45. package/dist/requestHandlers/userHandlers.d.cts +5 -3
  46. package/dist/requestHandlers/userHandlers.d.ts +5 -3
  47. package/dist/requestHandlers/userHandlers.js +138 -7
  48. package/dist/requestHandlers/userHandlers.js.map +1 -1
  49. package/dist/setupTests.cjs +163 -985
  50. package/dist/setupTests.cjs.map +1 -1
  51. package/dist/setupTests.d.cts +68 -66
  52. package/dist/setupTests.d.ts +68 -66
  53. package/dist/setupTests.js +114 -117
  54. package/dist/setupTests.js.map +1 -1
  55. package/dist/theme/light.cjs +7 -39
  56. package/dist/theme/light.cjs.map +1 -1
  57. package/dist/theme/light.d.cts +5 -10
  58. package/dist/theme/light.d.ts +5 -10
  59. package/dist/theme/light.js +7 -6
  60. package/dist/theme/light.js.map +1 -1
  61. package/dist/theme/mui.d.cjs +0 -0
  62. package/dist/theme/mui.d.cts +11 -0
  63. package/dist/theme/mui.d.ts +11 -0
  64. package/dist/utils.cjs +18 -68
  65. package/dist/utils.cjs.map +1 -1
  66. package/dist/utils.d.cts +6 -67
  67. package/dist/utils.d.ts +6 -67
  68. package/dist/utils.js +16 -10
  69. package/dist/utils.js.map +1 -1
  70. package/package.json +6 -6
  71. package/dist/chunk-3CVNBMEF.js +0 -161
  72. package/dist/chunk-3CVNBMEF.js.map +0 -1
  73. package/dist/chunk-7GNK7IRV.js +0 -29
  74. package/dist/chunk-7GNK7IRV.js.map +0 -1
  75. package/dist/chunk-AP4MOFMD.js +0 -239
  76. package/dist/chunk-AP4MOFMD.js.map +0 -1
  77. package/dist/chunk-DOHA53UH.js +0 -301
  78. package/dist/chunk-DOHA53UH.js.map +0 -1
  79. package/dist/chunk-H4J7L3HX.js +0 -188
  80. package/dist/chunk-H4J7L3HX.js.map +0 -1
  81. package/dist/chunk-HRGVXWMH.js +0 -17
  82. package/dist/chunk-HRGVXWMH.js.map +0 -1
  83. package/dist/chunk-KCLTR6QS.js +0 -34
  84. package/dist/chunk-KCLTR6QS.js.map +0 -1
  85. package/dist/chunk-M2TKDOPD.js +0 -266
  86. package/dist/chunk-M2TKDOPD.js.map +0 -1
  87. package/dist/chunk-O42KIJXJ.js +0 -933
  88. package/dist/chunk-O42KIJXJ.js.map +0 -1
  89. /package/dist/{baseTestConfig.json → public/baseTestConfig.json} +0 -0
@@ -1,14 +1,5 @@
1
- import {
2
- theme
3
- } from "./chunk-KCLTR6QS.js";
4
- import "./chunk-HRGVXWMH.js";
5
- import {
6
- menderEnvironment,
7
- mockDate,
8
- token
9
- } from "./chunk-O42KIJXJ.js";
10
-
11
- // src/setupTests.tsx
1
+ import { menderEnvironment, mockDate, token } from "./mockData.js";
2
+ import { theme } from "./utils.js";
12
3
  import React from "react";
13
4
  import { Provider } from "react-redux";
14
5
  import { MemoryRouter } from "react-router-dom";
@@ -16,123 +7,129 @@ import { createSerializer } from "@emotion/jest";
16
7
  import { ThemeProvider } from "@mui/material/styles";
17
8
  import { yes } from "@northern.tech/utils/helpers";
18
9
  import { configureStore } from "@reduxjs/toolkit";
10
+ import "@testing-library/jest-dom/vitest";
19
11
  import { cleanup, render } from "@testing-library/react";
20
12
  import { expect, vi } from "vitest";
21
13
  import { MessageChannel } from "worker_threads";
22
- export * from "@testing-library/react";
23
14
  import { jsx } from "react/jsx-runtime";
15
+ export * from "@testing-library/react";
16
+ //#region src/setupTests.tsx
24
17
  expect.addSnapshotSerializer(createSerializer({ includeStyles: true }));
25
- var TEST_LOCATION = "localhost";
26
- var mockAbortController = {
27
- abort: vi.fn(),
28
- signal: { addEventListener: () => {
29
- }, removeEventListener: () => {
30
- } }
18
+ const TEST_LOCATION = "localhost";
19
+ const mockAbortController = {
20
+ abort: vi.fn(),
21
+ signal: {
22
+ addEventListener: () => {},
23
+ removeEventListener: () => {}
24
+ }
31
25
  };
32
- var oldWindowLocalStorage = window.localStorage;
33
- var oldWindowLocation = window.location;
34
- var oldWindowSessionStorage = window.sessionStorage;
26
+ const oldWindowLocalStorage = window.localStorage;
27
+ const oldWindowLocation = window.location;
28
+ const oldWindowSessionStorage = window.sessionStorage;
35
29
  vi.mock("uuid", () => ({ v4: () => "mock-uuid" }));
36
- var storage = {};
30
+ const storage = {};
37
31
  global.HTMLCanvasElement.prototype.getContext = vi.fn();
38
- var beforeAll = async () => {
39
- delete window.location;
40
- window.location = {
41
- ...oldWindowLocation,
42
- hostname: TEST_LOCATION,
43
- origin: "http://localhost",
44
- assign: vi.fn(),
45
- replace: vi.fn(),
46
- reload: vi.fn()
47
- };
48
- delete window.sessionStorage;
49
- window.sessionStorage = {
50
- ...oldWindowSessionStorage,
51
- getItem: vi.fn(yes),
52
- setItem: vi.fn(),
53
- removeItem: vi.fn()
54
- };
55
- delete window.localStorage;
56
- window.localStorage = {
57
- ...oldWindowLocalStorage,
58
- getItem: vi.fn((name) => {
59
- if (name === "JWT") {
60
- return JSON.stringify({ token });
61
- }
62
- return storage[name];
63
- }),
64
- setItem: vi.fn((name) => storage[name]),
65
- removeItem: vi.fn()
66
- };
67
- window.mender_environment = menderEnvironment;
68
- window.ENV = "test";
69
- global.AbortController = vi.fn().mockImplementation(function() {
70
- return mockAbortController;
71
- });
72
- global.MessageChannel = MessageChannel;
73
- global.ResizeObserver = vi.fn().mockImplementation(function() {
74
- return {
75
- observe: vi.fn(),
76
- unobserve: vi.fn(),
77
- disconnect: vi.fn()
78
- };
79
- });
80
- window.RTCPeerConnection = () => ({
81
- createOffer: () => {
82
- },
83
- setLocalDescription: () => {
84
- },
85
- createDataChannel: () => {
86
- }
87
- });
88
- Object.defineProperty(navigator, "appVersion", { value: "Test", writable: true });
89
- const intersectionObserverMock = function() {
90
- return {
91
- observe: vi.fn(),
92
- disconnect: vi.fn()
93
- };
94
- };
95
- window.prompt = vi.fn();
96
- window.IntersectionObserver = vi.fn().mockImplementation(intersectionObserverMock);
97
- vi.spyOn(React, "useEffect").mockImplementation(React.useLayoutEffect);
98
- const _jest = globalThis.jest;
99
- globalThis.jest = {
100
- ...globalThis.jest
101
- };
102
- vi.stubGlobal("jest", {
103
- advanceTimersByTime: vi.advanceTimersByTime.bind(vi)
104
- });
105
- return () => void (globalThis.jest = _jest);
32
+ const beforeAll = async () => {
33
+ delete window.location;
34
+ window.location = {
35
+ ...oldWindowLocation,
36
+ hostname: TEST_LOCATION,
37
+ origin: "http://localhost",
38
+ assign: vi.fn(),
39
+ replace: vi.fn(),
40
+ reload: vi.fn()
41
+ };
42
+ delete window.sessionStorage;
43
+ window.sessionStorage = {
44
+ ...oldWindowSessionStorage,
45
+ getItem: vi.fn(yes),
46
+ setItem: vi.fn(),
47
+ removeItem: vi.fn()
48
+ };
49
+ delete window.localStorage;
50
+ window.localStorage = {
51
+ ...oldWindowLocalStorage,
52
+ getItem: vi.fn((name) => {
53
+ if (name === "JWT") return JSON.stringify({ token });
54
+ return storage[name];
55
+ }),
56
+ setItem: vi.fn((name) => storage[name]),
57
+ removeItem: vi.fn()
58
+ };
59
+ window.mender_environment = menderEnvironment;
60
+ window.ENV = "test";
61
+ global.AbortController = vi.fn().mockImplementation(function() {
62
+ return mockAbortController;
63
+ });
64
+ global.MessageChannel = MessageChannel;
65
+ global.ResizeObserver = vi.fn().mockImplementation(function() {
66
+ return {
67
+ observe: vi.fn(),
68
+ unobserve: vi.fn(),
69
+ disconnect: vi.fn()
70
+ };
71
+ });
72
+ window.RTCPeerConnection = () => ({
73
+ createOffer: () => {},
74
+ setLocalDescription: () => {},
75
+ createDataChannel: () => {}
76
+ });
77
+ Object.defineProperty(navigator, "appVersion", {
78
+ value: "Test",
79
+ writable: true
80
+ });
81
+ const intersectionObserverMock = function() {
82
+ return {
83
+ observe: vi.fn(),
84
+ disconnect: vi.fn()
85
+ };
86
+ };
87
+ window.prompt = vi.fn();
88
+ window.IntersectionObserver = vi.fn().mockImplementation(intersectionObserverMock);
89
+ vi.spyOn(React, "useEffect").mockImplementation(React.useLayoutEffect);
90
+ const _jest = globalThis.jest;
91
+ globalThis.jest = { ...globalThis.jest };
92
+ vi.stubGlobal("jest", { advanceTimersByTime: vi.advanceTimersByTime.bind(vi) });
93
+ return () => void (globalThis.jest = _jest);
106
94
  };
107
- var beforeEach = () => {
108
- vi.useFakeTimers({ now: mockDate });
109
- vi.setSystemTime(mockDate);
95
+ const beforeEach = () => {
96
+ vi.useFakeTimers({ now: mockDate });
97
+ vi.setSystemTime(mockDate);
110
98
  };
111
- var afterEach = async () => {
112
- cleanup();
113
- vi.runOnlyPendingTimers();
114
- vi.useRealTimers();
99
+ const afterEach = async () => {
100
+ cleanup();
101
+ vi.runOnlyPendingTimers();
102
+ vi.useRealTimers();
115
103
  };
116
- var afterAll = async () => {
117
- window.localStorage = oldWindowLocalStorage;
118
- window.location = oldWindowLocation;
119
- window.sessionStorage = oldWindowSessionStorage;
120
- React.useEffect.mockRestore();
121
- vi.unstubAllGlobals();
104
+ const afterAll = async () => {
105
+ window.localStorage = oldWindowLocalStorage;
106
+ window.location = oldWindowLocation;
107
+ window.sessionStorage = oldWindowSessionStorage;
108
+ React.useEffect.mockRestore();
109
+ vi.unstubAllGlobals();
122
110
  };
123
- var customRender = (ui, options = {}) => {
124
- const { preloadedState = { users: { currentSession: { token, expiresAt: void 0 } } }, ...remainder } = options;
125
- const store = options.store ?? configureStore({ preloadedState });
126
- const AllTheProviders = ({ children }) => /* @__PURE__ */ jsx(ThemeProvider, { theme, children: /* @__PURE__ */ jsx(MemoryRouter, { children: /* @__PURE__ */ jsx(Provider, { store, children }) }) });
127
- return { store, ...render(ui, { wrapper: AllTheProviders, ...remainder }) };
128
- };
129
- export {
130
- TEST_LOCATION,
131
- afterAll,
132
- afterEach,
133
- beforeAll,
134
- beforeEach,
135
- mockAbortController,
136
- customRender as render
111
+ const customRender = (ui, options = {}) => {
112
+ const { preloadedState = { users: { currentSession: {
113
+ token,
114
+ expiresAt: void 0
115
+ } } }, ...remainder } = options;
116
+ const store = options.store ?? configureStore({ preloadedState });
117
+ const AllTheProviders = ({ children }) => /* @__PURE__ */ jsx(ThemeProvider, {
118
+ theme,
119
+ children: /* @__PURE__ */ jsx(MemoryRouter, { children: /* @__PURE__ */ jsx(Provider, {
120
+ store,
121
+ children
122
+ }) })
123
+ });
124
+ return {
125
+ store,
126
+ ...render(ui, {
127
+ wrapper: AllTheProviders,
128
+ ...remainder
129
+ })
130
+ };
137
131
  };
132
+ //#endregion
133
+ export { TEST_LOCATION, afterAll, afterEach, beforeAll, beforeEach, mockAbortController, customRender as render };
134
+
138
135
  //# sourceMappingURL=setupTests.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/setupTests.tsx"],"sourcesContent":["// Copyright 2025 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n//@ts-nocheck\nimport React from 'react';\nimport { Provider } from 'react-redux';\nimport { MemoryRouter } from 'react-router-dom';\n\nimport { createSerializer } from '@emotion/jest';\nimport { ThemeProvider } from '@mui/material/styles';\n\nimport { yes } from '@northern.tech/utils/helpers';\nimport { configureStore } from '@reduxjs/toolkit';\nimport { cleanup, render } from '@testing-library/react';\nimport { expect, vi } from 'vitest';\nimport { MessageChannel } from 'worker_threads';\n\nimport { menderEnvironment, mockDate, token as mockToken } from './mockData';\nimport { theme } from './utils';\n\nexpect.addSnapshotSerializer(createSerializer({ includeStyles: true }));\n\nexport const TEST_LOCATION = 'localhost';\n\nexport const mockAbortController: { abort: () => void; signal: { addEventListener: () => void; removeEventListener: () => void } } = {\n abort: vi.fn(),\n signal: { addEventListener: () => {}, removeEventListener: () => {} }\n};\n\nconst oldWindowLocalStorage = window.localStorage;\nconst oldWindowLocation = window.location;\nconst oldWindowSessionStorage = window.sessionStorage;\n\nvi.mock('uuid', () => ({ v4: () => 'mock-uuid' }));\n\nconst storage = {};\nglobal.HTMLCanvasElement.prototype.getContext = vi.fn();\n\nexport const beforeAll = async () => {\n // Temporarily workaround for bug in @testing-library/react when use user-event with `vi.useFakeTimers()`\n\n // Enable the mocking in tests.\n delete window.location;\n window.location = {\n ...oldWindowLocation,\n hostname: TEST_LOCATION,\n origin: 'http://localhost',\n assign: vi.fn(),\n replace: vi.fn(),\n reload: vi.fn()\n };\n delete window.sessionStorage;\n window.sessionStorage = {\n ...oldWindowSessionStorage,\n getItem: vi.fn(yes),\n setItem: vi.fn(),\n removeItem: vi.fn()\n };\n delete window.localStorage;\n window.localStorage = {\n ...oldWindowLocalStorage,\n getItem: vi.fn(name => {\n if (name === 'JWT') {\n return JSON.stringify({ token: mockToken });\n }\n return storage[name];\n }),\n setItem: vi.fn(name => storage[name]),\n removeItem: vi.fn()\n };\n window.mender_environment = menderEnvironment;\n window.ENV = 'test';\n global.AbortController = vi.fn().mockImplementation(function () {\n return mockAbortController;\n });\n global.MessageChannel = MessageChannel;\n global.ResizeObserver = vi.fn().mockImplementation(function () {\n return {\n observe: vi.fn(),\n unobserve: vi.fn(),\n disconnect: vi.fn()\n };\n });\n window.RTCPeerConnection = () => ({\n createOffer: () => {},\n setLocalDescription: () => {},\n createDataChannel: () => {}\n });\n\n Object.defineProperty(navigator, 'appVersion', { value: 'Test', writable: true });\n const intersectionObserverMock = function () {\n return {\n observe: vi.fn(),\n disconnect: vi.fn()\n };\n };\n window.prompt = vi.fn();\n window.IntersectionObserver = vi.fn().mockImplementation(intersectionObserverMock);\n vi.spyOn(React, 'useEffect').mockImplementation(React.useLayoutEffect);\n\n //TODO: remove, once https://github.com/testing-library/react-testing-library/issues/1197 resolved\n const _jest = globalThis.jest;\n\n globalThis.jest = {\n ...globalThis.jest\n };\n\n vi.stubGlobal('jest', {\n advanceTimersByTime: vi.advanceTimersByTime.bind(vi)\n });\n return () => void (globalThis.jest = _jest);\n};\n\nexport const beforeEach = () => {\n vi.useFakeTimers({ now: mockDate });\n vi.setSystemTime(mockDate);\n};\n\nexport const afterEach = async () => {\n cleanup();\n vi.runOnlyPendingTimers();\n vi.useRealTimers();\n};\n\nexport const afterAll = async () => {\n // restore `window.location` etc. to the original `jsdom` `Location` object\n window.localStorage = oldWindowLocalStorage;\n window.location = oldWindowLocation;\n window.sessionStorage = oldWindowSessionStorage;\n React.useEffect.mockRestore();\n vi.unstubAllGlobals();\n};\n\nconst customRender = (ui, options = {}) => {\n const { preloadedState = { users: { currentSession: { token: mockToken, expiresAt: undefined } } }, ...remainder } = options;\n const store = options.store ?? configureStore({ preloadedState });\n const AllTheProviders = ({ children }) => (\n <ThemeProvider theme={theme}>\n <MemoryRouter>\n <Provider store={store}>{children}</Provider>\n </MemoryRouter>\n </ThemeProvider>\n );\n return { store, ...render(ui, { wrapper: AllTheProviders, ...remainder }) };\n};\n\nexport * from '@testing-library/react';\n// override render method\n\nexport { customRender as render };\n"],"mappings":"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","names":[]}
1
+ {"version":3,"file":"setupTests.js","names":["mockToken"],"sources":["../src/setupTests.tsx"],"sourcesContent":["// Copyright 2025 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n//@ts-nocheck\nimport React from 'react';\nimport { Provider } from 'react-redux';\nimport { MemoryRouter } from 'react-router-dom';\n\nimport { createSerializer } from '@emotion/jest';\nimport { ThemeProvider } from '@mui/material/styles';\n\nimport { yes } from '@northern.tech/utils/helpers';\nimport { configureStore } from '@reduxjs/toolkit';\nimport '@testing-library/jest-dom/vitest';\nimport { cleanup, render } from '@testing-library/react';\nimport { expect, vi } from 'vitest';\nimport { MessageChannel } from 'worker_threads';\n\nimport { menderEnvironment, mockDate, token as mockToken } from './mockData';\nimport { theme } from './utils';\n\nexpect.addSnapshotSerializer(createSerializer({ includeStyles: true }));\n\nexport const TEST_LOCATION = 'localhost';\n\nexport const mockAbortController: { abort: () => void; signal: { addEventListener: () => void; removeEventListener: () => void } } = {\n abort: vi.fn(),\n signal: { addEventListener: () => {}, removeEventListener: () => {} }\n};\n\nconst oldWindowLocalStorage = window.localStorage;\nconst oldWindowLocation = window.location;\nconst oldWindowSessionStorage = window.sessionStorage;\n\nvi.mock('uuid', () => ({ v4: () => 'mock-uuid' }));\n\nconst storage = {};\nglobal.HTMLCanvasElement.prototype.getContext = vi.fn();\n\nexport const beforeAll = async () => {\n // Temporarily workaround for bug in @testing-library/react when use user-event with `vi.useFakeTimers()`\n\n // Enable the mocking in tests.\n delete window.location;\n window.location = {\n ...oldWindowLocation,\n hostname: TEST_LOCATION,\n origin: 'http://localhost',\n assign: vi.fn(),\n replace: vi.fn(),\n reload: vi.fn()\n };\n delete window.sessionStorage;\n window.sessionStorage = {\n ...oldWindowSessionStorage,\n getItem: vi.fn(yes),\n setItem: vi.fn(),\n removeItem: vi.fn()\n };\n delete window.localStorage;\n window.localStorage = {\n ...oldWindowLocalStorage,\n getItem: vi.fn(name => {\n if (name === 'JWT') {\n return JSON.stringify({ token: mockToken });\n }\n return storage[name];\n }),\n setItem: vi.fn(name => storage[name]),\n removeItem: vi.fn()\n };\n window.mender_environment = menderEnvironment;\n window.ENV = 'test';\n global.AbortController = vi.fn().mockImplementation(function () {\n return mockAbortController;\n });\n global.MessageChannel = MessageChannel;\n global.ResizeObserver = vi.fn().mockImplementation(function () {\n return {\n observe: vi.fn(),\n unobserve: vi.fn(),\n disconnect: vi.fn()\n };\n });\n window.RTCPeerConnection = () => ({\n createOffer: () => {},\n setLocalDescription: () => {},\n createDataChannel: () => {}\n });\n\n Object.defineProperty(navigator, 'appVersion', { value: 'Test', writable: true });\n const intersectionObserverMock = function () {\n return {\n observe: vi.fn(),\n disconnect: vi.fn()\n };\n };\n window.prompt = vi.fn();\n window.IntersectionObserver = vi.fn().mockImplementation(intersectionObserverMock);\n vi.spyOn(React, 'useEffect').mockImplementation(React.useLayoutEffect);\n\n //TODO: remove, once https://github.com/testing-library/react-testing-library/issues/1197 resolved\n const _jest = globalThis.jest;\n\n globalThis.jest = {\n ...globalThis.jest\n };\n\n vi.stubGlobal('jest', {\n advanceTimersByTime: vi.advanceTimersByTime.bind(vi)\n });\n return () => void (globalThis.jest = _jest);\n};\n\nexport const beforeEach = () => {\n vi.useFakeTimers({ now: mockDate });\n vi.setSystemTime(mockDate);\n};\n\nexport const afterEach = async () => {\n cleanup();\n vi.runOnlyPendingTimers();\n vi.useRealTimers();\n};\n\nexport const afterAll = async () => {\n // restore `window.location` etc. to the original `jsdom` `Location` object\n window.localStorage = oldWindowLocalStorage;\n window.location = oldWindowLocation;\n window.sessionStorage = oldWindowSessionStorage;\n React.useEffect.mockRestore();\n vi.unstubAllGlobals();\n};\n\nconst customRender = (ui, options = {}) => {\n const { preloadedState = { users: { currentSession: { token: mockToken, expiresAt: undefined } } }, ...remainder } = options;\n const store = options.store ?? configureStore({ preloadedState });\n const AllTheProviders = ({ children }) => (\n <ThemeProvider theme={theme}>\n <MemoryRouter>\n <Provider store={store}>{children}</Provider>\n </MemoryRouter>\n </ThemeProvider>\n );\n return { store, ...render(ui, { wrapper: AllTheProviders, ...remainder }) };\n};\n\nexport * from '@testing-library/react';\n// override render method\n\nexport { customRender as render };\n"],"mappings":"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"}
@@ -1,41 +1,9 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const light = { palette: {
3
+ border: { main: "#e3e3e3" },
4
+ background: { default: "#fff" }
5
+ } };
6
+ //#endregion
7
+ exports.light = light;
19
8
 
20
- // src/theme/light.ts
21
- var light_exports = {};
22
- __export(light_exports, {
23
- light: () => light
24
- });
25
- module.exports = __toCommonJS(light_exports);
26
- var palette = {
27
- border: {
28
- main: "#e3e3e3"
29
- },
30
- tooltip: {
31
- tierTipBackground: "#f7fafb"
32
- }
33
- };
34
- var light = {
35
- palette
36
- };
37
- // Annotate the CommonJS export names for ESM import in node:
38
- 0 && (module.exports = {
39
- light
40
- });
41
9
  //# sourceMappingURL=light.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/theme/light.ts"],"sourcesContent":["// Copyright 2022 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nconst palette = {\n border: {\n main: '#e3e3e3'\n },\n tooltip: {\n tierTipBackground: '#f7fafb'\n }\n};\n\nexport const light = {\n palette\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAcA,IAAM,UAAU;AAAA,EACd,QAAQ;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA,SAAS;AAAA,IACP,mBAAmB;AAAA,EACrB;AACF;AAEO,IAAM,QAAQ;AAAA,EACnB;AACF;","names":[]}
1
+ {"version":3,"file":"light.cjs","names":[],"sources":["../../src/theme/light.ts"],"sourcesContent":["// Copyright 2022 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { ThemeOptions } from '@mui/material';\nimport { PaletteOptions } from '@mui/material/styles';\n\nconst palette: PaletteOptions = {\n border: {\n main: '#e3e3e3'\n },\n background: {\n default: '#fff'\n }\n};\n\nexport const light: ThemeOptions = {\n palette\n};\n"],"mappings":";AAyBA,MAAa,QAAsB,EACjC,SAV8B;CAC9B,QAAQ,EACN,MAAM,WACP;CACD,YAAY,EACV,SAAS,QACV;CACF,EAIA"}
@@ -1,12 +1,7 @@
1
- declare const light: {
2
- palette: {
3
- border: {
4
- main: string;
5
- };
6
- tooltip: {
7
- tierTipBackground: string;
8
- };
9
- };
10
- };
1
+ import { ThemeOptions } from "@mui/material";
11
2
 
3
+ //#region src/theme/light.d.ts
4
+ declare const light: ThemeOptions;
5
+ //#endregion
12
6
  export { light };
7
+ //# sourceMappingURL=light.d.cts.map
@@ -1,12 +1,7 @@
1
- declare const light: {
2
- palette: {
3
- border: {
4
- main: string;
5
- };
6
- tooltip: {
7
- tierTipBackground: string;
8
- };
9
- };
10
- };
1
+ import { ThemeOptions } from "@mui/material";
11
2
 
3
+ //#region src/theme/light.d.ts
4
+ declare const light: ThemeOptions;
5
+ //#endregion
12
6
  export { light };
7
+ //# sourceMappingURL=light.d.ts.map
@@ -1,7 +1,8 @@
1
- import {
2
- light
3
- } from "../chunk-HRGVXWMH.js";
4
- export {
5
- light
6
- };
1
+ const light = { palette: {
2
+ border: { main: "#e3e3e3" },
3
+ background: { default: "#fff" }
4
+ } };
5
+ //#endregion
6
+ export { light };
7
+
7
8
  //# sourceMappingURL=light.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"file":"light.js","names":[],"sources":["../../src/theme/light.ts"],"sourcesContent":["// Copyright 2022 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { ThemeOptions } from '@mui/material';\nimport { PaletteOptions } from '@mui/material/styles';\n\nconst palette: PaletteOptions = {\n border: {\n main: '#e3e3e3'\n },\n background: {\n default: '#fff'\n }\n};\n\nexport const light: ThemeOptions = {\n palette\n};\n"],"mappings":"AAyBA,MAAa,QAAsB,EACjC,SAV8B;CAC9B,QAAQ,EACN,MAAM,WACP;CACD,YAAY,EACV,SAAS,QACV;CACF,EAIA"}
File without changes
@@ -0,0 +1,11 @@
1
+ import { PaletteOptions } from "@mui/material";
2
+
3
+ //#region src/theme/mui.d.ts
4
+ declare module '@mui/material' {
5
+ interface PaletteOptions extends PaletteOptions {
6
+ border?: {
7
+ main: string;
8
+ };
9
+ }
10
+ }
11
+ //# sourceMappingURL=mui.d.cts.map
@@ -0,0 +1,11 @@
1
+ import { PaletteOptions } from "@mui/material";
2
+
3
+ //#region src/theme/mui.d.ts
4
+ declare module '@mui/material' {
5
+ interface PaletteOptions extends PaletteOptions {
6
+ border?: {
7
+ main: string;
8
+ };
9
+ }
10
+ }
11
+ //# sourceMappingURL=mui.d.ts.map
package/dist/utils.cjs CHANGED
@@ -1,71 +1,21 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_theme_light = require("./theme/light.cjs");
3
+ require("./setupTests.cjs");
4
+ let _mui_material_styles = require("@mui/material/styles");
5
+ let _testing_library_react = require("@testing-library/react");
6
+ let vitest = require("vitest");
7
+ //#region src/utils.ts
8
+ const selectMaterialUiSelectOption = async (element, optionText, user) => {
9
+ const selectButton = element.parentNode.querySelector("[role=combobox]");
10
+ await (0, _testing_library_react.act)(async () => await user.click(selectButton));
11
+ const listItem = (0, _testing_library_react.within)((0, _testing_library_react.queryByRole)(document.documentElement, "listbox")).getByText(optionText);
12
+ await user.click(listItem);
13
+ await (0, _testing_library_react.waitFor)(() => (0, vitest.expect)((0, _testing_library_react.queryByRole)(document.documentElement, "listbox")).not.toBeInTheDocument());
14
+ return Promise.resolve();
9
15
  };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/utils.tsx
21
- var utils_exports = {};
22
- __export(utils_exports, {
23
- renderWithRouter: () => renderWithRouter,
24
- selectMaterialUiSelectOption: () => selectMaterialUiSelectOption,
25
- theme: () => theme
26
- });
27
- module.exports = __toCommonJS(utils_exports);
28
- var import_react_redux = require("react-redux");
29
- var import_react_router_dom = require("react-router-dom");
30
- var import_styles = require("@mui/material/styles");
31
- var import_react = require("@testing-library/react");
32
- var import_react2 = require("@testing-library/react");
33
- var import_vitest = require("vitest");
16
+ const theme = (0, _mui_material_styles.createTheme)(require_theme_light.light);
17
+ //#endregion
18
+ exports.selectMaterialUiSelectOption = selectMaterialUiSelectOption;
19
+ exports.theme = theme;
34
20
 
35
- // src/theme/light.ts
36
- var palette = {
37
- border: {
38
- main: "#e3e3e3"
39
- },
40
- tooltip: {
41
- tierTipBackground: "#f7fafb"
42
- }
43
- };
44
- var light = {
45
- palette
46
- };
47
-
48
- // src/utils.tsx
49
- var import_jsx_runtime = require("react/jsx-runtime");
50
- var selectMaterialUiSelectOption = async (element, optionText, user) => {
51
- const selectButton = element.parentNode.querySelector("[role=combobox]");
52
- await (0, import_react2.act)(async () => await user.click(selectButton));
53
- const listbox = (0, import_react2.queryByRole)(document.documentElement, "listbox");
54
- const listItem = (0, import_react2.within)(listbox).getByText(optionText);
55
- await user.click(listItem);
56
- await (0, import_react2.waitFor)(() => (0, import_vitest.expect)((0, import_react2.queryByRole)(document.documentElement, "listbox")).not.toBeInTheDocument());
57
- return Promise.resolve();
58
- };
59
- var theme = (0, import_styles.createTheme)(light);
60
- var renderWithRouter = (ui, { route = "/", preloadedState } = {}) => {
61
- const store = getConfiguredStore({ preloadedState });
62
- const Wrapper = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_styles.ThemeProvider, { theme, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_router_dom.MemoryRouter, { initialEntries: [route], children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_redux.Provider, { store, children }) }) });
63
- return { store, ...(0, import_react.render)(ui, { wrapper: Wrapper }) };
64
- };
65
- // Annotate the CommonJS export names for ESM import in node:
66
- 0 && (module.exports = {
67
- renderWithRouter,
68
- selectMaterialUiSelectOption,
69
- theme
70
- });
71
21
  //# sourceMappingURL=utils.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils.tsx","../src/theme/light.ts"],"sourcesContent":["// Copyright 2025 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n//@ts-nocheck\nimport React from 'react';\nimport { Provider } from 'react-redux';\nimport { MemoryRouter } from 'react-router-dom';\n\nimport { ThemeProvider, createTheme } from '@mui/material/styles';\n\nimport { render } from '@testing-library/react';\nimport { act, queryByRole, waitFor, within } from '@testing-library/react';\nimport { expect } from 'vitest';\n\nimport { light } from './theme/light';\n\nexport const selectMaterialUiSelectOption = async (element, optionText, user) => {\n // The button that opens the dropdown, which is a sibling of the input\n const selectButton = element.parentNode.querySelector('[role=combobox]');\n // Open the select dropdown\n await act(async () => await user.click(selectButton));\n // Get the dropdown element. We don't use getByRole() because it includes <select>s too.\n const listbox = queryByRole(document.documentElement, 'listbox');\n // Click the list item\n const listItem = within(listbox!).getByText(optionText);\n await user.click(listItem);\n // Wait for the listbox to be removed, so it isn't visible in subsequent calls\n await waitFor(() => expect(queryByRole(document.documentElement, 'listbox')).not.toBeInTheDocument());\n return Promise.resolve();\n};\n\nexport const theme = createTheme(light);\n\nexport const renderWithRouter = (ui: React.ReactElement, { route = '/', preloadedState } = {}) => {\n const store = getConfiguredStore({ preloadedState });\n const Wrapper = ({ children }) => (\n <ThemeProvider theme={theme}>\n <MemoryRouter initialEntries={[route]}>\n <Provider store={store}>{children}</Provider>\n </MemoryRouter>\n </ThemeProvider>\n );\n return { store, ...render(ui, { wrapper: Wrapper }) };\n};\n","// Copyright 2022 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nconst palette = {\n border: {\n main: '#e3e3e3'\n },\n tooltip: {\n tierTipBackground: '#f7fafb'\n }\n};\n\nexport const light = {\n palette\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAeA,yBAAyB;AACzB,8BAA6B;AAE7B,oBAA2C;AAE3C,mBAAuB;AACvB,IAAAA,gBAAkD;AAClD,oBAAuB;;;ACRvB,IAAM,UAAU;AAAA,EACd,QAAQ;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA,SAAS;AAAA,IACP,mBAAmB;AAAA,EACrB;AACF;AAEO,IAAM,QAAQ;AAAA,EACnB;AACF;;;ADuBQ;AAtBD,IAAM,+BAA+B,OAAO,SAAS,YAAY,SAAS;AAE/E,QAAM,eAAe,QAAQ,WAAW,cAAc,iBAAiB;AAEvE,YAAM,mBAAI,YAAY,MAAM,KAAK,MAAM,YAAY,CAAC;AAEpD,QAAM,cAAU,2BAAY,SAAS,iBAAiB,SAAS;AAE/D,QAAM,eAAW,sBAAO,OAAQ,EAAE,UAAU,UAAU;AACtD,QAAM,KAAK,MAAM,QAAQ;AAEzB,YAAM,uBAAQ,UAAM,0BAAO,2BAAY,SAAS,iBAAiB,SAAS,CAAC,EAAE,IAAI,kBAAkB,CAAC;AACpG,SAAO,QAAQ,QAAQ;AACzB;AAEO,IAAM,YAAQ,2BAAY,KAAK;AAE/B,IAAM,mBAAmB,CAAC,IAAwB,EAAE,QAAQ,KAAK,eAAe,IAAI,CAAC,MAAM;AAChG,QAAM,QAAQ,mBAAmB,EAAE,eAAe,CAAC;AACnD,QAAM,UAAU,CAAC,EAAE,SAAS,MAC1B,4CAAC,+BAAc,OACb,sDAAC,wCAAa,gBAAgB,CAAC,KAAK,GAClC,sDAAC,+BAAS,OAAe,UAAS,GACpC,GACF;AAEF,SAAO,EAAE,OAAO,OAAG,qBAAO,IAAI,EAAE,SAAS,QAAQ,CAAC,EAAE;AACtD;","names":["import_react"]}
1
+ {"version":3,"file":"utils.cjs","names":["light"],"sources":["../src/utils.ts"],"sourcesContent":["// Copyright 2025 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { createTheme } from '@mui/material/styles';\n\nimport { act, queryByRole, waitFor, within } from '@testing-library/react';\nimport { expect } from 'vitest';\n\nimport { light } from './theme/light';\n\nexport const selectMaterialUiSelectOption = async (element, optionText, user) => {\n // The button that opens the dropdown, which is a sibling of the input\n const selectButton = element.parentNode.querySelector('[role=combobox]');\n // Open the select dropdown\n await act(async () => await user.click(selectButton));\n // Get the dropdown element. We don't use getByRole() because it includes <select>s too.\n const listbox = queryByRole(document.documentElement, 'listbox');\n // Click the list item\n const listItem = within(listbox!).getByText(optionText);\n await user.click(listItem);\n // Wait for the listbox to be removed, so it isn't visible in subsequent calls\n await waitFor(() => expect(queryByRole(document.documentElement, 'listbox')).not.toBeInTheDocument());\n return Promise.resolve();\n};\n\nexport const theme = createTheme(light);\n"],"mappings":";;;;;;;AAoBA,MAAa,+BAA+B,OAAO,SAAS,YAAY,SAAS;CAE/E,MAAM,eAAe,QAAQ,WAAW,cAAc,kBAAkB;AAExE,QAAA,GAAA,uBAAA,KAAU,YAAY,MAAM,KAAK,MAAM,aAAa,CAAC;CAIrD,MAAM,YAAA,GAAA,uBAAA,SAAA,GAAA,uBAAA,aAFsB,SAAS,iBAAiB,UAAU,CAE/B,CAAC,UAAU,WAAW;AACvD,OAAM,KAAK,MAAM,SAAS;AAE1B,QAAA,GAAA,uBAAA,gBAAA,GAAA,OAAA,SAAA,GAAA,uBAAA,aAAuC,SAAS,iBAAiB,UAAU,CAAC,CAAC,IAAI,mBAAmB,CAAC;AACrG,QAAO,QAAQ,SAAS;;AAG1B,MAAa,SAAA,GAAA,qBAAA,aAAoBA,oBAAAA,MAAM"}