Skip to content

Commit 984f773

Browse files
committed
fix(tests): add orderBy mock for getPreviousFreeGrantAmount query chain
1 parent e8e4048 commit 984f773

File tree

1 file changed

+26
-4
lines changed

1 file changed

+26
-4
lines changed

packages/billing/src/__tests__/grant-credits.test.ts

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -447,15 +447,26 @@ describe('grant-credits', () => {
447447
}
448448
const legacyReferralBonus = 500
449449

450-
// Mock db for calculateTotalLegacyReferralBonus (uses db directly, not tx)
451-
// This mock needs to return the referral query result for the legacy bonus calculation
450+
// Mock db for both getPreviousFreeGrantAmount and calculateTotalLegacyReferralBonus
451+
// getPreviousFreeGrantAmount uses: db.select().from().where().orderBy().limit()
452+
// calculateTotalLegacyReferralBonus uses: db.select().from().where() (returns Promise)
453+
let queryCount = 0
452454
await mockModule('@codebuff/internal/db', () => ({
453455
default: {
454456
select: () => ({
455457
from: () => ({
456458
where: () => {
459+
queryCount++
460+
// First query is getPreviousFreeGrantAmount (needs orderBy chain)
461+
// Second query is calculateTotalLegacyReferralBonus (returns Promise directly)
462+
if (queryCount === 1) {
463+
return {
464+
orderBy: () => ({
465+
limit: () => [], // No previous free grant, use default
466+
}),
467+
}
468+
}
457469
// Return referral bonus for calculateTotalLegacyReferralBonus
458-
// This is a thenable that returns the referral bonus result
459470
return Promise.resolve([{ totalCredits: String(legacyReferralBonus) }])
460471
},
461472
}),
@@ -493,12 +504,23 @@ describe('grant-credits', () => {
493504
}
494505
const legacyReferralBonus = 0 // No legacy referrals
495506

496-
// Mock db for calculateTotalLegacyReferralBonus (uses db directly, not tx)
507+
// Mock db for both getPreviousFreeGrantAmount and calculateTotalLegacyReferralBonus
508+
let queryCount = 0
497509
await mockModule('@codebuff/internal/db', () => ({
498510
default: {
499511
select: () => ({
500512
from: () => ({
501513
where: () => {
514+
queryCount++
515+
// First query is getPreviousFreeGrantAmount (needs orderBy chain)
516+
// Second query is calculateTotalLegacyReferralBonus (returns Promise directly)
517+
if (queryCount === 1) {
518+
return {
519+
orderBy: () => ({
520+
limit: () => [], // No previous free grant, use default
521+
}),
522+
}
523+
}
502524
// Return 0 referral bonus for calculateTotalLegacyReferralBonus
503525
return Promise.resolve([{ totalCredits: String(legacyReferralBonus) }])
504526
},

0 commit comments

Comments
 (0)