Skip to content

Commit 15038f4

Browse files
author
jaiprasath.m
committed
PA-11727 Added Test scripts for latest version
1 parent 1474005 commit 15038f4

File tree

2 files changed

+287
-0
lines changed

2 files changed

+287
-0
lines changed

jest.config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@ module.exports = {
22
preset: "ts-jest",
33
testEnvironment: "node",
44
coverageReporters: ["lcov"],
5+
testPathIgnorePatterns: [".*\\.test\\.ts$"], // ignore TypeScript tests
56
};

tests/ordersV5.test.js

Lines changed: 286 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,286 @@
1+
const { Cashfree, CardChannelEnum, AppProviderEnum } = require("cashfree-pg");
2+
const { test, expect } = require("@jest/globals");
3+
4+
const cashfree = new Cashfree(
5+
Cashfree.SANDBOX,
6+
process.env.CLIENT_ID,
7+
process.env.SECRET_KEY
8+
);
9+
10+
const orderAmount = 1;
11+
const xApiVersion = "2025-01-01";
12+
async function createOrderAndReturnSessionId() {
13+
const orderId = "order_" + Math.floor(Math.random() * 100000000);
14+
const request = {
15+
order_amount: orderAmount,
16+
order_currency: "INR",
17+
order_id: orderId,
18+
customer_details: {
19+
customer_id: "testCustomer",
20+
customer_phone: "9999999999",
21+
customer_email: "test@cashfree.com"
22+
},
23+
order_meta: {
24+
return_url:
25+
"https://www.cashfree.com/devstudio/preview/pg/web/checkout?order_id={order_id}"
26+
}
27+
};
28+
29+
const response = await cashfree.PGCreateOrder(request, xApiVersion);
30+
expect(response.data.payment_session_id).toBeDefined();
31+
return { sessionId: response.data.payment_session_id, orderId: orderId };
32+
}
33+
34+
test("Create Order", async () => {
35+
const { sessionId } = await createOrderAndReturnSessionId();
36+
expect(sessionId).toBeDefined();
37+
});
38+
39+
test("Pay Netbanking", async () => {
40+
const { sessionId } = await createOrderAndReturnSessionId();
41+
const request = {
42+
payment_session_id: sessionId,
43+
payment_method: {
44+
netbanking: {
45+
netbanking_bank_code: 3087,
46+
channel: "link"
47+
}
48+
}
49+
};
50+
51+
const response = await cashfree.PGPayOrder(request, xApiVersion);
52+
expect(response.data.channel).toBe("link");
53+
expect(response.data.payment_method).toBe("netbanking");
54+
expect(Number(response.data.payment_amount)).toBeGreaterThanOrEqual(orderAmount);
55+
});
56+
57+
test("Pay Card", async () => {
58+
const { sessionId } = await createOrderAndReturnSessionId();
59+
const request = {
60+
payment_session_id: sessionId,
61+
payment_method: {
62+
card: {
63+
channel: CardChannelEnum.LINK,
64+
card_number: "4838305610460100",
65+
card_holder_name: "Tushar Gupta",
66+
card_expiry_mm: "06",
67+
card_expiry_yy: "25",
68+
card_cvv: "123"
69+
}
70+
}
71+
};
72+
73+
const response = await cashfree.PGPayOrder(request, xApiVersion);
74+
expect(response.data.channel).toBe("link");
75+
expect(response.data.payment_method).toBe("card");
76+
expect(Number(response.data.payment_amount)).toBeGreaterThanOrEqual(orderAmount);
77+
});
78+
79+
test("Pay Card with Empty CVV", async () => {
80+
const { sessionId } = await createOrderAndReturnSessionId();
81+
const request = {
82+
payment_session_id: sessionId,
83+
payment_method: {
84+
card: {
85+
channel: CardChannelEnum.LINK,
86+
card_number: "4838305610460100",
87+
card_holder_name: "Tushar Gupta",
88+
card_expiry_mm: "06",
89+
card_expiry_yy: "25",
90+
card_cvv: ""
91+
}
92+
}
93+
};
94+
95+
await expect(cashfree.PGPayOrder(request, xApiVersion)).rejects.toMatchObject({
96+
response: {
97+
data: {
98+
code: "card_cvv_missing",
99+
type: "invalid_request_error",
100+
message: expect.stringContaining("card_cvv")
101+
}
102+
}
103+
});
104+
});
105+
106+
test("Pay Wallet - PhonePe", async () => {
107+
const { sessionId } = await createOrderAndReturnSessionId();
108+
const request = {
109+
payment_session_id: sessionId,
110+
payment_method: {
111+
app: {
112+
provider: AppProviderEnum.PHONEPE,
113+
phone: "8474090512",
114+
channel: "link"
115+
}
116+
}
117+
};
118+
119+
const response = await cashfree.PGPayOrder(request, xApiVersion);
120+
expect(response.status).toBe(200);
121+
});
122+
123+
test("Invalid Currency", async () => {
124+
const request = {
125+
order_amount: orderAmount,
126+
order_currency: "INjR",
127+
customer_details: {
128+
customer_id: "iij",
129+
customer_name: "abcd",
130+
customer_email: "success@eligibility.com",
131+
customer_phone: "9999999999"
132+
}
133+
};
134+
135+
await expect(cashfree.PGCreateOrder(request, xApiVersion)).rejects.toMatchObject({
136+
response: {
137+
data: {
138+
code: "order_currency_invalid",
139+
type: "invalid_request_error",
140+
message: expect.stringContaining("order_currency")
141+
}
142+
}
143+
});
144+
});
145+
146+
test("Invalid Amount", async () => {
147+
const request = {
148+
order_amount: -100,
149+
order_currency: "INR",
150+
customer_details: {
151+
customer_id: "iij",
152+
customer_name: "abcd",
153+
customer_email: "success@eligibility.com",
154+
customer_phone: "9999999999"
155+
}
156+
};
157+
158+
await expect(cashfree.PGCreateOrder(request, xApiVersion)).rejects.toMatchObject({
159+
response: {
160+
data: {
161+
code: "order_amount_invalid",
162+
type: "invalid_request_error",
163+
message: expect.stringContaining("Invalid amount")
164+
}
165+
}
166+
});
167+
});
168+
169+
test("Empty Customer Phone", async () => {
170+
const request = {
171+
order_amount: orderAmount,
172+
order_currency: "INR",
173+
customer_details: {
174+
customer_id: "iij",
175+
customer_name: "abcd",
176+
customer_email: "success@eligibility.com",
177+
customer_phone: ""
178+
}
179+
};
180+
181+
await expect(cashfree.PGCreateOrder(request, xApiVersion)).rejects.toMatchObject({
182+
response: {
183+
data: {
184+
code: "customer_details.customer_phone_missing",
185+
type: "invalid_request_error",
186+
message: expect.stringContaining("customer_phone")
187+
}
188+
}
189+
});
190+
});
191+
192+
test("Order Pay Net Banking Test", async () => {
193+
const { sessionId } = await createOrderAndReturnSessionId();
194+
const request = {
195+
payment_session_id: sessionId,
196+
payment_method: {
197+
netbanking: {
198+
netbanking_bank_code: 3087,
199+
channel: "link",
200+
},
201+
},
202+
};
203+
204+
const response = await cashfree.PGPayOrder(request, xApiVersion);
205+
console.log("Response:", response.data);
206+
expect(response.data.channel).toBe("link");
207+
expect(response.data.payment_method).toBe("netbanking");
208+
expect(Number(response.data.payment_amount)).toBeGreaterThanOrEqual(orderAmount);
209+
});
210+
211+
test("Order Pay Card Payment Test", async () => {
212+
const { sessionId } = await createOrderAndReturnSessionId();
213+
const request = {
214+
payment_session_id: sessionId,
215+
payment_method: {
216+
card: {
217+
channel: CardChannelEnum.LINK,
218+
card_number: "4838305610460100",
219+
card_holder_name: "Tushar Gupta",
220+
card_expiry_mm: "06",
221+
card_expiry_yy: "25",
222+
card_cvv: "123",
223+
},
224+
},
225+
};
226+
227+
const response = await cashfree.PGPayOrder(request, xApiVersion);
228+
expect(response.data.channel).toBe("link");
229+
expect(response.data.payment_method).toBe("card");
230+
expect(Number(response.data.payment_amount)).toBeGreaterThanOrEqual(orderAmount);
231+
});
232+
233+
test("Order Pay Card Payment with Empty CVV Test", async () => {
234+
const { sessionId } = await createOrderAndReturnSessionId();
235+
const request = {
236+
payment_session_id: sessionId,
237+
payment_method: {
238+
card: {
239+
channel: CardChannelEnum.LINK,
240+
card_number: "4838305610460100",
241+
card_holder_name: "Tushar Gupta",
242+
card_expiry_mm: "06",
243+
card_expiry_yy: "25",
244+
card_cvv: "",
245+
},
246+
},
247+
};
248+
249+
try {
250+
await cashfree.PGPayOrder(request, xApiVersion);
251+
throw new Error("Expected error but request passed");
252+
} catch (error) {
253+
expect(error.response.data.message).toBe("card_cvv : is missing in the request. Value received: ");
254+
expect(error.response.data.code).toBe("card_cvv_missing");
255+
expect(error.response.data.type).toBe("invalid_request_error");
256+
}
257+
});
258+
259+
test("Order Pay Wallet Test", async () => {
260+
const { sessionId } = await createOrderAndReturnSessionId();
261+
const request = {
262+
payment_session_id: sessionId,
263+
payment_method: {
264+
app: {
265+
provider: AppProviderEnum.PHONEPE,
266+
phone: "8474090512",
267+
channel: "link",
268+
},
269+
},
270+
};
271+
272+
const response = await cashfree.PGPayOrder(request, xApiVersion);
273+
expect(response.status).toBe(200);
274+
});
275+
276+
test("Get Order Test", async () => {
277+
const { orderId } = await createOrderAndReturnSessionId();
278+
const response = await cashfree.PGFetchOrder(orderId, xApiVersion);
279+
expect(response.data.order_currency).toBe("INR");
280+
});
281+
282+
test("Get Payments For an Order Test", async () => {
283+
const { orderId } = await createOrderAndReturnSessionId();
284+
const response = await cashfree.PGOrderFetchPayments(orderId, xApiVersion);
285+
expect(response.status).toBe(200);
286+
});

0 commit comments

Comments
 (0)