Skip to content

Commit 3779882

Browse files
Merge pull request #705 from sourabhsaini11/draft-TRV14-2.0.0
fix: upadate flows for purchase journey cult
2 parents 3f52d67 + 5da6cb9 commit 3779882

File tree

7 files changed

+1031
-1
lines changed

7 files changed

+1031
-1
lines changed
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
import { readFileSync } from "fs";
2+
import yaml from "js-yaml";
3+
import path from "path";
4+
import { MockAction, MockOutput, saveType } from "../../classes/mock-action";
5+
import { SessionData } from "../../session-types";
6+
import { onSelectDefaultGenerator } from "./generator";
7+
8+
export class MockOnSelectPurchaseCultFormClass extends MockAction {
9+
get saveData(): saveType {
10+
return yaml.load(
11+
readFileSync(path.resolve(__dirname, "./save-data.yaml"), "utf8")
12+
) as saveType;
13+
}
14+
get defaultData(): any {
15+
return yaml.load(
16+
readFileSync(path.resolve(__dirname, "./default.yaml"), "utf8")
17+
);
18+
}
19+
get inputs(): any {
20+
return {};
21+
}
22+
name(): string {
23+
return "on_select_default";
24+
}
25+
get description(): string {
26+
return "Mock for on_select_default";
27+
}
28+
generator(existingPayload: any, sessionData: SessionData): Promise<any> {
29+
return onSelectDefaultGenerator(existingPayload, sessionData);
30+
}
31+
async validate(targetPayload: any): Promise<MockOutput> {
32+
return { valid: true };
33+
}
34+
async meetRequirements(sessionData: SessionData): Promise<MockOutput> {
35+
// Validate required session data for on_select
36+
if (!sessionData.items || !Array.isArray(sessionData.items)) {
37+
return {
38+
valid: false,
39+
message: "No items available in session data",
40+
code: "MISSING_ITEMS"
41+
};
42+
}
43+
44+
if (!sessionData.selected_items || !Array.isArray(sessionData.selected_items)) {
45+
return {
46+
valid: false,
47+
message: "No selected_items available in session data",
48+
code: "MISSING_SELECTED_ITEMS"
49+
};
50+
}
51+
52+
if (sessionData.selected_items.length === 0) {
53+
return {
54+
valid: false,
55+
message: "selected_items array is empty",
56+
code: "EMPTY_SELECTED_ITEMS"
57+
};
58+
}
59+
60+
if (!sessionData.fulfillments || !Array.isArray(sessionData.fulfillments)) {
61+
return {
62+
valid: false,
63+
message: "No fulfillments available in session data",
64+
code: "MISSING_FULFILLMENTS"
65+
};
66+
}
67+
68+
if (!sessionData.selected_fulfillments || !Array.isArray(sessionData.selected_fulfillments)) {
69+
return {
70+
valid: false,
71+
message: "No selected_fulfillments available in session data",
72+
code: "MISSING_SELECTED_FULFILLMENTS"
73+
};
74+
}
75+
76+
return { valid: true };
77+
}
78+
}

0 commit comments

Comments
 (0)