@@ -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