@vnejs/test-utils 0.1.2 → 0.1.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.
- package/dist/harness.d.ts +3 -2
- package/dist/harness.js +5 -4
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/stub-event.d.ts +3 -1
- package/dist/stub-event.js +11 -1
- package/dist/stub-side-effect-events.d.ts +2 -0
- package/dist/stub-side-effect-events.js +25 -0
- package/package.json +1 -1
- package/src/harness.ts +6 -4
- package/src/index.ts +2 -1
- package/src/stub-event.ts +20 -2
- package/src/stub-side-effect-events.ts +29 -0
package/dist/harness.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ModuleGlobalStateRegistry, ModuleInject } from "@vnejs/module";
|
|
2
|
-
import { Observer } from "@vnejs/observer";
|
|
1
|
+
import type { ModuleGlobalStateRegistry, ModuleInject, ModuleShared } from "@vnejs/module";
|
|
2
|
+
import type { Observer } from "@vnejs/observer";
|
|
3
3
|
export type TestModuleInstance = {
|
|
4
4
|
name: string;
|
|
5
5
|
inject: (arg?: ModuleInject) => void;
|
|
@@ -13,4 +13,5 @@ export declare const createTestModule: <T extends TestModuleInstance>(ModuleClas
|
|
|
13
13
|
module: T;
|
|
14
14
|
observer: Observer;
|
|
15
15
|
state: ModuleGlobalStateRegistry;
|
|
16
|
+
shared: ModuleShared;
|
|
16
17
|
};
|
package/dist/harness.js
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createTestObserver } from "./stub-event.js";
|
|
2
2
|
export const createTestModule = (ModuleClass, { subscribe = true, ...injectArg } = {}) => {
|
|
3
|
-
const observer =
|
|
3
|
+
const observer = createTestObserver();
|
|
4
4
|
const state = (injectArg.state ?? {});
|
|
5
|
+
const shared = (injectArg.shared ?? {});
|
|
5
6
|
const module = new ModuleClass();
|
|
6
7
|
module.inject({
|
|
7
8
|
observer,
|
|
8
9
|
state,
|
|
9
|
-
shared
|
|
10
|
+
shared,
|
|
10
11
|
media: injectArg.media ?? {},
|
|
11
12
|
...injectArg,
|
|
12
13
|
});
|
|
13
14
|
if (subscribe)
|
|
14
15
|
module.subscribe();
|
|
15
|
-
return { module, observer, state };
|
|
16
|
+
return { module, observer, state, shared };
|
|
16
17
|
};
|
package/dist/index.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export { registerVnePlugin } from "./register-vne.js";
|
|
|
5
5
|
export { resetDom } from "./reset-dom.js";
|
|
6
6
|
export { expectCallSequence } from "./expect-call-sequence.js";
|
|
7
7
|
export { spyEvent, type EventSpy } from "./spy-event.js";
|
|
8
|
-
export { stubEvent, stubLogsEmit, stubVendorEvents } from "./stub-event.js";
|
|
8
|
+
export { createTestObserver, stubEvent, stubLogsEmit, stubSilentEvent, stubVendorEvents } from "./stub-event.js";
|
|
9
|
+
export { stubSideEffectEvents } from "./stub-side-effect-events.js";
|
|
9
10
|
export { mockFullscreen } from "./mocks/dom.js";
|
|
10
11
|
export { createLocalforageMock } from "./mocks/localforage.js";
|
package/dist/index.js
CHANGED
|
@@ -5,6 +5,7 @@ export { registerVnePlugin } from "./register-vne.js";
|
|
|
5
5
|
export { resetDom } from "./reset-dom.js";
|
|
6
6
|
export { expectCallSequence } from "./expect-call-sequence.js";
|
|
7
7
|
export { spyEvent } from "./spy-event.js";
|
|
8
|
-
export { stubEvent, stubLogsEmit, stubVendorEvents } from "./stub-event.js";
|
|
8
|
+
export { createTestObserver, stubEvent, stubLogsEmit, stubSilentEvent, stubVendorEvents } from "./stub-event.js";
|
|
9
|
+
export { stubSideEffectEvents } from "./stub-side-effect-events.js";
|
|
9
10
|
export { mockFullscreen } from "./mocks/dom.js";
|
|
10
11
|
export { createLocalforageMock } from "./mocks/localforage.js";
|
package/dist/stub-event.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Observer } from "@vnejs/observer";
|
|
2
|
+
export declare const stubSilentEvent: (observer: Observer, event: string, handler?: (...args: unknown[]) => unknown) => void;
|
|
3
|
+
export declare const createTestObserver: () => Observer;
|
|
2
4
|
export declare const stubEvent: (observer: Observer, event: string, handler?: (...args: unknown[]) => unknown) => void;
|
|
3
5
|
export declare const stubLogsEmit: (observer: Observer) => void;
|
|
4
6
|
export declare const stubVendorEvents: (observer: Observer) => void;
|
package/dist/stub-event.js
CHANGED
|
@@ -1,9 +1,19 @@
|
|
|
1
1
|
import { SUBSCRIBE_EVENTS as LOGS_EVENTS } from "@vnejs/contracts.core.logs";
|
|
2
2
|
import { SUBSCRIBE_EVENTS as VENDORS_EVENTS } from "@vnejs/contracts.core.vendors";
|
|
3
|
+
import { Observer } from "@vnejs/observer";
|
|
4
|
+
import { stubSideEffectEvents } from "./stub-side-effect-events.js";
|
|
5
|
+
export const stubSilentEvent = (observer, event, handler = () => undefined) => {
|
|
6
|
+
observer.subscribe(event, handler, { filterFromResult: true });
|
|
7
|
+
};
|
|
8
|
+
export const createTestObserver = () => {
|
|
9
|
+
const observer = new Observer();
|
|
10
|
+
stubSideEffectEvents(observer);
|
|
11
|
+
return observer;
|
|
12
|
+
};
|
|
3
13
|
export const stubEvent = (observer, event, handler = () => undefined) => {
|
|
4
14
|
observer.subscribe(event, handler);
|
|
5
15
|
};
|
|
6
|
-
export const stubLogsEmit = (observer) =>
|
|
16
|
+
export const stubLogsEmit = (observer) => stubSilentEvent(observer, LOGS_EVENTS.EMIT);
|
|
7
17
|
export const stubVendorEvents = (observer) => {
|
|
8
18
|
stubEvent(observer, VENDORS_EVENTS.UID, () => "test-uid");
|
|
9
19
|
stubEvent(observer, VENDORS_EVENTS.CLONE, (value) => structuredClone(value));
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { SUBSCRIBE_EVENTS as INTERACT_EVENTS } from "@vnejs/contracts.core.interact";
|
|
2
|
+
import { SUBSCRIBE_EVENTS as LOGS_EVENTS } from "@vnejs/contracts.core.logs";
|
|
3
|
+
import { SUBSCRIBE_EVENTS as SCENARIO_EVENTS } from "@vnejs/contracts.core.scenario";
|
|
4
|
+
import { SUBSCRIBE_EVENTS as SETTINGS_EVENTS } from "@vnejs/contracts.core.settings";
|
|
5
|
+
import { SUBSCRIBE_EVENTS as STACK_EVENTS } from "@vnejs/contracts.core.stack";
|
|
6
|
+
import { SUBSCRIBE_EVENTS as SYSTEM_EVENTS } from "@vnejs/contracts.core.system";
|
|
7
|
+
import { stubSilentEvent, stubVendorEvents } from "./stub-event.js";
|
|
8
|
+
const CORE_SIDE_EFFECT_EVENTS = [
|
|
9
|
+
LOGS_EVENTS.EMIT,
|
|
10
|
+
INTERACT_EVENTS.EMIT,
|
|
11
|
+
INTERACT_EVENTS.PUSH,
|
|
12
|
+
INTERACT_EVENTS.POP,
|
|
13
|
+
SETTINGS_EVENTS.INIT,
|
|
14
|
+
SCENARIO_EVENTS.NEXT,
|
|
15
|
+
SCENARIO_EVENTS.LINE_EXEC_REG,
|
|
16
|
+
SCENARIO_EVENTS.LINE_LOAD_REG,
|
|
17
|
+
SYSTEM_EVENTS.STARTED,
|
|
18
|
+
SYSTEM_EVENTS.CLOSE,
|
|
19
|
+
STACK_EVENTS.EMIT,
|
|
20
|
+
];
|
|
21
|
+
export const stubSideEffectEvents = (observer) => {
|
|
22
|
+
stubVendorEvents(observer);
|
|
23
|
+
for (const event of CORE_SIDE_EFFECT_EVENTS)
|
|
24
|
+
stubSilentEvent(observer, event);
|
|
25
|
+
};
|
package/package.json
CHANGED
package/src/harness.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ModuleGlobalStateRegistry, ModuleInject, ModuleShared } from "@vnejs/module";
|
|
2
|
-
import { Observer } from "@vnejs/observer";
|
|
2
|
+
import type { Observer } from "@vnejs/observer";
|
|
3
|
+
import { createTestObserver } from "./stub-event.js";
|
|
3
4
|
|
|
4
5
|
export type TestModuleInstance = {
|
|
5
6
|
name: string;
|
|
@@ -16,18 +17,19 @@ export const createTestModule = <T extends TestModuleInstance>(
|
|
|
16
17
|
ModuleClass: new () => T,
|
|
17
18
|
{ subscribe = true, ...injectArg }: CreateTestModuleOptions = {},
|
|
18
19
|
) => {
|
|
19
|
-
const observer =
|
|
20
|
+
const observer = createTestObserver();
|
|
20
21
|
const state = (injectArg.state ?? {}) as ModuleGlobalStateRegistry;
|
|
22
|
+
const shared = (injectArg.shared ?? {}) as ModuleShared;
|
|
21
23
|
const module = new ModuleClass();
|
|
22
24
|
|
|
23
25
|
module.inject({
|
|
24
26
|
observer,
|
|
25
27
|
state,
|
|
26
|
-
shared
|
|
28
|
+
shared,
|
|
27
29
|
media: injectArg.media ?? {},
|
|
28
30
|
...injectArg,
|
|
29
31
|
});
|
|
30
32
|
if (subscribe) module.subscribe();
|
|
31
33
|
|
|
32
|
-
return { module, observer, state };
|
|
34
|
+
return { module, observer, state, shared };
|
|
33
35
|
};
|
package/src/index.ts
CHANGED
|
@@ -5,6 +5,7 @@ export { registerVnePlugin } from "./register-vne.js";
|
|
|
5
5
|
export { resetDom } from "./reset-dom.js";
|
|
6
6
|
export { expectCallSequence } from "./expect-call-sequence.js";
|
|
7
7
|
export { spyEvent, type EventSpy } from "./spy-event.js";
|
|
8
|
-
export { stubEvent, stubLogsEmit, stubVendorEvents } from "./stub-event.js";
|
|
8
|
+
export { createTestObserver, stubEvent, stubLogsEmit, stubSilentEvent, stubVendorEvents } from "./stub-event.js";
|
|
9
|
+
export { stubSideEffectEvents } from "./stub-side-effect-events.js";
|
|
9
10
|
export { mockFullscreen } from "./mocks/dom.js";
|
|
10
11
|
export { createLocalforageMock } from "./mocks/localforage.js";
|
package/src/stub-event.ts
CHANGED
|
@@ -1,6 +1,24 @@
|
|
|
1
1
|
import { SUBSCRIBE_EVENTS as LOGS_EVENTS } from "@vnejs/contracts.core.logs";
|
|
2
2
|
import { SUBSCRIBE_EVENTS as VENDORS_EVENTS } from "@vnejs/contracts.core.vendors";
|
|
3
|
-
import
|
|
3
|
+
import { Observer } from "@vnejs/observer";
|
|
4
|
+
|
|
5
|
+
import { stubSideEffectEvents } from "./stub-side-effect-events.js";
|
|
6
|
+
|
|
7
|
+
export const stubSilentEvent = (
|
|
8
|
+
observer: Observer,
|
|
9
|
+
event: string,
|
|
10
|
+
handler: (...args: unknown[]) => unknown = () => undefined,
|
|
11
|
+
) => {
|
|
12
|
+
observer.subscribe(event, handler, { filterFromResult: true });
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export const createTestObserver = () => {
|
|
16
|
+
const observer = new Observer();
|
|
17
|
+
|
|
18
|
+
stubSideEffectEvents(observer);
|
|
19
|
+
|
|
20
|
+
return observer;
|
|
21
|
+
};
|
|
4
22
|
|
|
5
23
|
export const stubEvent = (
|
|
6
24
|
observer: Observer,
|
|
@@ -10,7 +28,7 @@ export const stubEvent = (
|
|
|
10
28
|
observer.subscribe(event, handler);
|
|
11
29
|
};
|
|
12
30
|
|
|
13
|
-
export const stubLogsEmit = (observer: Observer) =>
|
|
31
|
+
export const stubLogsEmit = (observer: Observer) => stubSilentEvent(observer, LOGS_EVENTS.EMIT);
|
|
14
32
|
|
|
15
33
|
export const stubVendorEvents = (observer: Observer) => {
|
|
16
34
|
stubEvent(observer, VENDORS_EVENTS.UID, () => "test-uid");
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { SUBSCRIBE_EVENTS as INTERACT_EVENTS } from "@vnejs/contracts.core.interact";
|
|
2
|
+
import { SUBSCRIBE_EVENTS as LOGS_EVENTS } from "@vnejs/contracts.core.logs";
|
|
3
|
+
import { SUBSCRIBE_EVENTS as SCENARIO_EVENTS } from "@vnejs/contracts.core.scenario";
|
|
4
|
+
import { SUBSCRIBE_EVENTS as SETTINGS_EVENTS } from "@vnejs/contracts.core.settings";
|
|
5
|
+
import { SUBSCRIBE_EVENTS as STACK_EVENTS } from "@vnejs/contracts.core.stack";
|
|
6
|
+
import { SUBSCRIBE_EVENTS as SYSTEM_EVENTS } from "@vnejs/contracts.core.system";
|
|
7
|
+
import type { Observer } from "@vnejs/observer";
|
|
8
|
+
|
|
9
|
+
import { stubSilentEvent, stubVendorEvents } from "./stub-event.js";
|
|
10
|
+
|
|
11
|
+
const CORE_SIDE_EFFECT_EVENTS = [
|
|
12
|
+
LOGS_EVENTS.EMIT,
|
|
13
|
+
INTERACT_EVENTS.EMIT,
|
|
14
|
+
INTERACT_EVENTS.PUSH,
|
|
15
|
+
INTERACT_EVENTS.POP,
|
|
16
|
+
SETTINGS_EVENTS.INIT,
|
|
17
|
+
SCENARIO_EVENTS.NEXT,
|
|
18
|
+
SCENARIO_EVENTS.LINE_EXEC_REG,
|
|
19
|
+
SCENARIO_EVENTS.LINE_LOAD_REG,
|
|
20
|
+
SYSTEM_EVENTS.STARTED,
|
|
21
|
+
SYSTEM_EVENTS.CLOSE,
|
|
22
|
+
STACK_EVENTS.EMIT,
|
|
23
|
+
] as const;
|
|
24
|
+
|
|
25
|
+
export const stubSideEffectEvents = (observer: Observer) => {
|
|
26
|
+
stubVendorEvents(observer);
|
|
27
|
+
|
|
28
|
+
for (const event of CORE_SIDE_EFFECT_EVENTS) stubSilentEvent(observer, event);
|
|
29
|
+
};
|