@vnejs/test-utils 0.1.1 → 0.1.2
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/expect-call-sequence.d.ts +2 -0
- package/dist/expect-call-sequence.js +7 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +1 -0
- package/dist/mocks/dom.d.ts +5 -5
- package/dist/mocks/dom.js +3 -12
- package/dist/spy-event.d.ts +3 -6
- package/dist/spy-event.js +4 -8
- package/package.json +5 -3
- package/src/expect-call-sequence.ts +11 -0
- package/src/index.ts +2 -1
- package/src/mocks/dom.ts +10 -15
- package/src/spy-event.ts +7 -9
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,8 @@ export { createTestModule, type CreateTestModuleOptions, type TestModuleInstance
|
|
|
3
3
|
export { registerCoreVne } from "./register-core-vne.js";
|
|
4
4
|
export { registerVnePlugin } from "./register-vne.js";
|
|
5
5
|
export { resetDom } from "./reset-dom.js";
|
|
6
|
-
export {
|
|
6
|
+
export { expectCallSequence } from "./expect-call-sequence.js";
|
|
7
|
+
export { spyEvent, type EventSpy } from "./spy-event.js";
|
|
7
8
|
export { stubEvent, stubLogsEmit, stubVendorEvents } from "./stub-event.js";
|
|
8
9
|
export { mockFullscreen } from "./mocks/dom.js";
|
|
9
10
|
export { createLocalforageMock } from "./mocks/localforage.js";
|
package/dist/index.js
CHANGED
|
@@ -3,6 +3,7 @@ export { createTestModule } from "./harness.js";
|
|
|
3
3
|
export { registerCoreVne } from "./register-core-vne.js";
|
|
4
4
|
export { registerVnePlugin } from "./register-vne.js";
|
|
5
5
|
export { resetDom } from "./reset-dom.js";
|
|
6
|
+
export { expectCallSequence } from "./expect-call-sequence.js";
|
|
6
7
|
export { spyEvent } from "./spy-event.js";
|
|
7
8
|
export { stubEvent, stubLogsEmit, stubVendorEvents } from "./stub-event.js";
|
|
8
9
|
export { mockFullscreen } from "./mocks/dom.js";
|
package/dist/mocks/dom.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
import { type Mock } from "vitest";
|
|
1
2
|
export type MockFullscreenOptions = {
|
|
2
3
|
fullscreenElement?: Element | null;
|
|
3
4
|
};
|
|
4
|
-
export
|
|
5
|
-
requestFullscreen: () => Promise<
|
|
6
|
-
exitFullscreen: () => Promise<
|
|
7
|
-
getRequestCount: () => number;
|
|
8
|
-
getExitCount: () => number;
|
|
5
|
+
export type MockFullscreen = {
|
|
6
|
+
requestFullscreen: Mock<() => Promise<void>>;
|
|
7
|
+
exitFullscreen: Mock<() => Promise<void>>;
|
|
9
8
|
};
|
|
9
|
+
export declare const mockFullscreen: ({ fullscreenElement }?: MockFullscreenOptions) => MockFullscreen;
|
package/dist/mocks/dom.js
CHANGED
|
@@ -1,21 +1,12 @@
|
|
|
1
|
+
import { vi } from "vitest";
|
|
1
2
|
export const mockFullscreen = ({ fullscreenElement = null } = {}) => {
|
|
2
3
|
Object.defineProperty(document, "fullscreenElement", { value: fullscreenElement, configurable: true });
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const requestFullscreen = () => {
|
|
6
|
-
requestCount += 1;
|
|
7
|
-
return Promise.resolve(undefined);
|
|
8
|
-
};
|
|
9
|
-
const exitFullscreen = () => {
|
|
10
|
-
exitCount += 1;
|
|
11
|
-
return Promise.resolve(undefined);
|
|
12
|
-
};
|
|
4
|
+
const requestFullscreen = vi.fn(() => Promise.resolve(undefined));
|
|
5
|
+
const exitFullscreen = vi.fn(() => Promise.resolve(undefined));
|
|
13
6
|
document.body.requestFullscreen = requestFullscreen;
|
|
14
7
|
document.exitFullscreen = exitFullscreen;
|
|
15
8
|
return {
|
|
16
9
|
requestFullscreen,
|
|
17
10
|
exitFullscreen,
|
|
18
|
-
getRequestCount: () => requestCount,
|
|
19
|
-
getExitCount: () => exitCount,
|
|
20
11
|
};
|
|
21
12
|
};
|
package/dist/spy-event.d.ts
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
import type { Observer } from "@vnejs/observer";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
last: () => unknown[] | undefined;
|
|
6
|
-
first: () => unknown[];
|
|
7
|
-
};
|
|
2
|
+
import { type Mock } from "vitest";
|
|
3
|
+
export type EventSpy = Mock<(...args: unknown[]) => void>;
|
|
4
|
+
export declare const spyEvent: (observer: Observer, event: string) => EventSpy;
|
package/dist/spy-event.js
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
|
+
import { vi } from "vitest";
|
|
1
2
|
export const spyEvent = (observer, event) => {
|
|
2
|
-
const
|
|
3
|
+
const spy = vi.fn();
|
|
3
4
|
observer.subscribe(event, (...args) => {
|
|
4
|
-
|
|
5
|
+
spy(...args);
|
|
5
6
|
});
|
|
6
|
-
return
|
|
7
|
-
calls,
|
|
8
|
-
count: () => calls.length,
|
|
9
|
-
last: () => calls.at(-1),
|
|
10
|
-
first: () => calls[0],
|
|
11
|
-
};
|
|
7
|
+
return spy;
|
|
12
8
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vnejs/test-utils",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Test harness utilities for @vnejs plugin modules",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -30,7 +30,8 @@
|
|
|
30
30
|
"@vnejs/shared": "~0.1.0"
|
|
31
31
|
},
|
|
32
32
|
"peerDependencies": {
|
|
33
|
-
"@vnejs/module": "~0.1.0"
|
|
33
|
+
"@vnejs/module": "~0.1.0",
|
|
34
|
+
"vitest": ">=3.0.0"
|
|
34
35
|
},
|
|
35
36
|
"devDependencies": {
|
|
36
37
|
"@vnejs/configs.ts-common": "~0.1.0",
|
|
@@ -47,6 +48,7 @@
|
|
|
47
48
|
"@vnejs/contracts.core.storage": "~0.1.0",
|
|
48
49
|
"@vnejs/contracts.core.system": "~0.1.0",
|
|
49
50
|
"@vnejs/contracts.core.vendors": "~0.1.0",
|
|
50
|
-
"@vnejs/module": "~0.1.0"
|
|
51
|
+
"@vnejs/module": "~0.1.0",
|
|
52
|
+
"vitest": "~3.2.0"
|
|
51
53
|
}
|
|
52
54
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { expect } from "vitest";
|
|
2
|
+
|
|
3
|
+
import type { EventSpy } from "./spy-event.js";
|
|
4
|
+
|
|
5
|
+
export const expectCallSequence = (spy: EventSpy, ...calls: unknown[]) => {
|
|
6
|
+
expect(spy).toHaveBeenCalledTimes(calls.length);
|
|
7
|
+
|
|
8
|
+
calls.forEach((expected, index) => {
|
|
9
|
+
expect(spy.mock.calls[index]?.[0]).toMatchObject(expected as Record<string, unknown>);
|
|
10
|
+
});
|
|
11
|
+
};
|
package/src/index.ts
CHANGED
|
@@ -3,7 +3,8 @@ export { createTestModule, type CreateTestModuleOptions, type TestModuleInstance
|
|
|
3
3
|
export { registerCoreVne } from "./register-core-vne.js";
|
|
4
4
|
export { registerVnePlugin } from "./register-vne.js";
|
|
5
5
|
export { resetDom } from "./reset-dom.js";
|
|
6
|
-
export {
|
|
6
|
+
export { expectCallSequence } from "./expect-call-sequence.js";
|
|
7
|
+
export { spyEvent, type EventSpy } from "./spy-event.js";
|
|
7
8
|
export { stubEvent, stubLogsEmit, stubVendorEvents } from "./stub-event.js";
|
|
8
9
|
export { mockFullscreen } from "./mocks/dom.js";
|
|
9
10
|
export { createLocalforageMock } from "./mocks/localforage.js";
|
package/src/mocks/dom.ts
CHANGED
|
@@ -1,22 +1,19 @@
|
|
|
1
|
+
import { vi, type Mock } from "vitest";
|
|
2
|
+
|
|
1
3
|
export type MockFullscreenOptions = {
|
|
2
4
|
fullscreenElement?: Element | null;
|
|
3
5
|
};
|
|
4
6
|
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
let exitCount = 0;
|
|
7
|
+
export type MockFullscreen = {
|
|
8
|
+
requestFullscreen: Mock<() => Promise<void>>;
|
|
9
|
+
exitFullscreen: Mock<() => Promise<void>>;
|
|
10
|
+
};
|
|
10
11
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
return Promise.resolve(undefined);
|
|
14
|
-
};
|
|
12
|
+
export const mockFullscreen = ({ fullscreenElement = null }: MockFullscreenOptions = {}): MockFullscreen => {
|
|
13
|
+
Object.defineProperty(document, "fullscreenElement", { value: fullscreenElement, configurable: true });
|
|
15
14
|
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
return Promise.resolve(undefined);
|
|
19
|
-
};
|
|
15
|
+
const requestFullscreen = vi.fn(() => Promise.resolve(undefined));
|
|
16
|
+
const exitFullscreen = vi.fn(() => Promise.resolve(undefined));
|
|
20
17
|
|
|
21
18
|
document.body.requestFullscreen = requestFullscreen;
|
|
22
19
|
document.exitFullscreen = exitFullscreen;
|
|
@@ -24,7 +21,5 @@ export const mockFullscreen = ({ fullscreenElement = null }: MockFullscreenOptio
|
|
|
24
21
|
return {
|
|
25
22
|
requestFullscreen,
|
|
26
23
|
exitFullscreen,
|
|
27
|
-
getRequestCount: () => requestCount,
|
|
28
|
-
getExitCount: () => exitCount,
|
|
29
24
|
};
|
|
30
25
|
};
|
package/src/spy-event.ts
CHANGED
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
import type { Observer } from "@vnejs/observer";
|
|
2
|
+
import { vi, type Mock } from "vitest";
|
|
2
3
|
|
|
3
|
-
export
|
|
4
|
-
|
|
4
|
+
export type EventSpy = Mock<(...args: unknown[]) => void>;
|
|
5
|
+
|
|
6
|
+
export const spyEvent = (observer: Observer, event: string): EventSpy => {
|
|
7
|
+
const spy = vi.fn() as EventSpy;
|
|
5
8
|
|
|
6
9
|
observer.subscribe(event, (...args: unknown[]) => {
|
|
7
|
-
|
|
10
|
+
spy(...args);
|
|
8
11
|
});
|
|
9
12
|
|
|
10
|
-
return
|
|
11
|
-
calls,
|
|
12
|
-
count: () => calls.length,
|
|
13
|
-
last: () => calls.at(-1),
|
|
14
|
-
first: () => calls[0],
|
|
15
|
-
};
|
|
13
|
+
return spy;
|
|
16
14
|
};
|