@praxisjs/decorators 0.5.0 → 0.6.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/CHANGELOG.md +14 -0
- package/dist/__tests__/functions.test.js +63 -0
- package/dist/__tests__/functions.test.js.map +1 -1
- package/dist/__tests__/memo.test.js +53 -0
- package/dist/__tests__/memo.test.js.map +1 -1
- package/dist/__tests__/properties.test.js +193 -0
- package/dist/__tests__/properties.test.js.map +1 -1
- package/dist/__tests__/resource.test.js +24 -0
- package/dist/__tests__/resource.test.js.map +1 -1
- package/dist/__tests__/until.test.d.ts +2 -0
- package/dist/__tests__/until.test.d.ts.map +1 -0
- package/dist/__tests__/until.test.js +88 -0
- package/dist/__tests__/until.test.js.map +1 -0
- package/dist/__tests__/virtual.test.js +108 -0
- package/dist/__tests__/virtual.test.js.map +1 -1
- package/dist/component/virtual.d.ts.map +1 -1
- package/dist/component/virtual.js +3 -0
- package/dist/component/virtual.js.map +1 -1
- package/dist/functions/debounce.d.ts +2 -1
- package/dist/functions/debounce.d.ts.map +1 -1
- package/dist/functions/debounce.js +10 -1
- package/dist/functions/debounce.js.map +1 -1
- package/dist/functions/index.d.ts +1 -0
- package/dist/functions/index.d.ts.map +1 -1
- package/dist/functions/index.js +1 -0
- package/dist/functions/index.js.map +1 -1
- package/dist/functions/memo.d.ts.map +1 -1
- package/dist/functions/memo.js +16 -2
- package/dist/functions/memo.js.map +1 -1
- package/dist/functions/throttle.d.ts.map +1 -1
- package/dist/functions/throttle.js +2 -1
- package/dist/functions/throttle.js.map +1 -1
- package/dist/functions/until.d.ts +2 -0
- package/dist/functions/until.d.ts.map +1 -0
- package/dist/functions/until.js +17 -0
- package/dist/functions/until.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/__tests__/functions.test.ts +80 -0
- package/src/__tests__/memo.test.ts +67 -0
- package/src/__tests__/properties.test.ts +233 -0
- package/src/__tests__/resource.test.ts +28 -0
- package/src/__tests__/until.test.ts +113 -0
- package/src/__tests__/virtual.test.ts +109 -0
- package/src/component/virtual.tsx +5 -0
- package/src/functions/debounce.ts +14 -1
- package/src/functions/index.ts +1 -0
- package/src/functions/memo.ts +17 -1
- package/src/functions/throttle.ts +2 -1
- package/src/functions/until.ts +19 -0
- package/src/index.ts +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @praxisjs/decorators
|
|
2
2
|
|
|
3
|
+
## 0.6.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 029ef04: Add `@Until(propName)` decorator. Replaces the decorated method with one that returns a `Promise` resolving to the first truthy value of the named signal or computed property.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- 029ef04: `@Memo` falls back to object identity for non-JSON-serializable arguments (circular references, class instances). `@Debounce` cancels its pending timer on component unmount. `@Throttle` clamps negative `ms` values to `0`. `@Virtual` throws when `itemHeight` is `0` or negative.
|
|
12
|
+
- Updated dependencies [029ef04]
|
|
13
|
+
- Updated dependencies [029ef04]
|
|
14
|
+
- Updated dependencies [029ef04]
|
|
15
|
+
- @praxisjs/core@1.1.0
|
|
16
|
+
|
|
3
17
|
## 0.5.0
|
|
4
18
|
|
|
5
19
|
### Minor Changes
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { describe, it, expect, vi } from "vitest";
|
|
2
|
+
import { StatefulComponent } from "@praxisjs/core";
|
|
2
3
|
import { Bind } from "../functions/bind";
|
|
3
4
|
import { Debounce } from "../functions/debounce";
|
|
4
5
|
import { Log } from "../functions/log";
|
|
@@ -445,6 +446,42 @@ describe("Debounce", () => {
|
|
|
445
446
|
expect(fn).toHaveBeenCalledWith("a");
|
|
446
447
|
vi.useRealTimers();
|
|
447
448
|
});
|
|
449
|
+
it("timer is cleared if onUnmount fires before debounce completes", () => {
|
|
450
|
+
vi.useFakeTimers();
|
|
451
|
+
const fn = vi.fn();
|
|
452
|
+
const ctx = mockMethodContext("debounced");
|
|
453
|
+
class TestComp extends StatefulComponent {
|
|
454
|
+
render() { return null; }
|
|
455
|
+
}
|
|
456
|
+
Debounce(100)(fn, ctx);
|
|
457
|
+
const instance = new TestComp();
|
|
458
|
+
ctx.runInitializers(instance);
|
|
459
|
+
const method = instance.debounced;
|
|
460
|
+
method("hello");
|
|
461
|
+
// Unmount before the 100ms debounce fires
|
|
462
|
+
instance.onUnmount?.();
|
|
463
|
+
vi.advanceTimersByTime(200);
|
|
464
|
+
expect(fn).not.toHaveBeenCalled();
|
|
465
|
+
vi.useRealTimers();
|
|
466
|
+
});
|
|
467
|
+
it("original method is NOT called after unmount if timer was pending", () => {
|
|
468
|
+
vi.useFakeTimers();
|
|
469
|
+
const fn = vi.fn();
|
|
470
|
+
const ctx = mockMethodContext("debouncedOp");
|
|
471
|
+
class TestComp2 extends StatefulComponent {
|
|
472
|
+
render() { return null; }
|
|
473
|
+
}
|
|
474
|
+
Debounce(50)(fn, ctx);
|
|
475
|
+
const instance = new TestComp2();
|
|
476
|
+
ctx.runInitializers(instance);
|
|
477
|
+
const method = instance.debouncedOp;
|
|
478
|
+
method("arg1");
|
|
479
|
+
method("arg2");
|
|
480
|
+
instance.onUnmount?.();
|
|
481
|
+
vi.runAllTimers();
|
|
482
|
+
expect(fn).not.toHaveBeenCalled();
|
|
483
|
+
vi.useRealTimers();
|
|
484
|
+
});
|
|
448
485
|
});
|
|
449
486
|
// ── Throttle ─────────────────────────────────────────────────────────────────
|
|
450
487
|
describe("Throttle", () => {
|
|
@@ -518,5 +555,31 @@ describe("Throttle", () => {
|
|
|
518
555
|
expect(fn).toHaveBeenCalledTimes(2);
|
|
519
556
|
vi.useRealTimers();
|
|
520
557
|
});
|
|
558
|
+
it("negative delay is treated as 0 — first call always executes", () => {
|
|
559
|
+
vi.useFakeTimers();
|
|
560
|
+
const fn = vi.fn();
|
|
561
|
+
const ctx = mockMethodContext("negDelay");
|
|
562
|
+
Throttle(-100)(fn, ctx);
|
|
563
|
+
const obj = {};
|
|
564
|
+
ctx.runInitializers(obj);
|
|
565
|
+
const method = obj.negDelay;
|
|
566
|
+
method();
|
|
567
|
+
expect(fn).toHaveBeenCalledTimes(1);
|
|
568
|
+
vi.useRealTimers();
|
|
569
|
+
});
|
|
570
|
+
it("call at exactly the ms boundary executes again", () => {
|
|
571
|
+
vi.useFakeTimers();
|
|
572
|
+
const fn = vi.fn();
|
|
573
|
+
const ctx = mockMethodContext("boundary");
|
|
574
|
+
Throttle(100)(fn, ctx);
|
|
575
|
+
const obj = {};
|
|
576
|
+
ctx.runInitializers(obj);
|
|
577
|
+
const method = obj.boundary;
|
|
578
|
+
method(); // first call at t=0
|
|
579
|
+
vi.advanceTimersByTime(100); // advance to exactly 100ms
|
|
580
|
+
method(); // second call at t=100 — should pass (now - last === ms, not less than ms)
|
|
581
|
+
expect(fn).toHaveBeenCalledTimes(2);
|
|
582
|
+
vi.useRealTimers();
|
|
583
|
+
});
|
|
521
584
|
});
|
|
522
585
|
//# sourceMappingURL=functions.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"functions.test.js","sourceRoot":"","sources":["../../src/__tests__/functions.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"functions.test.js","sourceRoot":"","sources":["../../src/__tests__/functions.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -111,5 +111,58 @@ describe("Memo", () => {
|
|
|
111
111
|
method(sym);
|
|
112
112
|
expect(fn).toHaveBeenCalledTimes(1);
|
|
113
113
|
});
|
|
114
|
+
it("circular object argument does not crash — falls back to stable identity key", () => {
|
|
115
|
+
const fn = vi.fn((o) => o);
|
|
116
|
+
const ctx = mockCtx("circular");
|
|
117
|
+
Memo()(fn, ctx);
|
|
118
|
+
const obj = {};
|
|
119
|
+
ctx.runInitializers(obj);
|
|
120
|
+
const method = obj.circular;
|
|
121
|
+
// Create a circular reference
|
|
122
|
+
const circ = {};
|
|
123
|
+
circ.self = circ;
|
|
124
|
+
expect(() => method(circ)).not.toThrow();
|
|
125
|
+
// Calling again with the same object should hit cache (not call fn again)
|
|
126
|
+
method(circ);
|
|
127
|
+
expect(fn).toHaveBeenCalledTimes(1);
|
|
128
|
+
});
|
|
129
|
+
it("two circular objects produce different cache keys", () => {
|
|
130
|
+
const fn = vi.fn((o) => o);
|
|
131
|
+
const ctx = mockCtx("circular2");
|
|
132
|
+
Memo()(fn, ctx);
|
|
133
|
+
const obj = {};
|
|
134
|
+
ctx.runInitializers(obj);
|
|
135
|
+
const method = obj.circular2;
|
|
136
|
+
const a = {};
|
|
137
|
+
a.self = a;
|
|
138
|
+
const b = {};
|
|
139
|
+
b.self = b;
|
|
140
|
+
method(a);
|
|
141
|
+
method(b);
|
|
142
|
+
expect(fn).toHaveBeenCalledTimes(2);
|
|
143
|
+
});
|
|
144
|
+
it("undefined vs null as arguments produce different cache keys", () => {
|
|
145
|
+
const fn = vi.fn((x) => x);
|
|
146
|
+
const ctx = mockCtx("nullUndef");
|
|
147
|
+
Memo()(fn, ctx);
|
|
148
|
+
const obj = {};
|
|
149
|
+
ctx.runInitializers(obj);
|
|
150
|
+
const method = obj.nullUndef;
|
|
151
|
+
method(undefined);
|
|
152
|
+
method(null);
|
|
153
|
+
expect(fn).toHaveBeenCalledTimes(2);
|
|
154
|
+
});
|
|
155
|
+
it("BigInt argument does not crash JSON.stringify path", () => {
|
|
156
|
+
const fn = vi.fn((x) => x);
|
|
157
|
+
const ctx = mockCtx("bigint");
|
|
158
|
+
Memo()(fn, ctx);
|
|
159
|
+
const obj = {};
|
|
160
|
+
ctx.runInitializers(obj);
|
|
161
|
+
const method = obj.bigint;
|
|
162
|
+
// BigInt is a non-object, non-symbol primitive — goes through String() path
|
|
163
|
+
expect(() => method(BigInt(42))).not.toThrow();
|
|
164
|
+
method(BigInt(42));
|
|
165
|
+
expect(fn).toHaveBeenCalledTimes(1);
|
|
166
|
+
});
|
|
114
167
|
});
|
|
115
168
|
//# sourceMappingURL=memo.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memo.test.js","sourceRoot":"","sources":["../../src/__tests__/memo.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"memo.test.js","sourceRoot":"","sources":["../../src/__tests__/memo.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import { StatefulComponent } from "@praxisjs/core";
|
|
|
3
3
|
import { signal, computed } from "@praxisjs/core/internal";
|
|
4
4
|
import { Watch } from "../functions/watch";
|
|
5
5
|
import { When } from "../functions/when";
|
|
6
|
+
import { Compose } from "../properties/compose";
|
|
6
7
|
import { Computed } from "../properties/computed";
|
|
7
8
|
import { History } from "../properties/history";
|
|
8
9
|
import { Prop } from "../properties/prop";
|
|
@@ -568,4 +569,196 @@ describe("Watch decorator — reading computed values", () => {
|
|
|
568
569
|
expect(handler).toHaveBeenCalledTimes(1);
|
|
569
570
|
});
|
|
570
571
|
});
|
|
572
|
+
// ── Watch — additional new tests ──────────────────────────────────────────────
|
|
573
|
+
describe("Watch decorator — new cases", () => {
|
|
574
|
+
it("NaN → NaN does NOT fire (Object.is semantics)", () => {
|
|
575
|
+
const { ctx, run } = methodCtx("onNaN");
|
|
576
|
+
const handler = vi.fn();
|
|
577
|
+
Watch("nanProp")(handler, ctx);
|
|
578
|
+
const s = signal(NaN);
|
|
579
|
+
const instance = new TestComponent();
|
|
580
|
+
Object.defineProperty(instance, "nanProp", { get: () => s(), configurable: true });
|
|
581
|
+
run(instance);
|
|
582
|
+
instance.onMount?.();
|
|
583
|
+
s.set(NaN); // Object.is(NaN, NaN) === true → no change
|
|
584
|
+
expect(handler).not.toHaveBeenCalled();
|
|
585
|
+
});
|
|
586
|
+
it("watch callback that throws does not crash the effect system", () => {
|
|
587
|
+
const { ctx, run } = methodCtx("onThrow");
|
|
588
|
+
const throwingHandler = vi.fn(() => { throw new Error("handler error"); });
|
|
589
|
+
Watch("tProp")(throwingHandler, ctx);
|
|
590
|
+
const s = signal(0);
|
|
591
|
+
const instance = new TestComponent();
|
|
592
|
+
Object.defineProperty(instance, "tProp", { get: () => s(), configurable: true });
|
|
593
|
+
run(instance);
|
|
594
|
+
instance.onMount?.();
|
|
595
|
+
// Even if the handler throws, the signal change shouldn't crash the effect framework
|
|
596
|
+
// The throw propagates from the effect, so we catch it here
|
|
597
|
+
expect(() => { s.set(1); }).toThrow("handler error");
|
|
598
|
+
// The system should still be intact — further calls are not tested for recovery
|
|
599
|
+
expect(throwingHandler).toHaveBeenCalledTimes(1);
|
|
600
|
+
});
|
|
601
|
+
it("multiple @Watch decorators on different methods both fire independently", () => {
|
|
602
|
+
const { ctx: ctxA, run: runA } = methodCtx("onA");
|
|
603
|
+
const { ctx: ctxB, run: runB } = methodCtx("onB");
|
|
604
|
+
const handlerA = vi.fn();
|
|
605
|
+
const handlerB = vi.fn();
|
|
606
|
+
Watch("propA")(handlerA, ctxA);
|
|
607
|
+
Watch("propB")(handlerB, ctxB);
|
|
608
|
+
const sa = signal(0);
|
|
609
|
+
const sb = signal(0);
|
|
610
|
+
const instance = new TestComponent();
|
|
611
|
+
Object.defineProperty(instance, "propA", { get: () => sa(), configurable: true });
|
|
612
|
+
Object.defineProperty(instance, "propB", { get: () => sb(), configurable: true });
|
|
613
|
+
runA(instance);
|
|
614
|
+
runB(instance);
|
|
615
|
+
instance.onMount?.();
|
|
616
|
+
sa.set(1);
|
|
617
|
+
expect(handlerA).toHaveBeenCalledTimes(1);
|
|
618
|
+
expect(handlerB).not.toHaveBeenCalled();
|
|
619
|
+
sb.set(1);
|
|
620
|
+
expect(handlerA).toHaveBeenCalledTimes(1);
|
|
621
|
+
expect(handlerB).toHaveBeenCalledTimes(1);
|
|
622
|
+
});
|
|
623
|
+
});
|
|
624
|
+
// ── When — additional new tests ───────────────────────────────────────────────
|
|
625
|
+
describe("When decorator — new cases", () => {
|
|
626
|
+
function methodCtxFor(name) {
|
|
627
|
+
const initializers = [];
|
|
628
|
+
return {
|
|
629
|
+
ctx: {
|
|
630
|
+
name,
|
|
631
|
+
kind: "method",
|
|
632
|
+
addInitializer(fn) {
|
|
633
|
+
initializers.push(fn);
|
|
634
|
+
},
|
|
635
|
+
},
|
|
636
|
+
run(instance) {
|
|
637
|
+
initializers.forEach((fn) => { fn.call(instance); });
|
|
638
|
+
},
|
|
639
|
+
};
|
|
640
|
+
}
|
|
641
|
+
it("@When fires only once — first truthy value; subsequent truthy values are ignored", () => {
|
|
642
|
+
const { ctx, run } = methodCtxFor("onToggle");
|
|
643
|
+
const handler = vi.fn();
|
|
644
|
+
When("toggle")(handler, ctx);
|
|
645
|
+
const s = signal(null);
|
|
646
|
+
const instance = new TestComponent();
|
|
647
|
+
instance.toggle = s;
|
|
648
|
+
run(instance);
|
|
649
|
+
instance.onMount?.();
|
|
650
|
+
s.set(1); // truthy → fires (first and only time)
|
|
651
|
+
s.set(null); // falsy
|
|
652
|
+
s.set(2); // truthy again — but when() has already disposed itself
|
|
653
|
+
expect(handler).toHaveBeenCalledTimes(1);
|
|
654
|
+
expect(handler).toHaveBeenCalledWith(1);
|
|
655
|
+
});
|
|
656
|
+
it("@When callback that throws — onUnmount cleanup still works", () => {
|
|
657
|
+
const { ctx, run } = methodCtxFor("onThrowWhen");
|
|
658
|
+
const throwingHandler = vi.fn(() => { throw new Error("when error"); });
|
|
659
|
+
When("whenProp")(throwingHandler, ctx);
|
|
660
|
+
const s = signal(null);
|
|
661
|
+
const instance = new TestComponent();
|
|
662
|
+
instance.whenProp = s;
|
|
663
|
+
run(instance);
|
|
664
|
+
instance.onMount?.();
|
|
665
|
+
// Triggering truthy fires handler which throws
|
|
666
|
+
expect(() => { s.set(1); }).toThrow("when error");
|
|
667
|
+
// onUnmount should still work without crashing
|
|
668
|
+
expect(() => {
|
|
669
|
+
instance.onUnmount?.();
|
|
670
|
+
}).not.toThrow();
|
|
671
|
+
});
|
|
672
|
+
});
|
|
673
|
+
// ── State — additional new tests ──────────────────────────────────────────────
|
|
674
|
+
describe("State decorator — new cases", () => {
|
|
675
|
+
it("two @State fields can be set independently without cross-contamination", () => {
|
|
676
|
+
const { ctx: ctxX, run: runX } = fieldCtx("x");
|
|
677
|
+
const { ctx: ctxY, run: runY } = fieldCtx("y");
|
|
678
|
+
State()(undefined, ctxX);
|
|
679
|
+
State()(undefined, ctxY);
|
|
680
|
+
const instance = new TestComponent();
|
|
681
|
+
instance.x = 10;
|
|
682
|
+
instance.y = 20;
|
|
683
|
+
runX(instance);
|
|
684
|
+
runY(instance);
|
|
685
|
+
instance.x = 99;
|
|
686
|
+
expect(instance.x).toBe(99);
|
|
687
|
+
expect(instance.y).toBe(20);
|
|
688
|
+
instance.y = 77;
|
|
689
|
+
expect(instance.x).toBe(99);
|
|
690
|
+
expect(instance.y).toBe(77);
|
|
691
|
+
});
|
|
692
|
+
it("setting @State to undefined works (signal stores undefined)", () => {
|
|
693
|
+
const { ctx, run } = fieldCtx("maybeVal");
|
|
694
|
+
State()(undefined, ctx);
|
|
695
|
+
const instance = new TestComponent();
|
|
696
|
+
instance.maybeVal = "initial";
|
|
697
|
+
run(instance);
|
|
698
|
+
instance.maybeVal = undefined;
|
|
699
|
+
expect(instance.maybeVal).toBeUndefined();
|
|
700
|
+
});
|
|
701
|
+
});
|
|
702
|
+
// ── Prop — additional new tests ───────────────────────────────────────────────
|
|
703
|
+
describe("Prop decorator — new cases", () => {
|
|
704
|
+
it("function prop that throws — getter propagates the error", () => {
|
|
705
|
+
const { ctx, run } = fieldCtx("dynProp");
|
|
706
|
+
Prop()(undefined, ctx);
|
|
707
|
+
const throwingFn = () => { throw new Error("prop error"); };
|
|
708
|
+
const instance = new TestComponent({ dynProp: throwingFn });
|
|
709
|
+
run(instance);
|
|
710
|
+
expect(() => instance.dynProp).toThrow("prop error");
|
|
711
|
+
});
|
|
712
|
+
it("undefined passed explicitly vs key not present — both fall back to default", () => {
|
|
713
|
+
const { ctx: ctx1, run: run1 } = fieldCtx("optA");
|
|
714
|
+
const { ctx: ctx2, run: run2 } = fieldCtx("optB");
|
|
715
|
+
Prop()(undefined, ctx1);
|
|
716
|
+
Prop()(undefined, ctx2);
|
|
717
|
+
// Case 1: key explicitly set to undefined in rawProps
|
|
718
|
+
const instance1 = new TestComponent({ optA: undefined });
|
|
719
|
+
instance1.optA = "default-a";
|
|
720
|
+
run1(instance1);
|
|
721
|
+
// undefined from rawProps — Prop checks `!== undefined`, so falls back to default
|
|
722
|
+
expect(instance1.optA).toBe("default-a");
|
|
723
|
+
// Case 2: key not present in rawProps at all
|
|
724
|
+
const instance2 = new TestComponent({});
|
|
725
|
+
instance2.optB = "default-b";
|
|
726
|
+
run2(instance2);
|
|
727
|
+
expect(instance2.optB).toBe("default-b");
|
|
728
|
+
});
|
|
729
|
+
});
|
|
730
|
+
// ── Compose — additional new tests ────────────────────────────────────────────
|
|
731
|
+
describe("@Compose decorator — new cases", () => {
|
|
732
|
+
it("setup() that throws — field access on the instance throws", () => {
|
|
733
|
+
class ThrowingComposable {
|
|
734
|
+
setup() {
|
|
735
|
+
throw new Error("setup failed");
|
|
736
|
+
}
|
|
737
|
+
}
|
|
738
|
+
const { ctx, run } = fieldCtx("throwing");
|
|
739
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
740
|
+
expect(() => {
|
|
741
|
+
const instance = new TestComponent();
|
|
742
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
743
|
+
Compose(ThrowingComposable)(undefined, ctx);
|
|
744
|
+
run(instance);
|
|
745
|
+
}).toThrow("setup failed");
|
|
746
|
+
});
|
|
747
|
+
it("string argument resolution where the instance property is undefined", () => {
|
|
748
|
+
class ArgComposable {
|
|
749
|
+
constructor(val) {
|
|
750
|
+
this.val = val;
|
|
751
|
+
}
|
|
752
|
+
setup() { return { resolved: this.val }; }
|
|
753
|
+
}
|
|
754
|
+
const { ctx, run } = fieldCtx("strArgUndef");
|
|
755
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
756
|
+
Compose(ArgComposable, "missingProp")(undefined, ctx);
|
|
757
|
+
const instance = new TestComponent();
|
|
758
|
+
// missingProp is not set on instance — resolves to undefined
|
|
759
|
+
run(instance);
|
|
760
|
+
const view = instance.strArgUndef;
|
|
761
|
+
expect(view.resolved).toBeUndefined();
|
|
762
|
+
});
|
|
763
|
+
});
|
|
571
764
|
//# sourceMappingURL=properties.test.js.map
|