@leaflink/dom-testing-utils 2.1.2 → 2.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/dist/setup-env.js +40 -24
- package/dist/setup-env.js.map +1 -1
- package/dist/utils/cleanupModals.d.ts +4 -0
- package/dist/utils/cleanupModals.js +7 -1
- package/dist/utils/cleanupModals.js.map +1 -1
- package/dist/utils/cleanupToasts.d.ts +4 -0
- package/dist/utils/cleanupToasts.js +6 -0
- package/dist/utils/cleanupToasts.js.map +1 -1
- package/package.json +1 -1
package/dist/setup-env.js
CHANGED
|
@@ -3,9 +3,9 @@ import { configure as configureTestingLibrary } from '@testing-library/vue';
|
|
|
3
3
|
import { config, flushPromises } from '@vue/test-utils';
|
|
4
4
|
import { vi } from 'vitest';
|
|
5
5
|
import cleanupDropdowns from './utils/cleanupDropdowns.js';
|
|
6
|
-
import cleanupModals from './utils/cleanupModals.js';
|
|
6
|
+
import cleanupModals, { cleanupModalsMountNode } from './utils/cleanupModals.js';
|
|
7
7
|
import cleanupNoty from './utils/cleanupNoty.js';
|
|
8
|
-
import cleanupToasts from './utils/cleanupToasts.js';
|
|
8
|
+
import cleanupToasts, { cleanupToastsMountNode } from './utils/cleanupToasts.js';
|
|
9
9
|
// checking if an element is hidden is quite expensive
|
|
10
10
|
// this is only done in CI as a fail safe. It can still explicitly be checked
|
|
11
11
|
// in the test files which helps documenting what is part of the DOM but hidden
|
|
@@ -17,39 +17,45 @@ vi.mock('lodash-es/debounce', () => {
|
|
|
17
17
|
});
|
|
18
18
|
config.global.mocks['$t'] = (msg) => msg;
|
|
19
19
|
const oldWindowLocation = global.window.location;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
replace: vi.fn(),
|
|
35
|
-
},
|
|
20
|
+
// @ts-expect-error - dunno
|
|
21
|
+
delete global.window.location;
|
|
22
|
+
// @ts-expect-error - dunno
|
|
23
|
+
global.window.location = Object.defineProperties({}, {
|
|
24
|
+
...Object.getOwnPropertyDescriptors(oldWindowLocation),
|
|
25
|
+
assign: {
|
|
26
|
+
configurable: true,
|
|
27
|
+
value: vi.fn(),
|
|
28
|
+
},
|
|
29
|
+
href: {
|
|
30
|
+
configurable: true,
|
|
31
|
+
writable: true,
|
|
32
|
+
value: {
|
|
33
|
+
replace: vi.fn(),
|
|
36
34
|
},
|
|
37
|
-
}
|
|
38
|
-
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
global.window.open = vi.fn();
|
|
38
|
+
global.window.ResizeObserver =
|
|
39
|
+
global.window.ResizeObserver ||
|
|
40
|
+
class ResizeObserver {
|
|
41
|
+
observe() { }
|
|
42
|
+
unobserve() { }
|
|
43
|
+
disconnect() { }
|
|
44
|
+
};
|
|
45
|
+
afterAll(() => {
|
|
46
|
+
cleanupModalsMountNode();
|
|
47
|
+
cleanupToastsMountNode();
|
|
39
48
|
});
|
|
40
49
|
afterEach(() => {
|
|
41
|
-
// cleanup modals in between tests
|
|
42
50
|
cleanupModals();
|
|
43
|
-
// cleanup toasts in between tests
|
|
44
51
|
cleanupToasts();
|
|
45
|
-
// cleanup noty messages in between tests
|
|
46
52
|
cleanupNoty();
|
|
47
|
-
// cleanup dropdown menus in between tests
|
|
48
53
|
cleanupDropdowns();
|
|
49
54
|
});
|
|
50
55
|
afterEach(async () => {
|
|
51
56
|
// flush out any pending promises so they will fail the test instead of asynchronously at
|
|
52
57
|
// the wrong time
|
|
58
|
+
// Todo: figure out why this isnt working
|
|
53
59
|
await flushPromises();
|
|
54
60
|
});
|
|
55
61
|
afterAll(() => {
|
|
@@ -72,4 +78,14 @@ vi.stubGlobal('IntersectionObserver', IntersectionObserverMock);
|
|
|
72
78
|
vi.stubGlobal('fetch', vi.fn().mockResolvedValue({ json: vi.fn().mockResolvedValue({}) }));
|
|
73
79
|
// https://github.com/jsdom/jsdom/issues/1695
|
|
74
80
|
Element.prototype.scrollIntoView = vi.fn();
|
|
81
|
+
window.matchMedia = vi.fn((query) => ({
|
|
82
|
+
matches: false,
|
|
83
|
+
media: query,
|
|
84
|
+
onchange: null,
|
|
85
|
+
addListener: vi.fn(),
|
|
86
|
+
removeListener: vi.fn(),
|
|
87
|
+
addEventListener: vi.fn(),
|
|
88
|
+
removeEventListener: vi.fn(),
|
|
89
|
+
dispatchEvent: vi.fn(),
|
|
90
|
+
}));
|
|
75
91
|
//# sourceMappingURL=setup-env.js.map
|
package/dist/setup-env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-env.js","sourceRoot":"src/","sources":["setup-env.ts"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAC;AACnC,OAAO,EAAE,SAAS,IAAI,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE5B,OAAO,gBAAgB,MAAM,6BAA6B,CAAC;AAC3D,OAAO,aAAa,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"setup-env.js","sourceRoot":"src/","sources":["setup-env.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,12 @@
|
|
|
4
4
|
* @returns void
|
|
5
5
|
*/
|
|
6
6
|
export default function cleanupModals() {
|
|
7
|
-
document.querySelectorAll('.stash-modal
|
|
7
|
+
document.querySelectorAll('.stash-modal').forEach((elem) => elem.parentNode?.removeChild(elem));
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Helper method to remove the modals' mount node from the DOM.
|
|
11
|
+
*/
|
|
12
|
+
export function cleanupModalsMountNode(selector = '#stash-modals-mount-node') {
|
|
13
|
+
document.querySelectorAll(selector).forEach((elem) => elem.parentNode?.removeChild(elem));
|
|
8
14
|
}
|
|
9
15
|
//# sourceMappingURL=cleanupModals.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cleanupModals.js","sourceRoot":"src/","sources":["utils/cleanupModals.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa;IACnC,QAAQ,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"cleanupModals.js","sourceRoot":"src/","sources":["utils/cleanupModals.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa;IACnC,QAAQ,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AAClG,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAQ,GAAG,0BAA0B;IAC1E,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5F,CAAC"}
|
|
@@ -6,4 +6,10 @@
|
|
|
6
6
|
export default function cleanupToasts() {
|
|
7
7
|
document.querySelectorAll('.stash-toast').forEach((elem) => elem.parentNode?.removeChild(elem));
|
|
8
8
|
}
|
|
9
|
+
/**
|
|
10
|
+
* Helper method to remove the toasts' mount node from the DOM.
|
|
11
|
+
*/
|
|
12
|
+
export function cleanupToastsMountNode(selector = '#stash-toasts-mount-node') {
|
|
13
|
+
document.querySelectorAll(selector).forEach((elem) => elem.parentNode?.removeChild(elem));
|
|
14
|
+
}
|
|
9
15
|
//# sourceMappingURL=cleanupToasts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cleanupToasts.js","sourceRoot":"src/","sources":["utils/cleanupToasts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa;IACnC,QAAQ,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AAClG,CAAC"}
|
|
1
|
+
{"version":3,"file":"cleanupToasts.js","sourceRoot":"src/","sources":["utils/cleanupToasts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa;IACnC,QAAQ,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AAClG,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAQ,GAAG,0BAA0B;IAC1E,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5F,CAAC"}
|