Skip to content

Commit 92a0a7a

Browse files
committed
Fixed test suite
1 parent 64e4702 commit 92a0a7a

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

apps/web/app/api/payment/initiate/__tests__/route.test.ts

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,16 @@ import mongoose from "mongoose";
1010
import User from "@models/User";
1111
import { Constants } from "@courselit/common-models";
1212
import Course from "@models/Course";
13+
import PaymentPlan from "@models/PaymentPlan";
1314

1415
jest.mock("@models/Domain");
1516
jest.mock("@models/User");
1617
jest.mock("@models/Course");
18+
jest.mock("@models/PaymentPlan");
1719
jest.mock("@/auth");
20+
jest.mock("../../helpers");
21+
jest.mock("@/graphql/users/logic");
22+
jest.mock("@/payments-new");
1823

1924
describe("Payment Initiate Route", () => {
2025
let mockRequest: NextRequest;
@@ -50,6 +55,35 @@ describe("Payment Initiate Route", () => {
5055
},
5156
});
5257

58+
// Mock PaymentPlan.exists to return true by default
59+
(PaymentPlan.exists as jest.Mock).mockResolvedValue(true);
60+
61+
// Mock PaymentPlan.findOne
62+
(PaymentPlan.findOne as jest.Mock).mockResolvedValue({
63+
planId: "planA",
64+
type: Constants.PaymentPlanType.FREE,
65+
entityId: "course-123",
66+
entityType: Constants.MembershipEntityType.COURSE,
67+
archived: false,
68+
internal: false,
69+
});
70+
71+
// Mock getMembership
72+
const { getMembership } = require("@/graphql/users/logic");
73+
(getMembership as jest.Mock).mockResolvedValue({
74+
membershipId: "membership-123",
75+
userId: "tester",
76+
entityId: "course-123",
77+
entityType: Constants.MembershipEntityType.COURSE,
78+
status: Constants.MembershipStatus.PENDING,
79+
planId: "planA",
80+
save: jest.fn().mockResolvedValue(true),
81+
});
82+
83+
// Mock activateMembership
84+
const { activateMembership } = require("../../helpers");
85+
(activateMembership as jest.Mock).mockResolvedValue(undefined);
86+
5387
// (getUser as jest.Mock).mockResolvedValue({
5488
// userId: 'tester',
5589
// name: 'Tester',
@@ -112,6 +146,10 @@ describe("Payment Initiate Route", () => {
112146
title: "Test Course",
113147
paymentPlans: ["planC", "planB"],
114148
});
149+
150+
// Override PaymentPlan.exists to return false (plan doesn't belong to entity)
151+
(PaymentPlan.exists as jest.Mock).mockResolvedValue(false);
152+
115153
const response = await POST(mockRequest);
116154
expect(response.status).toBe(404);
117155
});

0 commit comments

Comments
 (0)