@praxisjs/decorators 1.7.0 → 2.0.1
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/CHANGELOG.md +41 -0
- package/dist/component/component.d.ts +1 -1
- package/dist/component/component.d.ts.map +1 -1
- package/dist/component/component.js +8 -15
- package/dist/component/component.js.map +1 -1
- package/dist/component/lazy.d.ts +1 -1
- package/dist/component/lazy.d.ts.map +1 -1
- package/dist/component/lazy.js +44 -36
- package/dist/component/lazy.js.map +1 -1
- package/dist/create-class-decorator.d.ts +27 -5
- package/dist/create-class-decorator.d.ts.map +1 -1
- package/dist/create-class-decorator.js +53 -18
- package/dist/create-class-decorator.js.map +1 -1
- package/dist/create-field-decorator.d.ts +42 -3
- package/dist/create-field-decorator.d.ts.map +1 -1
- package/dist/create-field-decorator.js +63 -27
- package/dist/create-field-decorator.js.map +1 -1
- package/dist/create-getter-decorator.d.ts +81 -16
- package/dist/create-getter-decorator.d.ts.map +1 -1
- package/dist/create-getter-decorator.js +127 -15
- package/dist/create-getter-decorator.js.map +1 -1
- package/dist/create-lifecycle-method-decorator.d.ts +21 -3
- package/dist/create-lifecycle-method-decorator.d.ts.map +1 -1
- package/dist/create-lifecycle-method-decorator.js +25 -18
- package/dist/create-lifecycle-method-decorator.js.map +1 -1
- package/dist/create-method-decorator.d.ts +43 -3
- package/dist/create-method-decorator.d.ts.map +1 -1
- package/dist/create-method-decorator.js +49 -8
- package/dist/create-method-decorator.js.map +1 -1
- package/dist/events/command.d.ts +2 -1
- package/dist/events/command.d.ts.map +1 -1
- package/dist/events/command.js +10 -8
- package/dist/events/command.js.map +1 -1
- package/dist/events/emit.d.ts +2 -2
- package/dist/events/emit.d.ts.map +1 -1
- package/dist/events/emit.js +18 -24
- package/dist/events/emit.js.map +1 -1
- package/dist/events/on-command.d.ts +2 -1
- package/dist/events/on-command.d.ts.map +1 -1
- package/dist/events/on-command.js +12 -14
- package/dist/events/on-command.js.map +1 -1
- package/dist/field.d.ts +51 -0
- package/dist/field.d.ts.map +1 -0
- package/dist/field.js +82 -0
- package/dist/field.js.map +1 -0
- package/dist/functions/bind.d.ts +2 -1
- package/dist/functions/bind.d.ts.map +1 -1
- package/dist/functions/bind.js +4 -4
- package/dist/functions/bind.js.map +1 -1
- package/dist/functions/debounce.d.ts +2 -2
- package/dist/functions/debounce.d.ts.map +1 -1
- package/dist/functions/debounce.js +25 -23
- package/dist/functions/debounce.js.map +1 -1
- package/dist/functions/log.d.ts +2 -1
- package/dist/functions/log.d.ts.map +1 -1
- package/dist/functions/log.js +38 -40
- package/dist/functions/log.js.map +1 -1
- package/dist/functions/memo.d.ts +2 -1
- package/dist/functions/memo.d.ts.map +1 -1
- package/dist/functions/memo.js +41 -40
- package/dist/functions/memo.js.map +1 -1
- package/dist/functions/once.d.ts +2 -1
- package/dist/functions/once.d.ts.map +1 -1
- package/dist/functions/once.js +10 -14
- package/dist/functions/once.js.map +1 -1
- package/dist/functions/retry.d.ts +2 -1
- package/dist/functions/retry.d.ts.map +1 -1
- package/dist/functions/retry.js +21 -23
- package/dist/functions/retry.js.map +1 -1
- package/dist/functions/throttle.d.ts +2 -1
- package/dist/functions/throttle.d.ts.map +1 -1
- package/dist/functions/throttle.js +12 -14
- package/dist/functions/throttle.js.map +1 -1
- package/dist/functions/until.d.ts +2 -1
- package/dist/functions/until.d.ts.map +1 -1
- package/dist/functions/until.js +13 -14
- package/dist/functions/until.js.map +1 -1
- package/dist/functions/watch.d.ts +1 -1
- package/dist/functions/watch.d.ts.map +1 -1
- package/dist/functions/watch.js +36 -34
- package/dist/functions/watch.js.map +1 -1
- package/dist/functions/when.d.ts +1 -1
- package/dist/functions/when.d.ts.map +1 -1
- package/dist/functions/when.js +19 -21
- package/dist/functions/when.js.map +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/lifecycle.d.ts +24 -0
- package/dist/lifecycle.d.ts.map +1 -0
- package/dist/lifecycle.js +55 -0
- package/dist/lifecycle.js.map +1 -0
- package/dist/properties/compose.d.ts +3 -2
- package/dist/properties/compose.d.ts.map +1 -1
- package/dist/properties/compose.js +33 -19
- package/dist/properties/compose.js.map +1 -1
- package/dist/properties/computed.d.ts +12 -10
- package/dist/properties/computed.d.ts.map +1 -1
- package/dist/properties/computed.js +26 -21
- package/dist/properties/computed.js.map +1 -1
- package/dist/properties/deep-state.d.ts +2 -1
- package/dist/properties/deep-state.d.ts.map +1 -1
- package/dist/properties/deep-state.js +66 -60
- package/dist/properties/deep-state.js.map +1 -1
- package/dist/properties/function-prop.d.ts +2 -1
- package/dist/properties/function-prop.d.ts.map +1 -1
- package/dist/properties/function-prop.js +20 -22
- package/dist/properties/function-prop.js.map +1 -1
- package/dist/properties/history.d.ts +2 -2
- package/dist/properties/history.d.ts.map +1 -1
- package/dist/properties/history.js +34 -33
- package/dist/properties/history.js.map +1 -1
- package/dist/properties/index.d.ts +1 -0
- package/dist/properties/index.d.ts.map +1 -1
- package/dist/properties/index.js +1 -0
- package/dist/properties/index.js.map +1 -1
- package/dist/properties/persisted.d.ts +2 -1
- package/dist/properties/persisted.d.ts.map +1 -1
- package/dist/properties/persisted.js +24 -18
- package/dist/properties/persisted.js.map +1 -1
- package/dist/properties/prop.d.ts +2 -1
- package/dist/properties/prop.d.ts.map +1 -1
- package/dist/properties/prop.js +26 -22
- package/dist/properties/prop.js.map +1 -1
- package/dist/properties/ref.d.ts +2 -1
- package/dist/properties/ref.d.ts.map +1 -1
- package/dist/properties/ref.js +11 -8
- package/dist/properties/ref.js.map +1 -1
- package/dist/properties/resource.d.ts.map +1 -1
- package/dist/properties/resource.js +21 -16
- package/dist/properties/resource.js.map +1 -1
- package/dist/properties/selector.d.ts +12 -0
- package/dist/properties/selector.d.ts.map +1 -0
- package/dist/properties/selector.js +25 -0
- package/dist/properties/selector.js.map +1 -0
- package/dist/properties/slot.d.ts +2 -1
- package/dist/properties/slot.d.ts.map +1 -1
- package/dist/properties/slot.js +22 -20
- package/dist/properties/slot.js.map +1 -1
- package/dist/properties/state.d.ts.map +1 -1
- package/dist/properties/state.js +27 -16
- package/dist/properties/state.js.map +1 -1
- package/dist/properties/synced.d.ts +2 -1
- package/dist/properties/synced.d.ts.map +1 -1
- package/dist/properties/synced.js +27 -19
- package/dist/properties/synced.js.map +1 -1
- package/dist/shared-method.d.ts +14 -0
- package/dist/shared-method.d.ts.map +1 -0
- package/dist/shared-method.js +87 -0
- package/dist/shared-method.js.map +1 -0
- package/package.json +14 -5
- package/src/component/component.ts +8 -27
- package/src/component/lazy.ts +51 -41
- package/src/create-class-decorator.ts +90 -31
- package/src/create-field-decorator.ts +120 -43
- package/src/create-getter-decorator.ts +263 -66
- package/src/create-lifecycle-method-decorator.ts +50 -28
- package/src/create-method-decorator.ts +119 -13
- package/src/events/command.ts +11 -9
- package/src/events/emit.ts +16 -22
- package/src/events/on-command.ts +17 -18
- package/src/field.ts +116 -0
- package/src/functions/bind.ts +4 -4
- package/src/functions/debounce.ts +25 -23
- package/src/functions/log.ts +44 -46
- package/src/functions/memo.ts +39 -37
- package/src/functions/once.ts +10 -13
- package/src/functions/retry.ts +19 -21
- package/src/functions/throttle.ts +12 -13
- package/src/functions/until.ts +14 -14
- package/src/functions/watch.ts +37 -36
- package/src/functions/when.ts +18 -20
- package/src/index.ts +12 -5
- package/src/lifecycle.ts +74 -0
- package/src/properties/compose.ts +33 -20
- package/src/properties/computed.ts +35 -45
- package/src/properties/deep-state.ts +66 -64
- package/src/properties/function-prop.ts +25 -27
- package/src/properties/history.ts +34 -35
- package/src/properties/index.ts +1 -0
- package/src/properties/persisted.ts +30 -20
- package/src/properties/prop.ts +30 -22
- package/src/properties/ref.ts +12 -10
- package/src/properties/resource.ts +22 -17
- package/src/properties/selector.ts +45 -0
- package/src/properties/slot.ts +28 -22
- package/src/properties/state.ts +32 -16
- package/src/properties/synced.ts +31 -19
- package/src/shared-method.ts +101 -0
- package/dist/__tests__/component.test.d.ts +0 -2
- package/dist/__tests__/component.test.d.ts.map +0 -1
- package/dist/__tests__/component.test.js +0 -147
- package/dist/__tests__/component.test.js.map +0 -1
- package/dist/__tests__/compose.test.d.ts +0 -2
- package/dist/__tests__/compose.test.d.ts.map +0 -1
- package/dist/__tests__/compose.test.js +0 -164
- package/dist/__tests__/compose.test.js.map +0 -1
- package/dist/__tests__/deep-state.test.d.ts +0 -2
- package/dist/__tests__/deep-state.test.d.ts.map +0 -1
- package/dist/__tests__/deep-state.test.js +0 -221
- package/dist/__tests__/deep-state.test.js.map +0 -1
- package/dist/__tests__/events.test.d.ts +0 -2
- package/dist/__tests__/events.test.d.ts.map +0 -1
- package/dist/__tests__/events.test.js +0 -295
- package/dist/__tests__/events.test.js.map +0 -1
- package/dist/__tests__/functions.test.d.ts +0 -2
- package/dist/__tests__/functions.test.d.ts.map +0 -1
- package/dist/__tests__/functions.test.js +0 -618
- package/dist/__tests__/functions.test.js.map +0 -1
- package/dist/__tests__/lazy.test.d.ts +0 -2
- package/dist/__tests__/lazy.test.d.ts.map +0 -1
- package/dist/__tests__/lazy.test.js +0 -227
- package/dist/__tests__/lazy.test.js.map +0 -1
- package/dist/__tests__/memo.test.d.ts +0 -2
- package/dist/__tests__/memo.test.d.ts.map +0 -1
- package/dist/__tests__/memo.test.js +0 -249
- package/dist/__tests__/memo.test.js.map +0 -1
- package/dist/__tests__/properties-browser.test.d.ts +0 -2
- package/dist/__tests__/properties-browser.test.d.ts.map +0 -1
- package/dist/__tests__/properties-browser.test.js +0 -227
- package/dist/__tests__/properties-browser.test.js.map +0 -1
- package/dist/__tests__/properties.test.d.ts +0 -2
- package/dist/__tests__/properties.test.d.ts.map +0 -1
- package/dist/__tests__/properties.test.js +0 -1253
- package/dist/__tests__/properties.test.js.map +0 -1
- package/dist/__tests__/ref.test.d.ts +0 -2
- package/dist/__tests__/ref.test.d.ts.map +0 -1
- package/dist/__tests__/ref.test.js +0 -106
- package/dist/__tests__/ref.test.js.map +0 -1
- package/dist/__tests__/resource.test.d.ts +0 -2
- package/dist/__tests__/resource.test.d.ts.map +0 -1
- package/dist/__tests__/resource.test.js +0 -217
- package/dist/__tests__/resource.test.js.map +0 -1
- package/dist/__tests__/slot.test.d.ts +0 -2
- package/dist/__tests__/slot.test.d.ts.map +0 -1
- package/dist/__tests__/slot.test.js +0 -147
- package/dist/__tests__/slot.test.js.map +0 -1
- package/dist/__tests__/synced.test.d.ts +0 -2
- package/dist/__tests__/synced.test.d.ts.map +0 -1
- package/dist/__tests__/synced.test.js +0 -161
- package/dist/__tests__/synced.test.js.map +0 -1
- package/dist/__tests__/until.test.d.ts +0 -2
- package/dist/__tests__/until.test.d.ts.map +0 -1
- package/dist/__tests__/until.test.js +0 -88
- package/dist/__tests__/until.test.js.map +0 -1
- package/dist/create-accessor-decorator.d.ts +0 -14
- package/dist/create-accessor-decorator.d.ts.map +0 -1
- package/dist/create-accessor-decorator.js +0 -27
- package/dist/create-accessor-decorator.js.map +0 -1
- package/src/__tests__/component.test.ts +0 -167
- package/src/__tests__/compose.test.ts +0 -202
- package/src/__tests__/deep-state.test.ts +0 -265
- package/src/__tests__/events.test.ts +0 -366
- package/src/__tests__/functions.test.ts +0 -803
- package/src/__tests__/lazy.test.ts +0 -296
- package/src/__tests__/memo.test.ts +0 -293
- package/src/__tests__/properties-browser.test.ts +0 -288
- package/src/__tests__/properties.test.ts +0 -1556
- package/src/__tests__/ref.test.ts +0 -131
- package/src/__tests__/resource.test.ts +0 -246
- package/src/__tests__/slot.test.ts +0 -179
- package/src/__tests__/synced.test.ts +0 -193
- package/src/__tests__/until.test.ts +0 -113
- package/src/create-accessor-decorator.ts +0 -45
- package/tsconfig.json +0 -9
|
@@ -1,618 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, vi } from "vitest";
|
|
2
|
-
import { StatefulComponent } from "@praxisjs/core";
|
|
3
|
-
import { Bind } from "../functions/bind";
|
|
4
|
-
import { Debounce } from "../functions/debounce";
|
|
5
|
-
import { Log } from "../functions/log";
|
|
6
|
-
import { Once } from "../functions/once";
|
|
7
|
-
import { Retry } from "../functions/retry";
|
|
8
|
-
import { Throttle } from "../functions/throttle";
|
|
9
|
-
// Helpers to simulate TC39 decorator context
|
|
10
|
-
function mockMethodContext(name) {
|
|
11
|
-
const initializers = [];
|
|
12
|
-
const ctx = {
|
|
13
|
-
name,
|
|
14
|
-
kind: "method",
|
|
15
|
-
addInitializer(fn) {
|
|
16
|
-
initializers.push(fn);
|
|
17
|
-
},
|
|
18
|
-
runInitializers(instance) {
|
|
19
|
-
initializers.forEach((fn) => { fn.call(instance); });
|
|
20
|
-
},
|
|
21
|
-
};
|
|
22
|
-
return ctx;
|
|
23
|
-
}
|
|
24
|
-
// ── Once ─────────────────────────────────────────────────────────────────────
|
|
25
|
-
describe("Once", () => {
|
|
26
|
-
it("only calls the original function once", () => {
|
|
27
|
-
const original = vi.fn(() => 42);
|
|
28
|
-
const ctx = mockMethodContext("doSomething");
|
|
29
|
-
Once()(original, ctx);
|
|
30
|
-
const obj = {};
|
|
31
|
-
ctx.runInitializers(obj);
|
|
32
|
-
const method = obj.doSomething;
|
|
33
|
-
expect(method()).toBe(42);
|
|
34
|
-
expect(method()).toBe(42);
|
|
35
|
-
expect(original).toHaveBeenCalledTimes(1);
|
|
36
|
-
});
|
|
37
|
-
it("returns the same result on subsequent calls", () => {
|
|
38
|
-
let counter = 0;
|
|
39
|
-
const original = () => ++counter;
|
|
40
|
-
const ctx = mockMethodContext("inc");
|
|
41
|
-
Once()(original, ctx);
|
|
42
|
-
const obj = {};
|
|
43
|
-
ctx.runInitializers(obj);
|
|
44
|
-
const method = obj.inc;
|
|
45
|
-
method();
|
|
46
|
-
method();
|
|
47
|
-
method();
|
|
48
|
-
expect(counter).toBe(1);
|
|
49
|
-
});
|
|
50
|
-
it("is per-instance — different instances call independently", () => {
|
|
51
|
-
const original = vi.fn(() => "result");
|
|
52
|
-
const ctx = mockMethodContext("fn");
|
|
53
|
-
Once()(original, ctx);
|
|
54
|
-
const a = {};
|
|
55
|
-
const b = {};
|
|
56
|
-
ctx.runInitializers(a);
|
|
57
|
-
ctx.runInitializers(b);
|
|
58
|
-
const methodA = a.fn;
|
|
59
|
-
const methodB = b.fn;
|
|
60
|
-
methodA();
|
|
61
|
-
methodB();
|
|
62
|
-
expect(original).toHaveBeenCalledTimes(2);
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
// ── Retry ─────────────────────────────────────────────────────────────────────
|
|
66
|
-
describe("Retry", () => {
|
|
67
|
-
it("returns result if the first attempt succeeds", async () => {
|
|
68
|
-
const original = vi.fn(async () => "ok");
|
|
69
|
-
const ctx = mockMethodContext("fetch");
|
|
70
|
-
Retry(3)(original, ctx);
|
|
71
|
-
const obj = {};
|
|
72
|
-
ctx.runInitializers(obj);
|
|
73
|
-
const method = obj.fetch;
|
|
74
|
-
const result = await method();
|
|
75
|
-
expect(result).toBe("ok");
|
|
76
|
-
expect(original).toHaveBeenCalledTimes(1);
|
|
77
|
-
});
|
|
78
|
-
it("retries and succeeds on a later attempt", async () => {
|
|
79
|
-
let attempt = 0;
|
|
80
|
-
const original = vi.fn(async () => {
|
|
81
|
-
attempt++;
|
|
82
|
-
if (attempt < 3)
|
|
83
|
-
throw new Error("fail");
|
|
84
|
-
return "success";
|
|
85
|
-
});
|
|
86
|
-
const ctx = mockMethodContext("call");
|
|
87
|
-
Retry(3)(original, ctx);
|
|
88
|
-
const obj = {};
|
|
89
|
-
ctx.runInitializers(obj);
|
|
90
|
-
const method = obj.call;
|
|
91
|
-
const result = await method();
|
|
92
|
-
expect(result).toBe("success");
|
|
93
|
-
expect(original).toHaveBeenCalledTimes(3);
|
|
94
|
-
});
|
|
95
|
-
it("throws after exhausting all attempts", async () => {
|
|
96
|
-
const original = vi.fn(async () => {
|
|
97
|
-
throw new Error("always fails");
|
|
98
|
-
});
|
|
99
|
-
const ctx = mockMethodContext("bad");
|
|
100
|
-
Retry(3)(original, ctx);
|
|
101
|
-
const obj = {};
|
|
102
|
-
ctx.runInitializers(obj);
|
|
103
|
-
const method = obj.bad;
|
|
104
|
-
await expect(method()).rejects.toThrow("always fails");
|
|
105
|
-
expect(original).toHaveBeenCalledTimes(3);
|
|
106
|
-
});
|
|
107
|
-
it("applies delay+backoff between retries", async () => {
|
|
108
|
-
vi.useFakeTimers();
|
|
109
|
-
const original = vi.fn(async () => { throw new Error("fail"); });
|
|
110
|
-
const ctx = mockMethodContext("delayed");
|
|
111
|
-
Retry(3, { delay: 100, backoff: 2 })(original, ctx);
|
|
112
|
-
const obj = {};
|
|
113
|
-
ctx.runInitializers(obj);
|
|
114
|
-
const method = obj.delayed;
|
|
115
|
-
const p = method();
|
|
116
|
-
const rejection = expect(p).rejects.toThrow("fail");
|
|
117
|
-
await vi.runAllTimersAsync();
|
|
118
|
-
await rejection;
|
|
119
|
-
expect(original).toHaveBeenCalledTimes(3);
|
|
120
|
-
vi.useRealTimers();
|
|
121
|
-
});
|
|
122
|
-
it("calls onRetry callback for each failed attempt (except last)", async () => {
|
|
123
|
-
const onRetry = vi.fn();
|
|
124
|
-
const original = vi.fn(async () => {
|
|
125
|
-
throw new Error("err");
|
|
126
|
-
});
|
|
127
|
-
const ctx = mockMethodContext("op");
|
|
128
|
-
Retry(3, { onRetry })(original, ctx);
|
|
129
|
-
const obj = {};
|
|
130
|
-
ctx.runInitializers(obj);
|
|
131
|
-
const method = obj.op;
|
|
132
|
-
await expect(method()).rejects.toThrow();
|
|
133
|
-
expect(onRetry).toHaveBeenCalledTimes(2); // attempts 1 and 2, not the last
|
|
134
|
-
});
|
|
135
|
-
it("maxAttempts=1 fails immediately without retrying", async () => {
|
|
136
|
-
const original = vi.fn(async () => { throw new Error("instant fail"); });
|
|
137
|
-
const ctx = mockMethodContext("once");
|
|
138
|
-
Retry(1)(original, ctx);
|
|
139
|
-
const obj = {};
|
|
140
|
-
ctx.runInitializers(obj);
|
|
141
|
-
const method = obj.once;
|
|
142
|
-
await expect(method()).rejects.toThrow("instant fail");
|
|
143
|
-
expect(original).toHaveBeenCalledTimes(1);
|
|
144
|
-
});
|
|
145
|
-
it("non-Error throw is wrapped in an Error", async () => {
|
|
146
|
-
const original = vi.fn(async () => {
|
|
147
|
-
// eslint-disable-next-line @typescript-eslint/only-throw-error
|
|
148
|
-
throw "string error";
|
|
149
|
-
});
|
|
150
|
-
const ctx = mockMethodContext("strThrow");
|
|
151
|
-
Retry(1)(original, ctx);
|
|
152
|
-
const obj = {};
|
|
153
|
-
ctx.runInitializers(obj);
|
|
154
|
-
const method = obj.strThrow;
|
|
155
|
-
await expect(method()).rejects.toThrow("string error");
|
|
156
|
-
});
|
|
157
|
-
it("maxAttempts=0 throws immediately without calling the function", async () => {
|
|
158
|
-
const original = vi.fn(async () => "ok");
|
|
159
|
-
const ctx = mockMethodContext("never");
|
|
160
|
-
Retry(0)(original, ctx);
|
|
161
|
-
const obj = {};
|
|
162
|
-
ctx.runInitializers(obj);
|
|
163
|
-
const method = obj.never;
|
|
164
|
-
await expect(method()).rejects.toThrow("Unknown error");
|
|
165
|
-
expect(original).not.toHaveBeenCalled();
|
|
166
|
-
});
|
|
167
|
-
it("onRetry receives the correct attempt number", async () => {
|
|
168
|
-
const attempts = [];
|
|
169
|
-
const original = vi.fn(async () => { throw new Error("fail"); });
|
|
170
|
-
const ctx = mockMethodContext("numbered");
|
|
171
|
-
Retry(3, {
|
|
172
|
-
onRetry: (_err, attempt) => { attempts.push(attempt); },
|
|
173
|
-
})(original, ctx);
|
|
174
|
-
const obj = {};
|
|
175
|
-
ctx.runInitializers(obj);
|
|
176
|
-
const method = obj.numbered;
|
|
177
|
-
await expect(method()).rejects.toThrow();
|
|
178
|
-
expect(attempts).toEqual([1, 2]); // attempt 1 failed → onRetry(1), attempt 2 failed → onRetry(2)
|
|
179
|
-
});
|
|
180
|
-
it("backoff multiplies delay correctly", async () => {
|
|
181
|
-
vi.useFakeTimers();
|
|
182
|
-
const callTimes = [];
|
|
183
|
-
const original = vi.fn(async () => {
|
|
184
|
-
callTimes.push(Date.now());
|
|
185
|
-
throw new Error("fail");
|
|
186
|
-
});
|
|
187
|
-
const ctx = mockMethodContext("backoffTest");
|
|
188
|
-
Retry(3, { delay: 100, backoff: 2 })(original, ctx);
|
|
189
|
-
const obj = {};
|
|
190
|
-
ctx.runInitializers(obj);
|
|
191
|
-
const method = obj.backoffTest;
|
|
192
|
-
const p = method();
|
|
193
|
-
const rejection = expect(p).rejects.toThrow("fail");
|
|
194
|
-
await vi.runAllTimersAsync();
|
|
195
|
-
await rejection;
|
|
196
|
-
expect(callTimes.length).toBe(3);
|
|
197
|
-
// Attempt 2 runs 100ms after attempt 1
|
|
198
|
-
expect(callTimes[1] - callTimes[0]).toBeGreaterThanOrEqual(100);
|
|
199
|
-
// Attempt 3 runs 200ms after attempt 2 (backoff × 2)
|
|
200
|
-
expect(callTimes[2] - callTimes[1]).toBeGreaterThanOrEqual(200);
|
|
201
|
-
vi.useRealTimers();
|
|
202
|
-
});
|
|
203
|
-
});
|
|
204
|
-
// ── Log ──────────────────────────────────────────────────────────────────────
|
|
205
|
-
describe("Log", () => {
|
|
206
|
-
it("calls the original function and returns its value", () => {
|
|
207
|
-
const spy = vi.spyOn(console, "log").mockImplementation(() => { });
|
|
208
|
-
const original = vi.fn(() => 99);
|
|
209
|
-
const ctx = mockMethodContext("myMethod");
|
|
210
|
-
Log({ args: false, result: false })(original, ctx);
|
|
211
|
-
class Dummy {
|
|
212
|
-
}
|
|
213
|
-
const dummy = new Dummy();
|
|
214
|
-
ctx.runInitializers(dummy);
|
|
215
|
-
const method = dummy.myMethod;
|
|
216
|
-
const result = method();
|
|
217
|
-
expect(result).toBe(99);
|
|
218
|
-
spy.mockRestore();
|
|
219
|
-
});
|
|
220
|
-
it("logs args when args=true", () => {
|
|
221
|
-
const spy = vi.spyOn(console, "log").mockImplementation(() => { });
|
|
222
|
-
const original = vi.fn((x) => x);
|
|
223
|
-
const ctx = mockMethodContext("greet");
|
|
224
|
-
Log({ args: true, result: false })(original, ctx);
|
|
225
|
-
class Foo {
|
|
226
|
-
}
|
|
227
|
-
const foo = new Foo();
|
|
228
|
-
ctx.runInitializers(foo);
|
|
229
|
-
const method = foo.greet;
|
|
230
|
-
method("hello");
|
|
231
|
-
expect(spy).toHaveBeenCalledWith(expect.stringContaining("args:"), ["hello"]);
|
|
232
|
-
spy.mockRestore();
|
|
233
|
-
});
|
|
234
|
-
it("does not log in production when devOnly=true", () => {
|
|
235
|
-
const spy = vi.spyOn(console, "log").mockImplementation(() => { });
|
|
236
|
-
const original = vi.fn(() => "value");
|
|
237
|
-
const ctx = mockMethodContext("prod");
|
|
238
|
-
Log({ devOnly: true })(original, ctx);
|
|
239
|
-
const prevEnv = process.env.NODE_ENV;
|
|
240
|
-
process.env.NODE_ENV = "production";
|
|
241
|
-
class App {
|
|
242
|
-
}
|
|
243
|
-
const app = new App();
|
|
244
|
-
ctx.runInitializers(app);
|
|
245
|
-
const method = app.prod;
|
|
246
|
-
method();
|
|
247
|
-
expect(spy).not.toHaveBeenCalled();
|
|
248
|
-
process.env.NODE_ENV = prevEnv;
|
|
249
|
-
spy.mockRestore();
|
|
250
|
-
});
|
|
251
|
-
it("handles async functions — logs resolved value", async () => {
|
|
252
|
-
const spy = vi.spyOn(console, "log").mockImplementation(() => { });
|
|
253
|
-
const original = vi.fn(async () => "async-result");
|
|
254
|
-
const ctx = mockMethodContext("load");
|
|
255
|
-
Log({ args: false, result: true })(original, ctx);
|
|
256
|
-
class Svc {
|
|
257
|
-
}
|
|
258
|
-
const svc = new Svc();
|
|
259
|
-
ctx.runInitializers(svc);
|
|
260
|
-
const method = svc.load;
|
|
261
|
-
await method();
|
|
262
|
-
expect(spy).toHaveBeenCalledWith(expect.stringContaining("resolved:"), "async-result", expect.any(String));
|
|
263
|
-
spy.mockRestore();
|
|
264
|
-
});
|
|
265
|
-
it("handles async rejection — logs rejected value and re-throws", async () => {
|
|
266
|
-
const spy = vi.spyOn(console, "log").mockImplementation(() => { });
|
|
267
|
-
const original = vi.fn(async () => { throw new Error("async-error"); });
|
|
268
|
-
const ctx = mockMethodContext("failing");
|
|
269
|
-
Log({ args: false, result: true })(original, ctx);
|
|
270
|
-
class Svc {
|
|
271
|
-
}
|
|
272
|
-
const svc = new Svc();
|
|
273
|
-
ctx.runInitializers(svc);
|
|
274
|
-
const method = svc.failing;
|
|
275
|
-
await expect(method()).rejects.toThrow("async-error");
|
|
276
|
-
expect(spy).toHaveBeenCalledWith(expect.stringContaining("rejected:"), expect.any(Error));
|
|
277
|
-
spy.mockRestore();
|
|
278
|
-
});
|
|
279
|
-
});
|
|
280
|
-
// ── Log (additional branches) ─────────────────────────────────────────────────
|
|
281
|
-
describe("Log — time option", () => {
|
|
282
|
-
it("includes elapsed time in sync result log when time=true", () => {
|
|
283
|
-
const spy = vi.spyOn(console, "log").mockImplementation(() => { });
|
|
284
|
-
const original = vi.fn(() => "value");
|
|
285
|
-
const ctx = mockMethodContext("timed");
|
|
286
|
-
Log({ args: false, result: true, time: true })(original, ctx);
|
|
287
|
-
class Svc {
|
|
288
|
-
}
|
|
289
|
-
const svc = new Svc();
|
|
290
|
-
ctx.runInitializers(svc);
|
|
291
|
-
const method = svc.timed;
|
|
292
|
-
method();
|
|
293
|
-
// Third argument should be a string containing "ms"
|
|
294
|
-
expect(spy).toHaveBeenCalledWith(expect.stringContaining("returned:"), "value", expect.stringContaining("ms"));
|
|
295
|
-
spy.mockRestore();
|
|
296
|
-
});
|
|
297
|
-
it("includes elapsed time in async result log when time=true", async () => {
|
|
298
|
-
const spy = vi.spyOn(console, "log").mockImplementation(() => { });
|
|
299
|
-
const original = vi.fn(async () => "async-val");
|
|
300
|
-
const ctx = mockMethodContext("asyncTimed");
|
|
301
|
-
Log({ args: false, result: true, time: true })(original, ctx);
|
|
302
|
-
class Svc {
|
|
303
|
-
}
|
|
304
|
-
const svc = new Svc();
|
|
305
|
-
ctx.runInitializers(svc);
|
|
306
|
-
const method = svc.asyncTimed;
|
|
307
|
-
await method();
|
|
308
|
-
expect(spy).toHaveBeenCalledWith(expect.stringContaining("resolved:"), "async-val", expect.stringContaining("ms"));
|
|
309
|
-
spy.mockRestore();
|
|
310
|
-
});
|
|
311
|
-
it("skips result log when result=false", () => {
|
|
312
|
-
const spy = vi.spyOn(console, "log").mockImplementation(() => { });
|
|
313
|
-
const original = vi.fn(() => 42);
|
|
314
|
-
const ctx = mockMethodContext("noResult");
|
|
315
|
-
Log({ args: false, result: false })(original, ctx);
|
|
316
|
-
class Svc {
|
|
317
|
-
}
|
|
318
|
-
const svc = new Svc();
|
|
319
|
-
ctx.runInitializers(svc);
|
|
320
|
-
const method = svc.noResult;
|
|
321
|
-
method();
|
|
322
|
-
// Should not log a "returned:" line
|
|
323
|
-
const calls = spy.mock.calls.flat().join(" ");
|
|
324
|
-
expect(calls).not.toContain("returned:");
|
|
325
|
-
spy.mockRestore();
|
|
326
|
-
});
|
|
327
|
-
it("skips resolved log when result=false for async functions", async () => {
|
|
328
|
-
const spy = vi.spyOn(console, "log").mockImplementation(() => { });
|
|
329
|
-
const original = vi.fn(async () => "async-value");
|
|
330
|
-
const ctx = mockMethodContext("asyncNoResult");
|
|
331
|
-
Log({ args: false, result: false })(original, ctx);
|
|
332
|
-
class Svc {
|
|
333
|
-
}
|
|
334
|
-
const svc = new Svc();
|
|
335
|
-
ctx.runInitializers(svc);
|
|
336
|
-
const method = svc.asyncNoResult;
|
|
337
|
-
const result = await method();
|
|
338
|
-
expect(result).toBe("async-value");
|
|
339
|
-
const calls = spy.mock.calls.flat().join(" ");
|
|
340
|
-
expect(calls).not.toContain("resolved:");
|
|
341
|
-
spy.mockRestore();
|
|
342
|
-
});
|
|
343
|
-
it("uses 'Unknown' as class name when constructor.name is undefined", () => {
|
|
344
|
-
const spy = vi.spyOn(console, "log").mockImplementation(() => { });
|
|
345
|
-
const original = vi.fn(() => "val");
|
|
346
|
-
const ctx = mockMethodContext("m");
|
|
347
|
-
Log({ args: false, result: true })(original, ctx);
|
|
348
|
-
// Construct an object whose constructor.name is undefined to trigger ?? "Unknown"
|
|
349
|
-
const fakeInstance = Object.assign(Object.create(null), {
|
|
350
|
-
constructor: { name: undefined },
|
|
351
|
-
});
|
|
352
|
-
ctx.runInitializers(fakeInstance);
|
|
353
|
-
const method = fakeInstance.m;
|
|
354
|
-
method();
|
|
355
|
-
expect(spy).toHaveBeenCalledWith(expect.stringContaining("Unknown"), expect.anything(), expect.anything());
|
|
356
|
-
spy.mockRestore();
|
|
357
|
-
});
|
|
358
|
-
});
|
|
359
|
-
// ── Bind ─────────────────────────────────────────────────────────────────────
|
|
360
|
-
describe("Bind", () => {
|
|
361
|
-
it("binds method to the instance so 'this' is preserved", () => {
|
|
362
|
-
class Counter {
|
|
363
|
-
value = 10;
|
|
364
|
-
getValue() {
|
|
365
|
-
return this.value;
|
|
366
|
-
}
|
|
367
|
-
}
|
|
368
|
-
const ctx = mockMethodContext("getValue");
|
|
369
|
-
Bind()(Counter.prototype.getValue, ctx);
|
|
370
|
-
const c = new Counter();
|
|
371
|
-
ctx.runInitializers(c);
|
|
372
|
-
const detached = c.getValue;
|
|
373
|
-
expect(detached()).toBe(10);
|
|
374
|
-
});
|
|
375
|
-
});
|
|
376
|
-
// ── Debounce ─────────────────────────────────────────────────────────────────
|
|
377
|
-
describe("Debounce", () => {
|
|
378
|
-
it("defers execution until after the wait period", () => {
|
|
379
|
-
vi.useFakeTimers();
|
|
380
|
-
const fn = vi.fn();
|
|
381
|
-
const ctx = mockMethodContext("search");
|
|
382
|
-
Debounce(100)(fn, ctx);
|
|
383
|
-
const obj = {};
|
|
384
|
-
ctx.runInitializers(obj);
|
|
385
|
-
const method = obj.search;
|
|
386
|
-
method("a");
|
|
387
|
-
method("b");
|
|
388
|
-
method("c");
|
|
389
|
-
expect(fn).not.toHaveBeenCalled();
|
|
390
|
-
vi.advanceTimersByTime(100);
|
|
391
|
-
expect(fn).toHaveBeenCalledTimes(1);
|
|
392
|
-
expect(fn).toHaveBeenCalledWith("c");
|
|
393
|
-
vi.useRealTimers();
|
|
394
|
-
});
|
|
395
|
-
it("resets the timer on each call", () => {
|
|
396
|
-
vi.useFakeTimers();
|
|
397
|
-
const fn = vi.fn();
|
|
398
|
-
const ctx = mockMethodContext("onInput");
|
|
399
|
-
Debounce(50)(fn, ctx);
|
|
400
|
-
const obj = {};
|
|
401
|
-
ctx.runInitializers(obj);
|
|
402
|
-
const method = obj.onInput;
|
|
403
|
-
method("x");
|
|
404
|
-
vi.advanceTimersByTime(30);
|
|
405
|
-
method("y");
|
|
406
|
-
vi.advanceTimersByTime(30); // 30ms since last call — not enough
|
|
407
|
-
expect(fn).not.toHaveBeenCalled();
|
|
408
|
-
vi.advanceTimersByTime(20); // now 50ms since "y"
|
|
409
|
-
expect(fn).toHaveBeenCalledOnce();
|
|
410
|
-
vi.useRealTimers();
|
|
411
|
-
});
|
|
412
|
-
it("multiple instances have independent timers", () => {
|
|
413
|
-
vi.useFakeTimers();
|
|
414
|
-
const fn = vi.fn();
|
|
415
|
-
const ctx = mockMethodContext("act");
|
|
416
|
-
Debounce(100)(fn, ctx);
|
|
417
|
-
const obj1 = {};
|
|
418
|
-
const obj2 = {};
|
|
419
|
-
ctx.runInitializers(obj1);
|
|
420
|
-
ctx.runInitializers(obj2);
|
|
421
|
-
const m1 = obj1.act;
|
|
422
|
-
const m2 = obj2.act;
|
|
423
|
-
m1("from-1");
|
|
424
|
-
m2("from-2");
|
|
425
|
-
vi.advanceTimersByTime(100);
|
|
426
|
-
// Both timers fire independently
|
|
427
|
-
expect(fn).toHaveBeenCalledTimes(2);
|
|
428
|
-
expect(fn).toHaveBeenCalledWith("from-1");
|
|
429
|
-
expect(fn).toHaveBeenCalledWith("from-2");
|
|
430
|
-
vi.useRealTimers();
|
|
431
|
-
});
|
|
432
|
-
it("delay=0 fires after the next macrotask", () => {
|
|
433
|
-
vi.useFakeTimers();
|
|
434
|
-
const fn = vi.fn();
|
|
435
|
-
const ctx = mockMethodContext("instant");
|
|
436
|
-
Debounce(0)(fn, ctx);
|
|
437
|
-
const obj = {};
|
|
438
|
-
ctx.runInitializers(obj);
|
|
439
|
-
const method = obj.instant;
|
|
440
|
-
method("a");
|
|
441
|
-
expect(fn).not.toHaveBeenCalled();
|
|
442
|
-
vi.advanceTimersByTime(0);
|
|
443
|
-
expect(fn).toHaveBeenCalledTimes(1);
|
|
444
|
-
expect(fn).toHaveBeenCalledWith("a");
|
|
445
|
-
vi.useRealTimers();
|
|
446
|
-
});
|
|
447
|
-
it("timer is cleared if onUnmount fires before debounce completes", () => {
|
|
448
|
-
vi.useFakeTimers();
|
|
449
|
-
const fn = vi.fn();
|
|
450
|
-
const ctx = mockMethodContext("debounced");
|
|
451
|
-
class TestComp extends StatefulComponent {
|
|
452
|
-
render() { return null; }
|
|
453
|
-
}
|
|
454
|
-
Debounce(100)(fn, ctx);
|
|
455
|
-
const instance = new TestComp();
|
|
456
|
-
ctx.runInitializers(instance);
|
|
457
|
-
const method = instance.debounced;
|
|
458
|
-
method("hello");
|
|
459
|
-
// Unmount before the 100ms debounce fires
|
|
460
|
-
instance.onUnmount?.();
|
|
461
|
-
vi.advanceTimersByTime(200);
|
|
462
|
-
expect(fn).not.toHaveBeenCalled();
|
|
463
|
-
vi.useRealTimers();
|
|
464
|
-
});
|
|
465
|
-
it("onUnmount with no pending timer is a no-op (if timer !== undefined false branch)", () => {
|
|
466
|
-
vi.useFakeTimers();
|
|
467
|
-
const fn = vi.fn();
|
|
468
|
-
const ctx = mockMethodContext("noTimerOp");
|
|
469
|
-
Debounce(50)(fn, ctx);
|
|
470
|
-
class BareComp extends StatefulComponent {
|
|
471
|
-
render() { return null; }
|
|
472
|
-
}
|
|
473
|
-
const instance = new BareComp();
|
|
474
|
-
ctx.runInitializers(instance);
|
|
475
|
-
// Never call the decorated method, so timer is undefined
|
|
476
|
-
// onUnmount with timer === undefined → false branch of if (timer !== undefined)
|
|
477
|
-
expect(() => instance.onUnmount?.()).not.toThrow();
|
|
478
|
-
vi.useRealTimers();
|
|
479
|
-
});
|
|
480
|
-
it("calls the pre-existing onUnmount when the component already had one", () => {
|
|
481
|
-
vi.useFakeTimers();
|
|
482
|
-
const existingUnmount = vi.fn();
|
|
483
|
-
const fn = vi.fn();
|
|
484
|
-
const ctx = mockMethodContext("debouncedWithPrior");
|
|
485
|
-
class CompWithUnmount extends StatefulComponent {
|
|
486
|
-
onUnmount() { existingUnmount(); }
|
|
487
|
-
render() { return null; }
|
|
488
|
-
}
|
|
489
|
-
Debounce(100)(fn, ctx);
|
|
490
|
-
const instance = new CompWithUnmount();
|
|
491
|
-
ctx.runInitializers(instance);
|
|
492
|
-
const method = instance.debouncedWithPrior;
|
|
493
|
-
method("x");
|
|
494
|
-
instance.onUnmount?.();
|
|
495
|
-
expect(existingUnmount).toHaveBeenCalledOnce();
|
|
496
|
-
vi.advanceTimersByTime(200);
|
|
497
|
-
expect(fn).not.toHaveBeenCalled(); // timer was cancelled
|
|
498
|
-
vi.useRealTimers();
|
|
499
|
-
});
|
|
500
|
-
it("original method is NOT called after unmount if timer was pending", () => {
|
|
501
|
-
vi.useFakeTimers();
|
|
502
|
-
const fn = vi.fn();
|
|
503
|
-
const ctx = mockMethodContext("debouncedOp");
|
|
504
|
-
class TestComp2 extends StatefulComponent {
|
|
505
|
-
render() { return null; }
|
|
506
|
-
}
|
|
507
|
-
Debounce(50)(fn, ctx);
|
|
508
|
-
const instance = new TestComp2();
|
|
509
|
-
ctx.runInitializers(instance);
|
|
510
|
-
const method = instance.debouncedOp;
|
|
511
|
-
method("arg1");
|
|
512
|
-
method("arg2");
|
|
513
|
-
instance.onUnmount?.();
|
|
514
|
-
vi.runAllTimers();
|
|
515
|
-
expect(fn).not.toHaveBeenCalled();
|
|
516
|
-
vi.useRealTimers();
|
|
517
|
-
});
|
|
518
|
-
});
|
|
519
|
-
// ── Throttle ─────────────────────────────────────────────────────────────────
|
|
520
|
-
describe("Throttle", () => {
|
|
521
|
-
it("executes the first call immediately", () => {
|
|
522
|
-
vi.useFakeTimers();
|
|
523
|
-
const fn = vi.fn(() => "first");
|
|
524
|
-
const ctx = mockMethodContext("save");
|
|
525
|
-
Throttle(100)(fn, ctx);
|
|
526
|
-
const obj = {};
|
|
527
|
-
ctx.runInitializers(obj);
|
|
528
|
-
const method = obj.save;
|
|
529
|
-
method();
|
|
530
|
-
expect(fn).toHaveBeenCalledTimes(1);
|
|
531
|
-
vi.useRealTimers();
|
|
532
|
-
});
|
|
533
|
-
it("ignores calls within the throttle window", () => {
|
|
534
|
-
vi.useFakeTimers();
|
|
535
|
-
const fn = vi.fn();
|
|
536
|
-
const ctx = mockMethodContext("scroll");
|
|
537
|
-
Throttle(100)(fn, ctx);
|
|
538
|
-
const obj = {};
|
|
539
|
-
ctx.runInitializers(obj);
|
|
540
|
-
const method = obj.scroll;
|
|
541
|
-
method();
|
|
542
|
-
method();
|
|
543
|
-
method();
|
|
544
|
-
expect(fn).toHaveBeenCalledTimes(1);
|
|
545
|
-
vi.useRealTimers();
|
|
546
|
-
});
|
|
547
|
-
it("allows a new call after the window expires", () => {
|
|
548
|
-
vi.useFakeTimers();
|
|
549
|
-
const fn = vi.fn();
|
|
550
|
-
const ctx = mockMethodContext("resize");
|
|
551
|
-
Throttle(100)(fn, ctx);
|
|
552
|
-
const obj = {};
|
|
553
|
-
ctx.runInitializers(obj);
|
|
554
|
-
const method = obj.resize;
|
|
555
|
-
method();
|
|
556
|
-
vi.advanceTimersByTime(100);
|
|
557
|
-
method();
|
|
558
|
-
expect(fn).toHaveBeenCalledTimes(2);
|
|
559
|
-
vi.useRealTimers();
|
|
560
|
-
});
|
|
561
|
-
it("passes the first call's arguments to the underlying function", () => {
|
|
562
|
-
vi.useFakeTimers();
|
|
563
|
-
const fn = vi.fn();
|
|
564
|
-
const ctx = mockMethodContext("click");
|
|
565
|
-
Throttle(100)(fn, ctx);
|
|
566
|
-
const obj = {};
|
|
567
|
-
ctx.runInitializers(obj);
|
|
568
|
-
const method = obj.click;
|
|
569
|
-
method("first-arg");
|
|
570
|
-
method("second-arg");
|
|
571
|
-
expect(fn).toHaveBeenCalledWith("first-arg");
|
|
572
|
-
vi.useRealTimers();
|
|
573
|
-
});
|
|
574
|
-
it("multiple instances throttle independently", () => {
|
|
575
|
-
vi.useFakeTimers();
|
|
576
|
-
const fn = vi.fn();
|
|
577
|
-
const ctx = mockMethodContext("ping");
|
|
578
|
-
Throttle(100)(fn, ctx);
|
|
579
|
-
const obj1 = {};
|
|
580
|
-
const obj2 = {};
|
|
581
|
-
ctx.runInitializers(obj1);
|
|
582
|
-
ctx.runInitializers(obj2);
|
|
583
|
-
const m1 = obj1.ping;
|
|
584
|
-
const m2 = obj2.ping;
|
|
585
|
-
m1("a");
|
|
586
|
-
m2("b");
|
|
587
|
-
// Both first calls go through
|
|
588
|
-
expect(fn).toHaveBeenCalledTimes(2);
|
|
589
|
-
vi.useRealTimers();
|
|
590
|
-
});
|
|
591
|
-
it("negative delay is treated as 0 — first call always executes", () => {
|
|
592
|
-
vi.useFakeTimers();
|
|
593
|
-
const fn = vi.fn();
|
|
594
|
-
const ctx = mockMethodContext("negDelay");
|
|
595
|
-
Throttle(-100)(fn, ctx);
|
|
596
|
-
const obj = {};
|
|
597
|
-
ctx.runInitializers(obj);
|
|
598
|
-
const method = obj.negDelay;
|
|
599
|
-
method();
|
|
600
|
-
expect(fn).toHaveBeenCalledTimes(1);
|
|
601
|
-
vi.useRealTimers();
|
|
602
|
-
});
|
|
603
|
-
it("call at exactly the ms boundary executes again", () => {
|
|
604
|
-
vi.useFakeTimers();
|
|
605
|
-
const fn = vi.fn();
|
|
606
|
-
const ctx = mockMethodContext("boundary");
|
|
607
|
-
Throttle(100)(fn, ctx);
|
|
608
|
-
const obj = {};
|
|
609
|
-
ctx.runInitializers(obj);
|
|
610
|
-
const method = obj.boundary;
|
|
611
|
-
method(); // first call at t=0
|
|
612
|
-
vi.advanceTimersByTime(100); // advance to exactly 100ms
|
|
613
|
-
method(); // second call at t=100 — should pass (now - last === ms, not less than ms)
|
|
614
|
-
expect(fn).toHaveBeenCalledTimes(2);
|
|
615
|
-
vi.useRealTimers();
|
|
616
|
-
});
|
|
617
|
-
});
|
|
618
|
-
//# sourceMappingURL=functions.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"functions.test.js","sourceRoot":"","sources":["../../src/__tests__/functions.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lazy.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/lazy.test.ts"],"names":[],"mappings":""}
|