Skip to content

Commit 3caa744

Browse files
committed
patch(vest): Add IsolateTest class
1 parent f61b359 commit 3caa744

File tree

4 files changed

+35
-18
lines changed

4 files changed

+35
-18
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { TIsolate } from 'vestjs-runtime';
2+
3+
export abstract class IsolateReconciler {
4+
static match(currentNode: TIsolate, historyNode: TIsolate): boolean {
5+
return false;
6+
}
7+
8+
static reconcile(currentNode: TIsolate, historyNode: TIsolate): TIsolate {
9+
return (currentNode ?? historyNode) as TIsolate;
10+
}
11+
}

packages/vest/src/core/isolate/IsolateTest/IsolateTestReconciler.ts

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { IsolateReconciler } from 'IsolateReconciler';
12
import { Maybe, deferThrow, text } from 'vest-utils';
23
import { IsolateInspector, Reconciler } from 'vestjs-runtime';
34
import type { TIsolate } from 'vestjs-runtime';
@@ -10,20 +11,25 @@ import { castIsolateTest, isIsolateTest } from 'isIsolateTest';
1011
import { isSameProfileTest } from 'isSameProfileTest';
1112
import { useVerifyTestRun } from 'verifyTestRun';
1213

13-
// @vx-allow use-use
14-
export function IsolateTestReconciler(
15-
currentNode: TIsolateTest,
16-
historyNode: TIsolateTest
17-
): TIsolateTest {
18-
const reconcilerOutput = usePickNode(historyNode, currentNode);
14+
export class IsolateTestReconciler extends IsolateReconciler {
15+
static match(currentNode: TIsolate, historyNode: TIsolate): boolean {
16+
return isIsolateTest(currentNode) && isIsolateTest(historyNode);
17+
}
1918

20-
cancelOverriddenPendingTestOnTestReRun(
21-
reconcilerOutput,
22-
currentNode,
23-
historyNode
24-
);
19+
static reconcile(
20+
currentNode: TIsolateTest,
21+
historyNode: TIsolateTest
22+
): TIsolateTest {
23+
const reconcilerOutput = usePickNode(historyNode, currentNode);
2524

26-
return reconcilerOutput;
25+
cancelOverriddenPendingTestOnTestReRun(
26+
reconcilerOutput,
27+
currentNode,
28+
historyNode
29+
);
30+
31+
return reconcilerOutput;
32+
}
2733
}
2834

2935
function usePickNode(

packages/vest/src/core/isolate/VestReconciler.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,14 @@ import { Nullable } from 'vest-utils';
22
import { TIsolate } from 'vestjs-runtime';
33

44
import { IsolateTestReconciler } from 'IsolateTestReconciler';
5-
import { isIsolateTest } from 'isIsolateTest';
65

76
export function VestReconciler(
87
currentNode: TIsolate,
98
historyNode: TIsolate
109
): Nullable<TIsolate> {
11-
if (isIsolateTest(currentNode) && isIsolateTest(historyNode)) {
12-
return IsolateTestReconciler(currentNode, historyNode);
13-
}
14-
15-
return null;
10+
return (
11+
[IsolateTestReconciler]
12+
.find(reconciler => reconciler.match(currentNode, historyNode))
13+
?.reconcile(currentNode as any, historyNode as any) ?? null
14+
);
1615
}

packages/vest/tsconfig.json

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)