@yoryoboy/bi-mcp 1.13.0 → 1.14.2
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/.tsbuildinfo +1 -1
- package/dist/index.js +30 -0
- package/dist/index.js.map +2 -2
- package/dist/mcp-use.json +2 -2
- package/dist/src/services/vtex/__tests__/vtex-payments.test.js +98 -0
- package/dist/src/services/vtex/__tests__/vtex-payments.test.js.map +7 -0
- package/dist/src/services/vtex/vtex-payments-write.js +64 -0
- package/dist/src/services/vtex/vtex-payments-write.js.map +7 -0
- package/dist/src/services/vtex/vtex-payments.js +49 -0
- package/dist/src/services/vtex/vtex-payments.js.map +7 -0
- package/dist/src/tools/vtex/__tests__/commercial-condition-references.test.js +14 -0
- package/dist/src/tools/vtex/__tests__/commercial-condition-references.test.js.map +7 -0
- package/dist/src/tools/vtex/__tests__/commercial-conditions.test.js +107 -0
- package/dist/src/tools/vtex/__tests__/commercial-conditions.test.js.map +7 -0
- package/dist/src/tools/vtex/__tests__/payment-rules.test.js +254 -0
- package/dist/src/tools/vtex/__tests__/payment-rules.test.js.map +7 -0
- package/dist/src/tools/vtex/catalog-admin-products-skus.js +3 -1
- package/dist/src/tools/vtex/catalog-admin-products-skus.js.map +2 -2
- package/dist/src/tools/vtex/commercial-conditions.js +105 -0
- package/dist/src/tools/vtex/commercial-conditions.js.map +7 -0
- package/dist/src/tools/vtex/create-sku.js +3 -1
- package/dist/src/tools/vtex/create-sku.js.map +2 -2
- package/dist/src/tools/vtex/index.js +2 -0
- package/dist/src/tools/vtex/index.js.map +2 -2
- package/dist/src/tools/vtex/payment-rules.js +272 -0
- package/dist/src/tools/vtex/payment-rules.js.map +7 -0
- package/dist/tests/vtex/vtex-commercial-conditions-docs.test.js +34 -0
- package/dist/tests/vtex/vtex-commercial-conditions-docs.test.js.map +7 -0
- package/dist/tests/vtex/vtex-commercial-conditions-surface.test.js +151 -0
- package/dist/tests/vtex/vtex-commercial-conditions-surface.test.js.map +7 -0
- package/dist/tests/vtex/vtex-commercial-conditions-workflow.test.js +182 -0
- package/dist/tests/vtex/vtex-commercial-conditions-workflow.test.js.map +7 -0
- package/package.json +1 -1
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { beforeEach, describe, expect, it, vi } from "vitest";
|
|
3
|
+
const objectMock = vi.fn((value) => ({ kind: "object", value }));
|
|
4
|
+
const errorMock = vi.fn((message) => ({ kind: "error", message }));
|
|
5
|
+
const getCommercialConditionMock = vi.fn();
|
|
6
|
+
const createPaymentRuleMock = vi.fn();
|
|
7
|
+
const getPaymentRuleMock = vi.fn();
|
|
8
|
+
const updateSkuBasicFieldsServiceMock = vi.fn();
|
|
9
|
+
const resolveVtexWriteProfileMock = vi.fn();
|
|
10
|
+
const buildWriteSuccessResponseMock = vi.fn((value) => ({ kind: "write", value }));
|
|
11
|
+
const handleVtexWriteErrorMock = vi.fn((_err, fallback) => ({ kind: "error", message: fallback }));
|
|
12
|
+
vi.mock("mcp-use/server", () => ({
|
|
13
|
+
object: objectMock,
|
|
14
|
+
error: errorMock
|
|
15
|
+
}));
|
|
16
|
+
vi.mock("../../src/services/vtex/vtex-payments.js", () => ({
|
|
17
|
+
getCommercialCondition: getCommercialConditionMock,
|
|
18
|
+
listCommercialConditions: vi.fn(),
|
|
19
|
+
getPaymentRule: getPaymentRuleMock,
|
|
20
|
+
listPaymentRules: vi.fn()
|
|
21
|
+
}));
|
|
22
|
+
vi.mock("../../src/services/vtex/vtex-payments-write.js", () => ({
|
|
23
|
+
createCommercialCondition: vi.fn(),
|
|
24
|
+
updateCommercialCondition: vi.fn(),
|
|
25
|
+
deleteCommercialCondition: vi.fn(),
|
|
26
|
+
createPaymentRule: createPaymentRuleMock,
|
|
27
|
+
updatePaymentRule: vi.fn(),
|
|
28
|
+
deletePaymentRule: vi.fn()
|
|
29
|
+
}));
|
|
30
|
+
vi.mock("../../src/services/vtex/vtex-catalog-write.js", () => ({
|
|
31
|
+
updateSkuBasicFields: updateSkuBasicFieldsServiceMock,
|
|
32
|
+
replaceSkuEans: vi.fn(),
|
|
33
|
+
createProduct: vi.fn(),
|
|
34
|
+
createSku: vi.fn(),
|
|
35
|
+
addSkuEan: vi.fn(),
|
|
36
|
+
getSkuImages: vi.fn(),
|
|
37
|
+
attachSkuImage: vi.fn(),
|
|
38
|
+
updateSkuImage: vi.fn()
|
|
39
|
+
}));
|
|
40
|
+
vi.mock("../../src/tools/vtex/write-helpers.js", () => ({
|
|
41
|
+
vtexProfileIdSchemaField: z.string().trim().min(1).optional().describe("profile"),
|
|
42
|
+
confirmationSchemaField: z.boolean().optional().describe("confirmed"),
|
|
43
|
+
resolveVtexWriteProfile: resolveVtexWriteProfileMock,
|
|
44
|
+
buildWriteSuccessResponse: buildWriteSuccessResponseMock,
|
|
45
|
+
handleVtexWriteError: handleVtexWriteErrorMock,
|
|
46
|
+
requireExplicitConfirmation: vi.fn()
|
|
47
|
+
}));
|
|
48
|
+
const commercialConditionsModule = await import("../../src/tools/vtex/commercial-conditions.js");
|
|
49
|
+
const paymentRulesModule = await import("../../src/tools/vtex/payment-rules.js");
|
|
50
|
+
const skuModule = await import("../../src/tools/vtex/update-sku-basic-fields.js");
|
|
51
|
+
describe("VTEX commercial conditions business workflow", () => {
|
|
52
|
+
beforeEach(() => {
|
|
53
|
+
vi.clearAllMocks();
|
|
54
|
+
resolveVtexWriteProfileMock.mockResolvedValue({
|
|
55
|
+
ok: true,
|
|
56
|
+
value: { profileId: "profile-1" }
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
it("supports a selective installments workflow after a condition is created manually in VTEX Admin", async () => {
|
|
60
|
+
createPaymentRuleMock.mockResolvedValue({
|
|
61
|
+
id: 902,
|
|
62
|
+
commercialConditionId: 901,
|
|
63
|
+
paymentSystem: "2",
|
|
64
|
+
restrictedByCondition: true,
|
|
65
|
+
installments: [{ count: 9, interest: false }]
|
|
66
|
+
});
|
|
67
|
+
updateSkuBasicFieldsServiceMock.mockResolvedValue({
|
|
68
|
+
before: { Id: 333, CommercialConditionId: 0 },
|
|
69
|
+
after: { Id: 333, CommercialConditionId: 901 }
|
|
70
|
+
});
|
|
71
|
+
getCommercialConditionMock.mockResolvedValue({
|
|
72
|
+
id: 901,
|
|
73
|
+
name: "9-cuotas-sin-interes",
|
|
74
|
+
isActive: true
|
|
75
|
+
});
|
|
76
|
+
getPaymentRuleMock.mockResolvedValueOnce({
|
|
77
|
+
id: 100,
|
|
78
|
+
commercialConditionId: 0,
|
|
79
|
+
paymentSystem: "2",
|
|
80
|
+
restrictedByCondition: false,
|
|
81
|
+
installments: [{ count: 6, interest: false }]
|
|
82
|
+
}).mockResolvedValueOnce({
|
|
83
|
+
id: 902,
|
|
84
|
+
commercialConditionId: 901,
|
|
85
|
+
paymentSystem: "2",
|
|
86
|
+
restrictedByCondition: true,
|
|
87
|
+
installments: [{ count: 9, interest: false }]
|
|
88
|
+
});
|
|
89
|
+
const inspectedCondition = await commercialConditionsModule.commercialConditionsHandler({
|
|
90
|
+
action: "get",
|
|
91
|
+
profileId: "profile-1",
|
|
92
|
+
commercialConditionId: 901
|
|
93
|
+
});
|
|
94
|
+
const createdRule = await paymentRulesModule.paymentRulesHandler({
|
|
95
|
+
action: "create",
|
|
96
|
+
profileId: "profile-1",
|
|
97
|
+
commercialConditionId: 901,
|
|
98
|
+
paymentSystem: "2",
|
|
99
|
+
restrictedByCondition: true,
|
|
100
|
+
installments: [{ count: 9, interest: false }]
|
|
101
|
+
});
|
|
102
|
+
const assignedSku = await skuModule.updateSkuBasicFieldsHandler({
|
|
103
|
+
profileId: "profile-1",
|
|
104
|
+
skuId: "333",
|
|
105
|
+
commercialConditionId: 901
|
|
106
|
+
});
|
|
107
|
+
const defaultRule = await paymentRulesModule.paymentRulesHandler({
|
|
108
|
+
action: "get",
|
|
109
|
+
profileId: "profile-1",
|
|
110
|
+
ruleId: 100
|
|
111
|
+
});
|
|
112
|
+
const targetedRule = await paymentRulesModule.paymentRulesHandler({
|
|
113
|
+
action: "get",
|
|
114
|
+
profileId: "profile-1",
|
|
115
|
+
ruleId: 902
|
|
116
|
+
});
|
|
117
|
+
expect(getCommercialConditionMock).toHaveBeenCalledWith("profile-1", 901);
|
|
118
|
+
expect(createPaymentRuleMock).toHaveBeenCalledWith("profile-1", {
|
|
119
|
+
commercialConditionId: 901,
|
|
120
|
+
paymentSystem: "2",
|
|
121
|
+
restrictedByCondition: true,
|
|
122
|
+
installments: [{ count: 9, interest: false }]
|
|
123
|
+
});
|
|
124
|
+
expect(updateSkuBasicFieldsServiceMock).toHaveBeenCalledWith("profile-1", "333", {
|
|
125
|
+
commercialConditionId: 901
|
|
126
|
+
});
|
|
127
|
+
expect(inspectedCondition).toMatchObject({
|
|
128
|
+
kind: "object",
|
|
129
|
+
value: {
|
|
130
|
+
commercial_condition_id: 901,
|
|
131
|
+
condition: {
|
|
132
|
+
id: 901,
|
|
133
|
+
name: "9-cuotas-sin-interes",
|
|
134
|
+
is_active: true
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
expect(createdRule).toMatchObject({
|
|
139
|
+
kind: "write",
|
|
140
|
+
value: {
|
|
141
|
+
operation: "payment_rules_create",
|
|
142
|
+
resourceId: "902"
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
expect(assignedSku).toMatchObject({
|
|
146
|
+
kind: "write",
|
|
147
|
+
value: {
|
|
148
|
+
operation: "update_sku_basic_fields",
|
|
149
|
+
resourceId: "333"
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
expect(defaultRule).toEqual({
|
|
153
|
+
kind: "object",
|
|
154
|
+
value: {
|
|
155
|
+
profile_id: "profile-1",
|
|
156
|
+
rule_id: 100,
|
|
157
|
+
payment_rule: {
|
|
158
|
+
id: 100,
|
|
159
|
+
commercial_condition_id: 0,
|
|
160
|
+
payment_system: "2",
|
|
161
|
+
restricted_by_condition: false,
|
|
162
|
+
installments: [{ count: 6, interest: false }]
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
expect(targetedRule).toEqual({
|
|
167
|
+
kind: "object",
|
|
168
|
+
value: {
|
|
169
|
+
profile_id: "profile-1",
|
|
170
|
+
rule_id: 902,
|
|
171
|
+
payment_rule: {
|
|
172
|
+
id: 902,
|
|
173
|
+
commercial_condition_id: 901,
|
|
174
|
+
payment_system: "2",
|
|
175
|
+
restricted_by_condition: true,
|
|
176
|
+
installments: [{ count: 9, interest: false }]
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
});
|
|
181
|
+
});
|
|
182
|
+
//# sourceMappingURL=vtex-commercial-conditions-workflow.test.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../tests/vtex/vtex-commercial-conditions-workflow.test.ts"],
|
|
4
|
+
"sourcesContent": ["import { z } from \"zod\";\nimport { beforeEach, describe, expect, it, vi } from \"vitest\";\n\nconst objectMock = vi.fn((value) => ({ kind: \"object\", value }));\nconst errorMock = vi.fn((message) => ({ kind: \"error\", message }));\n\nconst getCommercialConditionMock = vi.fn();\nconst createPaymentRuleMock = vi.fn();\nconst getPaymentRuleMock = vi.fn();\nconst updateSkuBasicFieldsServiceMock = vi.fn();\n\nconst resolveVtexWriteProfileMock = vi.fn();\nconst buildWriteSuccessResponseMock = vi.fn((value) => ({ kind: \"write\", value }));\nconst handleVtexWriteErrorMock = vi.fn((_err, fallback) => ({ kind: \"error\", message: fallback }));\n\nvi.mock(\"mcp-use/server\", () => ({\n object: objectMock,\n error: errorMock,\n}));\n\nvi.mock(\"../../src/services/vtex/vtex-payments.js\", () => ({\n getCommercialCondition: getCommercialConditionMock,\n listCommercialConditions: vi.fn(),\n getPaymentRule: getPaymentRuleMock,\n listPaymentRules: vi.fn(),\n}));\n\nvi.mock(\"../../src/services/vtex/vtex-payments-write.js\", () => ({\n createCommercialCondition: vi.fn(),\n updateCommercialCondition: vi.fn(),\n deleteCommercialCondition: vi.fn(),\n createPaymentRule: createPaymentRuleMock,\n updatePaymentRule: vi.fn(),\n deletePaymentRule: vi.fn(),\n}));\n\nvi.mock(\"../../src/services/vtex/vtex-catalog-write.js\", () => ({\n updateSkuBasicFields: updateSkuBasicFieldsServiceMock,\n replaceSkuEans: vi.fn(),\n createProduct: vi.fn(),\n createSku: vi.fn(),\n addSkuEan: vi.fn(),\n getSkuImages: vi.fn(),\n attachSkuImage: vi.fn(),\n updateSkuImage: vi.fn(),\n}));\n\nvi.mock(\"../../src/tools/vtex/write-helpers.js\", () => ({\n vtexProfileIdSchemaField: z.string().trim().min(1).optional().describe(\"profile\"),\n confirmationSchemaField: z.boolean().optional().describe(\"confirmed\"),\n resolveVtexWriteProfile: resolveVtexWriteProfileMock,\n buildWriteSuccessResponse: buildWriteSuccessResponseMock,\n handleVtexWriteError: handleVtexWriteErrorMock,\n requireExplicitConfirmation: vi.fn(),\n}));\n\nconst commercialConditionsModule = await import(\"../../src/tools/vtex/commercial-conditions.js\");\nconst paymentRulesModule = await import(\"../../src/tools/vtex/payment-rules.js\");\nconst skuModule = await import(\"../../src/tools/vtex/update-sku-basic-fields.js\");\n\ndescribe(\"VTEX commercial conditions business workflow\", () => {\n beforeEach(() => {\n vi.clearAllMocks();\n resolveVtexWriteProfileMock.mockResolvedValue({\n ok: true,\n value: { profileId: \"profile-1\" },\n });\n });\n\n it(\"supports a selective installments workflow after a condition is created manually in VTEX Admin\", async () => {\n createPaymentRuleMock.mockResolvedValue({\n id: 902,\n commercialConditionId: 901,\n paymentSystem: \"2\",\n restrictedByCondition: true,\n installments: [{ count: 9, interest: false }],\n });\n updateSkuBasicFieldsServiceMock.mockResolvedValue({\n before: { Id: 333, CommercialConditionId: 0 },\n after: { Id: 333, CommercialConditionId: 901 },\n });\n getCommercialConditionMock.mockResolvedValue({\n id: 901,\n name: \"9-cuotas-sin-interes\",\n isActive: true,\n });\n getPaymentRuleMock\n .mockResolvedValueOnce({\n id: 100,\n commercialConditionId: 0,\n paymentSystem: \"2\",\n restrictedByCondition: false,\n installments: [{ count: 6, interest: false }],\n })\n .mockResolvedValueOnce({\n id: 902,\n commercialConditionId: 901,\n paymentSystem: \"2\",\n restrictedByCondition: true,\n installments: [{ count: 9, interest: false }],\n });\n\n const inspectedCondition = await commercialConditionsModule.commercialConditionsHandler({\n action: \"get\",\n profileId: \"profile-1\",\n commercialConditionId: 901,\n });\n\n const createdRule = await paymentRulesModule.paymentRulesHandler({\n action: \"create\",\n profileId: \"profile-1\",\n commercialConditionId: 901,\n paymentSystem: \"2\",\n restrictedByCondition: true,\n installments: [{ count: 9, interest: false }],\n });\n\n const assignedSku = await skuModule.updateSkuBasicFieldsHandler({\n profileId: \"profile-1\",\n skuId: \"333\",\n commercialConditionId: 901,\n });\n\n const defaultRule = await paymentRulesModule.paymentRulesHandler({\n action: \"get\",\n profileId: \"profile-1\",\n ruleId: 100,\n });\n\n const targetedRule = await paymentRulesModule.paymentRulesHandler({\n action: \"get\",\n profileId: \"profile-1\",\n ruleId: 902,\n });\n\n expect(getCommercialConditionMock).toHaveBeenCalledWith(\"profile-1\", 901);\n expect(createPaymentRuleMock).toHaveBeenCalledWith(\"profile-1\", {\n commercialConditionId: 901,\n paymentSystem: \"2\",\n restrictedByCondition: true,\n installments: [{ count: 9, interest: false }],\n });\n expect(updateSkuBasicFieldsServiceMock).toHaveBeenCalledWith(\"profile-1\", \"333\", {\n commercialConditionId: 901,\n });\n\n expect(inspectedCondition).toMatchObject({\n kind: \"object\",\n value: {\n commercial_condition_id: 901,\n condition: {\n id: 901,\n name: \"9-cuotas-sin-interes\",\n is_active: true,\n },\n },\n });\n expect(createdRule).toMatchObject({\n kind: \"write\",\n value: {\n operation: \"payment_rules_create\",\n resourceId: \"902\",\n },\n });\n expect(assignedSku).toMatchObject({\n kind: \"write\",\n value: {\n operation: \"update_sku_basic_fields\",\n resourceId: \"333\",\n },\n });\n\n expect(defaultRule).toEqual({\n kind: \"object\",\n value: {\n profile_id: \"profile-1\",\n rule_id: 100,\n payment_rule: {\n id: 100,\n commercial_condition_id: 0,\n payment_system: \"2\",\n restricted_by_condition: false,\n installments: [{ count: 6, interest: false }],\n },\n },\n });\n expect(targetedRule).toEqual({\n kind: \"object\",\n value: {\n profile_id: \"profile-1\",\n rule_id: 902,\n payment_rule: {\n id: 902,\n commercial_condition_id: 901,\n payment_system: \"2\",\n restricted_by_condition: true,\n installments: [{ count: 9, interest: false }],\n },\n },\n });\n });\n});\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|