@dynatrace/strato-components-testing 1.1.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -18
- package/esm/jest/custom-render.js.map +2 -2
- package/esm/jest/mocks/bounding-client-rect-mock.js.map +2 -2
- package/esm/jest/mocks/canvas-mock.js.map +2 -2
- package/esm/jest/mocks/dom-rect-mock.js.map +2 -2
- package/esm/jest/mocks/resize-observer-mock.js.map +2 -2
- package/esm/jest/mocks/scroll-width-mock.js.map +2 -2
- package/esm/jest/mocks/text-ellipsis-mock.js.map +2 -2
- package/esm/jest/preset/jest-preset.js.map +2 -2
- package/esm/jest/preset/resolver.js.map +2 -2
- package/esm/jest/setup/index.js +20 -0
- package/esm/jest/setup/index.js.map +7 -0
- package/esm/jest/setup.js.map +2 -2
- package/jest/custom-render.d.ts +7 -1
- package/jest/mocks/bounding-client-rect-mock.d.ts +8 -2
- package/jest/mocks/canvas-mock.d.ts +5 -1
- package/jest/mocks/dom-rect-mock.d.ts +6 -1
- package/jest/mocks/resize-observer-mock.d.ts +8 -2
- package/jest/mocks/scroll-width-mock.d.ts +8 -2
- package/jest/mocks/text-ellipsis-mock.d.ts +8 -2
- package/jest/preset/jest-preset.d.ts +3 -0
- package/jest/setup/index.d.ts +1 -0
- package/jest/setup/index.js +13 -0
- package/jest/setup.d.ts +12 -2
- package/package.json +8 -1
package/README.md
CHANGED
|
@@ -21,7 +21,11 @@ module.exports = {
|
|
|
21
21
|
// your config
|
|
22
22
|
...
|
|
23
23
|
// your per test setup
|
|
24
|
-
setupFilesAfterEnv: [
|
|
24
|
+
setupFilesAfterEnv: [
|
|
25
|
+
'@dynatrace/strato-components-testing/jest/setup',
|
|
26
|
+
// your per test setup
|
|
27
|
+
"./jest.setup-env.ts"
|
|
28
|
+
],
|
|
25
29
|
moduleNameMapper: {
|
|
26
30
|
...stratoPreset.moduleNameMapper,
|
|
27
31
|
// your other moduleNameMappers
|
|
@@ -31,24 +35,9 @@ module.exports = {
|
|
|
31
35
|
|
|
32
36
|
### Setup
|
|
33
37
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
```ts
|
|
37
|
-
import { setup, clear } from '@dynatrace/strato-components-testing/jest';
|
|
38
|
-
import '@testing-library/jest-dom';
|
|
39
|
-
|
|
40
|
-
beforeAll(() => {
|
|
41
|
-
setup();
|
|
42
|
-
// your other mock setups
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
afterAll(() => {
|
|
46
|
-
clear();
|
|
47
|
-
// your other mock clears
|
|
48
|
-
});
|
|
49
|
-
```
|
|
38
|
+
The setup is handled in `@dynatrace/strato-geo-testing/jest/setup`, which you configured above.
|
|
50
39
|
|
|
51
|
-
|
|
40
|
+
But you can also setup or clear individual mocks:
|
|
52
41
|
|
|
53
42
|
```ts
|
|
54
43
|
import {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/jest/custom-render.tsx"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable no-restricted-imports */\nimport {\n render as rtlRender,\n RenderOptions,\n RenderResult,\n} from '@testing-library/react';\nimport React, { PropsWithChildren } from 'react';\nimport { IntlProvider } from 'react-intl';\n\ninterface AllProvidersProps {\n locale?: string;\n timeZone?: string;\n}\n\n/** The wrapper component to always have the providers in place */\nconst AllProviders = ({\n children,\n locale = 'en',\n timeZone = 'UTC',\n}: PropsWithChildren<AllProvidersProps>) => {\n return (\n <IntlProvider locale={locale} timeZone={timeZone}>\n {children}\n </IntlProvider>\n );\n};\n\nexport type RenderWithIntlOptions = {\n locale?: string;\n timeZone?: string;\n} & Omit<RenderOptions, 'queries'>;\n\nconst DefaultWrapper = (props: PropsWithChildren<unknown>) => (\n // eslint-disable-next-line react/jsx-no-useless-fragment\n <>{props.children}</>\n);\n\n
|
|
5
|
-
"mappings": "AACA;AAAA,EACE,UAAU;AAAA,OAGL;AACP,OAAO,WAAkC;AACzC,SAAS,oBAAoB;AAQ7B,MAAM,eAAe,CAAC;AAAA,EACpB;AAAA,EACA,SAAS;AAAA,EACT,WAAW;AACb,MAA4C;AAC1C,SACE,oCAAC,gBAAa,QAAgB,YAC3B,QACH;AAEJ;
|
|
4
|
+
"sourcesContent": ["/* eslint-disable no-restricted-imports */\nimport {\n render as rtlRender,\n RenderOptions,\n RenderResult,\n} from '@testing-library/react';\nimport React, { PropsWithChildren } from 'react';\nimport { IntlProvider } from 'react-intl';\n\ninterface AllProvidersProps {\n locale?: string;\n timeZone?: string;\n}\n\n/** The wrapper component to always have the providers in place */\nconst AllProviders = ({\n children,\n locale = 'en',\n timeZone = 'UTC',\n}: PropsWithChildren<AllProvidersProps>) => {\n return (\n <IntlProvider locale={locale} timeZone={timeZone}>\n {children}\n </IntlProvider>\n );\n};\n\n/**\n * @public\n */\nexport type RenderWithIntlOptions = {\n locale?: string;\n timeZone?: string;\n} & Omit<RenderOptions, 'queries'>;\n\nconst DefaultWrapper = (props: PropsWithChildren<unknown>) => (\n // eslint-disable-next-line react/jsx-no-useless-fragment\n <>{props.children}</>\n);\n\n/**\n * Wrapper to render components with all required providers\n * @public\n */\nexport const customRender = (\n ui: React.ReactElement,\n {\n locale = 'en',\n timeZone = 'UTC',\n wrapper: CustomWrapper = DefaultWrapper,\n ...renderOptions\n }: RenderWithIntlOptions = {},\n): RenderResult =>\n rtlRender(ui, {\n wrapper: ({ children }) => (\n <AllProviders locale={locale} timeZone={timeZone}>\n <CustomWrapper>{children}</CustomWrapper>\n </AllProviders>\n ),\n ...renderOptions,\n });\n"],
|
|
5
|
+
"mappings": "AACA;AAAA,EACE,UAAU;AAAA,OAGL;AACP,OAAO,WAAkC;AACzC,SAAS,oBAAoB;AAQ7B,MAAM,eAAe,CAAC;AAAA,EACpB;AAAA,EACA,SAAS;AAAA,EACT,WAAW;AACb,MAA4C;AAC1C,SACE,oCAAC,gBAAa,QAAgB,YAC3B,QACH;AAEJ;AAUA,MAAM,iBAAiB,CAAC;AAAA;AAAA,EAEtB,0DAAG,MAAM,QAAS;AAAA;AAOb,MAAM,eAAe,CAC1B,IACA;AAAA,EACE,SAAS;AAAA,EACT,WAAW;AAAA,EACX,SAAS,gBAAgB;AAAA,EACzB,GAAG;AACL,IAA2B,CAAC,MAE5B,UAAU,IAAI;AAAA,EACZ,SAAS,CAAC,EAAE,SAAS,MACnB,oCAAC,gBAAa,QAAgB,YAC5B,oCAAC,qBAAe,QAAS,CAC3B;AAAA,EAEF,GAAG;AACL,CAAC;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/jest/mocks/bounding-client-rect-mock.ts"],
|
|
4
|
-
"sourcesContent": ["import { FALLBACK_DOM_RECT, createDOMRect } from './dom-rect-mock.js';\n\nconst pristineGetBoundingClientRect = Element.prototype.getBoundingClientRect;\n\n
|
|
5
|
-
"mappings": "AAAA,SAAS,mBAAmB,qBAAqB;AAEjD,MAAM,gCAAgC,QAAQ,UAAU;
|
|
4
|
+
"sourcesContent": ["import { FALLBACK_DOM_RECT, createDOMRect } from './dom-rect-mock.js';\n\nconst pristineGetBoundingClientRect = Element.prototype.getBoundingClientRect;\n\n/**\n * Mocks the `getBoundingClientRect()` function on all HTMLElements.\n * @public\n */\nexport function setupGetBoundingClientRectMock(\n widthOrMockFn: number | (() => DOMRect | null),\n height?: number,\n x?: number,\n y?: number,\n top?: number,\n right?: number,\n bottom?: number,\n left?: number,\n) {\n Object.defineProperty(Element.prototype, 'getBoundingClientRect', {\n writable: true,\n value:\n typeof widthOrMockFn === 'number'\n ? () =>\n createDOMRect(widthOrMockFn, height, x, y, top, right, bottom, left)\n : function getBoundingClientRectMock(this: unknown) {\n return widthOrMockFn.call(this) ?? FALLBACK_DOM_RECT;\n },\n });\n}\n\n/**\n * Clears mocked `getBoundingClientRect()` function on HTMLElements.\n * @public\n */\nexport function clearGetBoundingClientRectMock() {\n Element.prototype.getBoundingClientRect = pristineGetBoundingClientRect;\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,mBAAmB,qBAAqB;AAEjD,MAAM,gCAAgC,QAAQ,UAAU;AAMjD,SAAS,+BACd,eACA,QACA,GACA,GACA,KACA,OACA,QACA,MACA;AACA,SAAO,eAAe,QAAQ,WAAW,yBAAyB;AAAA,IAChE,UAAU;AAAA,IACV,OACE,OAAO,kBAAkB,WACrB,MACE,cAAc,eAAe,QAAQ,GAAG,GAAG,KAAK,OAAO,QAAQ,IAAI,IACrE,SAAS,4BAAyC;AAChD,aAAO,cAAc,KAAK,IAAI,KAAK;AAAA,IACrC;AAAA,EACR,CAAC;AACH;AAMO,SAAS,iCAAiC;AAC/C,UAAQ,UAAU,wBAAwB;AAC5C;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/jest/mocks/canvas-mock.ts"],
|
|
4
|
-
"sourcesContent": ["const AVG_CHARACTER_WIDTH = 8;\nconst TEXT_WIDTH_MAPPINGS: Record<string, number> = {\n '\\u2026': 11,\n '0': 9,\n '1': 7,\n '2': 9,\n '3': 8,\n '4': 9,\n '5': 10,\n '6': 10,\n '7': 9,\n '8': 9,\n '9': 8,\n ' ': 0,\n '!': 4,\n '\"': 6,\n '#': 10,\n $: 9,\n '%': 12,\n '&': 10,\n \"'\": 2,\n '(': 7,\n ')': 5,\n '*': 7,\n '+': 9,\n ',': 3,\n '-': 5,\n '.': 4,\n '/': 7,\n ':': 4,\n ';': 3,\n '<': 7,\n '=': 9,\n '>': 9,\n '?': 7,\n '@': 14,\n A: 11,\n B: 11,\n C: 10,\n D: 11,\n E: 10,\n F: 10,\n G: 10,\n H: 12,\n I: 4,\n J: 8,\n K: 12,\n L: 10,\n M: 14,\n N: 12,\n O: 11,\n P: 11,\n Q: 11,\n R: 11,\n S: 9,\n T: 10,\n U: 11,\n V: 10,\n W: 14,\n X: 10,\n Y: 10,\n Z: 9,\n '[': 6,\n '\\\\': 7,\n ']': 4,\n '^': 7,\n _: 8,\n '`': 4,\n a: 8,\n b: 10,\n c: 8,\n d: 8,\n e: 8,\n f: 6,\n g: 8,\n h: 9,\n i: 4,\n j: 4,\n k: 10,\n l: 4,\n m: 14,\n n: 9,\n o: 9,\n p: 10,\n q: 8,\n r: 7,\n s: 8,\n t: 5,\n u: 9,\n v: 8,\n w: 12,\n x: 8,\n y: 8,\n z: 8,\n '{': 6,\n '|': 4,\n '}': 5,\n '~': 11,\n};\n\n/** Returns the width of a given character in pixels. */\nfunction getCharWidth(character: string): number {\n return TEXT_WIDTH_MAPPINGS[character] ?? AVG_CHARACTER_WIDTH;\n}\n\nconst pristineGetContext = HTMLCanvasElement.prototype.getContext;\n\n/**\n * Mocks the `getContext()` function of HTMLCanvasElements so it returns an\n * object with an implementation of `measureText()`. If no `mockTextWidth` is\n * set, it will fall back to a default implementation that attempts to calculate\n * a reasonable value for each given string.\n *\n * @param mockTextWidth - The value returned by the `measureText()` mock for all strings\n */\nexport function setupCanvasMeasureTextMock(mockTextWidth?: number) {\n Object.defineProperty(HTMLCanvasElement.prototype, 'getContext', {\n writable: true,\n value: () => ({\n measureText: (text: string): TextMetrics => {\n const charWidth =\n mockTextWidth !== undefined\n ? mockTextWidth\n : [...text].reduce((prev, curr) => prev + getCharWidth(curr), 0);\n\n return {\n width: charWidth,\n actualBoundingBoxLeft: 0,\n actualBoundingBoxRight: charWidth,\n fontBoundingBoxAscent: 0,\n fontBoundingBoxDescent: 0,\n actualBoundingBoxAscent: 0,\n actualBoundingBoxDescent: 0,\n alphabeticBaseline: 0,\n emHeightAscent: 0,\n emHeightDescent: 0,\n hangingBaseline: 0,\n ideographicBaseline: 0,\n };\n },\n scale: () => {\n return null;\n },\n clearRect: () => {\n return null;\n },\n draw: () => {\n return null;\n },\n beginPath: () => {\n return null;\n },\n stroke: () => {\n return null;\n },\n closePath: () => {\n return null;\n },\n moveTo: () => {\n return null;\n },\n lineTo: () => {\n return null;\n },\n arc: () => {\n return null;\n },\n fill: () => {\n return null;\n },\n rect: () => {\n return null;\n },\n save: () => {\n return null;\n },\n restore: () => {\n return null;\n },\n }),\n });\n}\n\n
|
|
5
|
-
"mappings": "AAAA,MAAM,sBAAsB;AAC5B,MAAM,sBAA8C;AAAA,EAClD,UAAU;AAAA,EACV,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,GAAG;AAAA,EACH,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,KAAK;AAAA,EACL,MAAM;AAAA,EACN,KAAK;AAAA,EACL,KAAK;AAAA,EACL,GAAG;AAAA,EACH,KAAK;AAAA,EACL,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AACP;AAGA,SAAS,aAAa,WAA2B;AAC/C,SAAO,oBAAoB,SAAS,KAAK;AAC3C;AAEA,MAAM,qBAAqB,kBAAkB,UAAU;
|
|
4
|
+
"sourcesContent": ["const AVG_CHARACTER_WIDTH = 8;\nconst TEXT_WIDTH_MAPPINGS: Record<string, number> = {\n '\\u2026': 11,\n '0': 9,\n '1': 7,\n '2': 9,\n '3': 8,\n '4': 9,\n '5': 10,\n '6': 10,\n '7': 9,\n '8': 9,\n '9': 8,\n ' ': 0,\n '!': 4,\n '\"': 6,\n '#': 10,\n $: 9,\n '%': 12,\n '&': 10,\n \"'\": 2,\n '(': 7,\n ')': 5,\n '*': 7,\n '+': 9,\n ',': 3,\n '-': 5,\n '.': 4,\n '/': 7,\n ':': 4,\n ';': 3,\n '<': 7,\n '=': 9,\n '>': 9,\n '?': 7,\n '@': 14,\n A: 11,\n B: 11,\n C: 10,\n D: 11,\n E: 10,\n F: 10,\n G: 10,\n H: 12,\n I: 4,\n J: 8,\n K: 12,\n L: 10,\n M: 14,\n N: 12,\n O: 11,\n P: 11,\n Q: 11,\n R: 11,\n S: 9,\n T: 10,\n U: 11,\n V: 10,\n W: 14,\n X: 10,\n Y: 10,\n Z: 9,\n '[': 6,\n '\\\\': 7,\n ']': 4,\n '^': 7,\n _: 8,\n '`': 4,\n a: 8,\n b: 10,\n c: 8,\n d: 8,\n e: 8,\n f: 6,\n g: 8,\n h: 9,\n i: 4,\n j: 4,\n k: 10,\n l: 4,\n m: 14,\n n: 9,\n o: 9,\n p: 10,\n q: 8,\n r: 7,\n s: 8,\n t: 5,\n u: 9,\n v: 8,\n w: 12,\n x: 8,\n y: 8,\n z: 8,\n '{': 6,\n '|': 4,\n '}': 5,\n '~': 11,\n};\n\n/** Returns the width of a given character in pixels. */\nfunction getCharWidth(character: string): number {\n return TEXT_WIDTH_MAPPINGS[character] ?? AVG_CHARACTER_WIDTH;\n}\n\nconst pristineGetContext = HTMLCanvasElement.prototype.getContext;\n\n/**\n * Mocks the `getContext()` function of HTMLCanvasElements so it returns an\n * object with an implementation of `measureText()`. If no `mockTextWidth` is\n * set, it will fall back to a default implementation that attempts to calculate\n * a reasonable value for each given string.\n *\n * @param mockTextWidth - The value returned by the `measureText()` mock for all strings\n * @public\n */\nexport function setupCanvasMeasureTextMock(mockTextWidth?: number) {\n Object.defineProperty(HTMLCanvasElement.prototype, 'getContext', {\n writable: true,\n value: () => ({\n measureText: (text: string): TextMetrics => {\n const charWidth =\n mockTextWidth !== undefined\n ? mockTextWidth\n : [...text].reduce((prev, curr) => prev + getCharWidth(curr), 0);\n\n return {\n width: charWidth,\n actualBoundingBoxLeft: 0,\n actualBoundingBoxRight: charWidth,\n fontBoundingBoxAscent: 0,\n fontBoundingBoxDescent: 0,\n actualBoundingBoxAscent: 0,\n actualBoundingBoxDescent: 0,\n alphabeticBaseline: 0,\n emHeightAscent: 0,\n emHeightDescent: 0,\n hangingBaseline: 0,\n ideographicBaseline: 0,\n };\n },\n scale: () => {\n return null;\n },\n clearRect: () => {\n return null;\n },\n draw: () => {\n return null;\n },\n beginPath: () => {\n return null;\n },\n stroke: () => {\n return null;\n },\n closePath: () => {\n return null;\n },\n moveTo: () => {\n return null;\n },\n lineTo: () => {\n return null;\n },\n arc: () => {\n return null;\n },\n fill: () => {\n return null;\n },\n rect: () => {\n return null;\n },\n save: () => {\n return null;\n },\n restore: () => {\n return null;\n },\n }),\n });\n}\n\n/**\n * Clears mocked `getContext()` function on HTMLCanvasElements.\n * @public\n */\nexport function clearCanvasMeasureTextMock() {\n HTMLCanvasElement.prototype.getContext = pristineGetContext;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/jest/mocks/dom-rect-mock.ts"],
|
|
4
|
-
"sourcesContent": ["
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["/**\n * Creates a DOMRect instance. Unspecified values default to `0`.\n * @internal\n */\nexport function createDOMRect(\n width: number,\n height?: number,\n x?: number,\n y?: number,\n top?: number,\n right?: number,\n bottom?: number,\n left?: number,\n): DOMRect {\n return {\n width,\n height: height ?? 0,\n x: x ?? 0,\n y: y ?? 0,\n top: top ?? 0,\n right: right ?? 0,\n bottom: bottom ?? 0,\n left: left ?? 0,\n toJSON: function () {\n const { toJSON, ...remainingProps } = this;\n\n return remainingProps;\n },\n };\n}\n\nexport const FALLBACK_DOM_RECT: DOMRect = Object.freeze(createDOMRect(0));\n\nconst prisitineDomRect = window.DOMRect;\n\n/**\n * Mocks the domRect since jsdom doesn't provide it\n * @param mockDomRect - Override values for DOMRect\n * @public\n */\nexport function setupDomRectMock(mockDomRect: DOMRect = FALLBACK_DOM_RECT) {\n Object.defineProperties(window, {\n DOMRect: {\n writable: true,\n value: {\n fromRect: () => mockDomRect,\n },\n },\n });\n}\n\n/**\n * Clears the DomRect\n * @public\n */\nexport function clearDomRectMock() {\n window.DOMRect = prisitineDomRect;\n}\n"],
|
|
5
|
+
"mappings": "AAIO,SAAS,cACd,OACA,QACA,GACA,GACA,KACA,OACA,QACA,MACS;AACT,SAAO;AAAA,IACL;AAAA,IACA,QAAQ,UAAU;AAAA,IAClB,GAAG,KAAK;AAAA,IACR,GAAG,KAAK;AAAA,IACR,KAAK,OAAO;AAAA,IACZ,OAAO,SAAS;AAAA,IAChB,QAAQ,UAAU;AAAA,IAClB,MAAM,QAAQ;AAAA,IACd,QAAQ,WAAY;AAClB,YAAM,EAAE,QAAQ,GAAG,eAAe,IAAI;AAEtC,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAEO,MAAM,oBAA6B,OAAO,OAAO,cAAc,CAAC,CAAC;AAExE,MAAM,mBAAmB,OAAO;AAOzB,SAAS,iBAAiB,cAAuB,mBAAmB;AACzE,SAAO,iBAAiB,QAAQ;AAAA,IAC9B,SAAS;AAAA,MACP,UAAU;AAAA,MACV,OAAO;AAAA,QACL,UAAU,MAAM;AAAA,MAClB;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAMO,SAAS,mBAAmB;AACjC,SAAO,UAAU;AACnB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/jest/mocks/resize-observer-mock.ts"],
|
|
4
|
-
"sourcesContent": ["// eslint-disable-next-line no-restricted-imports\nimport { jest } from '@jest/globals';\nimport { PartialDeep } from 'type-fest';\n\nconst pristineResizeObserver = window.ResizeObserver;\n\n
|
|
5
|
-
"mappings": "AACA,SAAS,YAAY;AAGrB,MAAM,yBAAyB,OAAO;
|
|
4
|
+
"sourcesContent": ["// eslint-disable-next-line no-restricted-imports\nimport { jest } from '@jest/globals';\nimport { PartialDeep } from 'type-fest';\n\nconst pristineResizeObserver = window.ResizeObserver;\n\n/**\n * Mocks the Resize Observer\n * @public\n */\nexport function setupResizeObserverMock(\n /** When the Resize Observer should return specific results, you can pass them here */\n mockedObserveCallbackValue?: PartialDeep<ResizeObserverEntry>[],\n) {\n Object.defineProperty(window, 'ResizeObserver', {\n writable: true,\n value: jest.fn(\n (callback: (entries: PartialDeep<ResizeObserverEntry>[]) => void) => ({\n observe: mockedObserveCallbackValue\n ? jest.fn().mockImplementation(() => {\n callback(mockedObserveCallbackValue);\n })\n : jest.fn(),\n unobserve: jest.fn(),\n disconnect: jest.fn(),\n }),\n ),\n });\n}\n\n/**\n * Clears the Resize Observer\n * @public\n */\nexport function clearResizeObserverMock() {\n window.ResizeObserver = pristineResizeObserver;\n}\n"],
|
|
5
|
+
"mappings": "AACA,SAAS,YAAY;AAGrB,MAAM,yBAAyB,OAAO;AAM/B,SAAS,wBAEd,4BACA;AACA,SAAO,eAAe,QAAQ,kBAAkB;AAAA,IAC9C,UAAU;AAAA,IACV,OAAO,KAAK;AAAA,MACV,CAAC,cAAqE;AAAA,QACpE,SAAS,6BACL,KAAK,GAAG,EAAE,mBAAmB,MAAM;AACjC,mBAAS,0BAA0B;AAAA,QACrC,CAAC,IACD,KAAK,GAAG;AAAA,QACZ,WAAW,KAAK,GAAG;AAAA,QACnB,YAAY,KAAK,GAAG;AAAA,MACtB;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAMO,SAAS,0BAA0B;AACxC,SAAO,iBAAiB;AAC1B;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/jest/mocks/scroll-width-mock.ts"],
|
|
4
|
-
"sourcesContent": ["const pristineScrollWidthDescriptor = Object.getOwnPropertyDescriptor(\n HTMLElement.prototype,\n 'scrollWidth',\n);\n\n
|
|
5
|
-
"mappings": "AAAA,MAAM,gCAAgC,OAAO;AAAA,EAC3C,YAAY;AAAA,EACZ;AACF;
|
|
4
|
+
"sourcesContent": ["const pristineScrollWidthDescriptor = Object.getOwnPropertyDescriptor(\n HTMLElement.prototype,\n 'scrollWidth',\n);\n\n/**\n * Mocks the return value of the `scrollWidth` property on all `HTMLElements`.\n * @public\n */\nexport function setupScrollWidthMock(scrollWidth: number) {\n Object.defineProperty(HTMLElement.prototype, 'scrollWidth', {\n configurable: true,\n get: () => scrollWidth,\n });\n}\n\n/**\n * Clears mocked `scrollWidth` property on `HTMLElements`.\n * @public\n */\nexport function clearScrollWidthMock() {\n Object.defineProperty(HTMLElement.prototype, 'scrollWidth', {\n configurable: true,\n get: pristineScrollWidthDescriptor?.get\n ? pristineScrollWidthDescriptor.get\n : () => 0,\n });\n}\n"],
|
|
5
|
+
"mappings": "AAAA,MAAM,gCAAgC,OAAO;AAAA,EAC3C,YAAY;AAAA,EACZ;AACF;AAMO,SAAS,qBAAqB,aAAqB;AACxD,SAAO,eAAe,YAAY,WAAW,eAAe;AAAA,IAC1D,cAAc;AAAA,IACd,KAAK,MAAM;AAAA,EACb,CAAC;AACH;AAMO,SAAS,uBAAuB;AACrC,SAAO,eAAe,YAAY,WAAW,eAAe;AAAA,IAC1D,cAAc;AAAA,IACd,KAAK,+BAA+B,MAChC,8BAA8B,MAC9B,MAAM;AAAA,EACZ,CAAC;AACH;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/jest/mocks/text-ellipsis-mock.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n clearGetBoundingClientRectMock,\n setupGetBoundingClientRectMock,\n} from './bounding-client-rect-mock.js';\nimport {\n clearCanvasMeasureTextMock,\n setupCanvasMeasureTextMock,\n} from './canvas-mock.js';\nimport { createDOMRect } from './dom-rect-mock.js';\nimport { clearScrollWidthMock } from './scroll-width-mock.js';\n\n
|
|
5
|
-
"mappings": "AAAA;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,qBAAqB;AAC9B,SAAS,4BAA4B;
|
|
4
|
+
"sourcesContent": ["import {\n clearGetBoundingClientRectMock,\n setupGetBoundingClientRectMock,\n} from './bounding-client-rect-mock.js';\nimport {\n clearCanvasMeasureTextMock,\n setupCanvasMeasureTextMock,\n} from './canvas-mock.js';\nimport { createDOMRect } from './dom-rect-mock.js';\nimport { clearScrollWidthMock } from './scroll-width-mock.js';\n\n/**\n * Mocks DOM properties and functions required for the TextEllipsis component to work.\n * @public\n */\nexport function setupTextEllipsisMock(\n containerWidth: number = 250,\n textWidth: number = 200,\n mockCanvas: boolean = false,\n) {\n setupGetBoundingClientRectMock(function (this: HTMLElement) {\n // container width\n if (this.getAttribute('data-ellipsis') !== null) {\n return createDOMRect(containerWidth, 0);\n }\n // actual text width\n return createDOMRect(textWidth, 0);\n });\n\n if (mockCanvas) {\n setupCanvasMeasureTextMock();\n }\n}\n\n/**\n * Clears mocked DOM properties and functions required for the TextEllipsis component to work.\n * @public\n */\nexport function clearTextEllipsisMock() {\n clearGetBoundingClientRectMock();\n clearScrollWidthMock();\n clearCanvasMeasureTextMock();\n}\n"],
|
|
5
|
+
"mappings": "AAAA;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,qBAAqB;AAC9B,SAAS,4BAA4B;AAM9B,SAAS,sBACd,iBAAyB,KACzB,YAAoB,KACpB,aAAsB,OACtB;AACA,iCAA+B,WAA6B;AAE1D,QAAI,KAAK,aAAa,eAAe,MAAM,MAAM;AAC/C,aAAO,cAAc,gBAAgB,CAAC;AAAA,IACxC;AAEA,WAAO,cAAc,WAAW,CAAC;AAAA,EACnC,CAAC;AAED,MAAI,YAAY;AACd,+BAA2B;AAAA,EAC7B;AACF;AAMO,SAAS,wBAAwB;AACtC,iCAA+B;AAC/B,uBAAqB;AACrB,6BAA2B;AAC7B;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/jest/preset/jest-preset.ts"],
|
|
4
|
-
"sourcesContent": ["
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["/**\n * @public\n */\nexport const stratoPreset = {\n moduleNameMapper: {\n '^d3-(.*)$': '<rootDir>/node_modules/d3-$1/dist/d3-$1',\n '^@codemirror/legacy-modes/mode/(.*)$':\n '<rootDir>/node_modules/@codemirror/legacy-modes/mode/$1.cjs',\n nanoid: '<rootDir>/node_modules/nanoid/index.cjs',\n '\\\\.(css|less|scss|sass)$': 'identity-obj-proxy',\n },\n resolver:\n '<rootDir>/node_modules/@dynatrace/strato-components-testing/jest/preset/resolver.js',\n};\n"],
|
|
5
|
+
"mappings": "AAGO,MAAM,eAAe;AAAA,EAC1B,kBAAkB;AAAA,IAChB,aAAa;AAAA,IACb,wCACE;AAAA,IACF,QAAQ;AAAA,IACR,4BAA4B;AAAA,EAC9B;AAAA,EACA,UACE;AACJ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/jest/preset/resolver.ts"],
|
|
4
|
-
"sourcesContent": ["
|
|
5
|
-
"mappings": ";;;;AAAA;AAAA;
|
|
4
|
+
"sourcesContent": ["/**\n * @public\n */\nmodule.exports = (path, options) => {\n // Call the defaultResolver, so we leverage its cache, error handling, etc.\n return options.defaultResolver(path, {\n ...options,\n // Use packageFilter to process parsed `package.json` before the resolution (see https://www.npmjs.com/package/resolve#resolveid-opts-cb)\n packageFilter: (pkg) => {\n // This is a workaround for https://github.com/uuidjs/uuid/pull/616\n //\n // jest-environment-jsdom 28+ tries to use browser exports instead of default exports,\n // but uuid only offers an ESM browser export and not a CommonJS one. Jest does not yet\n // support ESM modules natively, so this causes a Jest error related to trying to parse\n // \"export\" syntax.\n //\n // This workaround prevents Jest from considering uuid's module-based exports at all;\n // it falls back to uuid's CommonJS+node \"main\" property.\n //\n // Once we're able to migrate our Jest config to ESM and a browser crypto\n // implementation is available for the browser+ESM version of uuid to use (eg, via\n // https://github.com/jsdom/jsdom/pull/3352 or a similar polyfill), this can go away.\n if (pkg.name === 'uuid') {\n delete pkg['exports'];\n delete pkg['module'];\n }\n return pkg;\n },\n });\n};\n"],
|
|
5
|
+
"mappings": ";;;;AAAA;AAAA;AAGA,WAAO,UAAU,CAAC,MAAM,YAAY;AAElC,aAAO,QAAQ,gBAAgB,MAAM;AAAA,QACnC,GAAG;AAAA;AAAA,QAEH,eAAe,CAAC,QAAQ;AActB,cAAI,IAAI,SAAS,QAAQ;AACvB,mBAAO,IAAI,SAAS;AACpB,mBAAO,IAAI,QAAQ;AAAA,UACrB;AACA,iBAAO;AAAA,QACT;AAAA,MACF,CAAC;AAAA,IACH;AAAA;AAAA;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import {
|
|
2
|
+
clearCanvasMeasureTextMock,
|
|
3
|
+
setupCanvasMeasureTextMock
|
|
4
|
+
} from "../mocks/canvas-mock.js";
|
|
5
|
+
import { setupDomRectMock, clearDomRectMock } from "../mocks/dom-rect-mock.js";
|
|
6
|
+
import {
|
|
7
|
+
setupResizeObserverMock,
|
|
8
|
+
clearResizeObserverMock
|
|
9
|
+
} from "../mocks/resize-observer-mock.js";
|
|
10
|
+
beforeAll(() => {
|
|
11
|
+
setupResizeObserverMock();
|
|
12
|
+
setupDomRectMock();
|
|
13
|
+
setupCanvasMeasureTextMock(-Infinity);
|
|
14
|
+
});
|
|
15
|
+
afterAll(() => {
|
|
16
|
+
clearResizeObserverMock();
|
|
17
|
+
clearCanvasMeasureTextMock();
|
|
18
|
+
clearDomRectMock();
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/jest/setup/index.ts"],
|
|
4
|
+
"sourcesContent": ["import {\n clearCanvasMeasureTextMock,\n setupCanvasMeasureTextMock,\n} from '../mocks/canvas-mock.js';\nimport { setupDomRectMock, clearDomRectMock } from '../mocks/dom-rect-mock.js';\nimport {\n setupResizeObserverMock,\n clearResizeObserverMock,\n} from '../mocks/resize-observer-mock.js';\n\nbeforeAll(() => {\n setupResizeObserverMock();\n setupDomRectMock();\n setupCanvasMeasureTextMock(-Infinity);\n});\n\nafterAll(() => {\n clearResizeObserverMock();\n clearCanvasMeasureTextMock();\n clearDomRectMock();\n});\n"],
|
|
5
|
+
"mappings": "AAAA;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,kBAAkB,wBAAwB;AACnD;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAEP,UAAU,MAAM;AACd,0BAAwB;AACxB,mBAAiB;AACjB,6BAA2B,SAAS;AACtC,CAAC;AAED,SAAS,MAAM;AACb,0BAAwB;AACxB,6BAA2B;AAC3B,mBAAiB;AACnB,CAAC;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/esm/jest/setup.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/jest/setup.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n clearCanvasMeasureTextMock,\n setupCanvasMeasureTextMock,\n} from './mocks/canvas-mock.js';\nimport { setupDomRectMock, clearDomRectMock } from './mocks/dom-rect-mock.js';\nimport {\n setupResizeObserverMock,\n clearResizeObserverMock,\n} from './mocks/resize-observer-mock.js';\n\n
|
|
5
|
-
"mappings": "AAAA;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,kBAAkB,wBAAwB;AACnD;AAAA,EACE;AAAA,EACA;AAAA,OACK;
|
|
4
|
+
"sourcesContent": ["import {\n clearCanvasMeasureTextMock,\n setupCanvasMeasureTextMock,\n} from './mocks/canvas-mock.js';\nimport { setupDomRectMock, clearDomRectMock } from './mocks/dom-rect-mock.js';\nimport {\n setupResizeObserverMock,\n clearResizeObserverMock,\n} from './mocks/resize-observer-mock.js';\n\n/**\n * Sets up design-system mocks.\n *\n * @deprecated Plase add `@dynatrace/strato-components-testing/jest/setup` to `setupFilesAfterEnv` your jest config instead now.\n * @public\n */\nexport function setup() {\n setupResizeObserverMock();\n setupDomRectMock();\n setupCanvasMeasureTextMock(-Infinity);\n}\n\n/**\n * Resets design-system mocks.\n *\n * @deprecated Plase add `@dynatrace/strato-components-testing/jest/setup` to `setupFilesAfterEnv` your jest config instead now.\n * @public\n */\nexport function clear() {\n clearResizeObserverMock();\n clearCanvasMeasureTextMock();\n clearDomRectMock();\n}\n"],
|
|
5
|
+
"mappings": "AAAA;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,kBAAkB,wBAAwB;AACnD;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAQA,SAAS,QAAQ;AACtB,0BAAwB;AACxB,mBAAiB;AACjB,6BAA2B,SAAS;AACtC;AAQO,SAAS,QAAQ;AACtB,0BAAwB;AACxB,6BAA2B;AAC3B,mBAAiB;AACnB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/jest/custom-render.d.ts
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
import { RenderOptions, RenderResult } from '@testing-library/react';
|
|
2
2
|
import React from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
3
6
|
export type RenderWithIntlOptions = {
|
|
4
7
|
locale?: string;
|
|
5
8
|
timeZone?: string;
|
|
6
9
|
} & Omit<RenderOptions, 'queries'>;
|
|
7
|
-
/**
|
|
10
|
+
/**
|
|
11
|
+
* Wrapper to render components with all required providers
|
|
12
|
+
* @public
|
|
13
|
+
*/
|
|
8
14
|
export declare const customRender: (ui: React.ReactElement, { locale, timeZone, wrapper: CustomWrapper, ...renderOptions }?: RenderWithIntlOptions) => RenderResult;
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* Mocks the `getBoundingClientRect()` function on all HTMLElements.
|
|
3
|
+
* @public
|
|
4
|
+
*/
|
|
2
5
|
export declare function setupGetBoundingClientRectMock(widthOrMockFn: number | (() => DOMRect | null), height?: number, x?: number, y?: number, top?: number, right?: number, bottom?: number, left?: number): void;
|
|
3
|
-
/**
|
|
6
|
+
/**
|
|
7
|
+
* Clears mocked `getBoundingClientRect()` function on HTMLElements.
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
4
10
|
export declare function clearGetBoundingClientRectMock(): void;
|
|
@@ -5,7 +5,11 @@
|
|
|
5
5
|
* a reasonable value for each given string.
|
|
6
6
|
*
|
|
7
7
|
* @param mockTextWidth - The value returned by the `measureText()` mock for all strings
|
|
8
|
+
* @public
|
|
8
9
|
*/
|
|
9
10
|
export declare function setupCanvasMeasureTextMock(mockTextWidth?: number): void;
|
|
10
|
-
/**
|
|
11
|
+
/**
|
|
12
|
+
* Clears mocked `getContext()` function on HTMLCanvasElements.
|
|
13
|
+
* @public
|
|
14
|
+
*/
|
|
11
15
|
export declare function clearCanvasMeasureTextMock(): void;
|
|
@@ -1,12 +1,17 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* Creates a DOMRect instance. Unspecified values default to `0`.
|
|
3
|
+
* @internal
|
|
4
|
+
*/
|
|
2
5
|
export declare function createDOMRect(width: number, height?: number, x?: number, y?: number, top?: number, right?: number, bottom?: number, left?: number): DOMRect;
|
|
3
6
|
export declare const FALLBACK_DOM_RECT: DOMRect;
|
|
4
7
|
/**
|
|
5
8
|
* Mocks the domRect since jsdom doesn't provide it
|
|
6
9
|
* @param mockDomRect - Override values for DOMRect
|
|
10
|
+
* @public
|
|
7
11
|
*/
|
|
8
12
|
export declare function setupDomRectMock(mockDomRect?: DOMRect): void;
|
|
9
13
|
/**
|
|
10
14
|
* Clears the DomRect
|
|
15
|
+
* @public
|
|
11
16
|
*/
|
|
12
17
|
export declare function clearDomRectMock(): void;
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import { PartialDeep } from 'type-fest';
|
|
2
|
-
/**
|
|
2
|
+
/**
|
|
3
|
+
* Mocks the Resize Observer
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
3
6
|
export declare function setupResizeObserverMock(
|
|
4
7
|
/** When the Resize Observer should return specific results, you can pass them here */
|
|
5
8
|
mockedObserveCallbackValue?: PartialDeep<ResizeObserverEntry>[]): void;
|
|
6
|
-
/**
|
|
9
|
+
/**
|
|
10
|
+
* Clears the Resize Observer
|
|
11
|
+
* @public
|
|
12
|
+
*/
|
|
7
13
|
export declare function clearResizeObserverMock(): void;
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* Mocks the return value of the `scrollWidth` property on all `HTMLElements`.
|
|
3
|
+
* @public
|
|
4
|
+
*/
|
|
2
5
|
export declare function setupScrollWidthMock(scrollWidth: number): void;
|
|
3
|
-
/**
|
|
6
|
+
/**
|
|
7
|
+
* Clears mocked `scrollWidth` property on `HTMLElements`.
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
4
10
|
export declare function clearScrollWidthMock(): void;
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* Mocks DOM properties and functions required for the TextEllipsis component to work.
|
|
3
|
+
* @public
|
|
4
|
+
*/
|
|
2
5
|
export declare function setupTextEllipsisMock(containerWidth?: number, textWidth?: number, mockCanvas?: boolean): void;
|
|
3
|
-
/**
|
|
6
|
+
/**
|
|
7
|
+
* Clears mocked DOM properties and functions required for the TextEllipsis component to work.
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
4
10
|
export declare function clearTextEllipsisMock(): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
var import_canvas_mock = require("../mocks/canvas-mock.js");
|
|
2
|
+
var import_dom_rect_mock = require("../mocks/dom-rect-mock.js");
|
|
3
|
+
var import_resize_observer_mock = require("../mocks/resize-observer-mock.js");
|
|
4
|
+
beforeAll(() => {
|
|
5
|
+
(0, import_resize_observer_mock.setupResizeObserverMock)();
|
|
6
|
+
(0, import_dom_rect_mock.setupDomRectMock)();
|
|
7
|
+
(0, import_canvas_mock.setupCanvasMeasureTextMock)(-Infinity);
|
|
8
|
+
});
|
|
9
|
+
afterAll(() => {
|
|
10
|
+
(0, import_resize_observer_mock.clearResizeObserverMock)();
|
|
11
|
+
(0, import_canvas_mock.clearCanvasMeasureTextMock)();
|
|
12
|
+
(0, import_dom_rect_mock.clearDomRectMock)();
|
|
13
|
+
});
|
package/jest/setup.d.ts
CHANGED
|
@@ -1,4 +1,14 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* Sets up design-system mocks.
|
|
3
|
+
*
|
|
4
|
+
* @deprecated Plase add `@dynatrace/strato-components-testing/jest/setup` to `setupFilesAfterEnv` your jest config instead now.
|
|
5
|
+
* @public
|
|
6
|
+
*/
|
|
2
7
|
export declare function setup(): void;
|
|
3
|
-
/**
|
|
8
|
+
/**
|
|
9
|
+
* Resets design-system mocks.
|
|
10
|
+
*
|
|
11
|
+
* @deprecated Plase add `@dynatrace/strato-components-testing/jest/setup` to `setupFilesAfterEnv` your jest config instead now.
|
|
12
|
+
* @public
|
|
13
|
+
*/
|
|
4
14
|
export declare function clear(): void;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynatrace/strato-components-testing",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"types": "./index.d.ts",
|
|
@@ -20,6 +20,13 @@
|
|
|
20
20
|
"browser": "./esm/jest/index.js",
|
|
21
21
|
"module": "./esm/jest/index.js",
|
|
22
22
|
"import": "./esm/jest/index.js"
|
|
23
|
+
},
|
|
24
|
+
"./jest/setup": {
|
|
25
|
+
"types": "./jest/setup/index.d.ts",
|
|
26
|
+
"require": "./jest/setup/index.js",
|
|
27
|
+
"browser": "./esm/jest/setup/index.js",
|
|
28
|
+
"module": "./esm/jest/setup/index.js",
|
|
29
|
+
"import": "./esm/jest/setup/index.js"
|
|
23
30
|
}
|
|
24
31
|
},
|
|
25
32
|
"peerDependencies": {
|