@@ -307,7 +307,37 @@ describe('InvoiceManager', () => {
307307 ) ;
308308 const mockPreviewUpcomingInvoice = InvoicePreviewFactory ( ) ;
309309
310- jest
310+ const spy = jest
311+ . spyOn ( stripeClient , 'invoicesRetrieveUpcoming' )
312+ . mockResolvedValue ( mockUpcomingInvoice ) ;
313+
314+ mockedStripeInvoiceToFirstInvoicePreviewDTO . mockReturnValue (
315+ mockPreviewUpcomingInvoice
316+ ) ;
317+
318+ const result = await invoiceManager . previewUpcomingSubscription ( {
319+ customer : mockCustomer ,
320+ subscription : mockSubscription ,
321+ } ) ;
322+ expect ( result ) . toEqual ( mockPreviewUpcomingInvoice ) ;
323+ expect ( spy ) . toHaveBeenCalledWith ( {
324+ customer : mockCustomer . id ,
325+ subscription : mockSubscription . id ,
326+ subscription_details : {
327+ cancel_at_period_end : false ,
328+ } ,
329+ } ) ;
330+ } ) ;
331+
332+ it ( 'passes empty string discounts when excludeDiscounts is true' , async ( ) => {
333+ const mockCustomer = StripeCustomerFactory ( { currency : 'usd' } ) ;
334+ const mockSubscription = StripeSubscriptionFactory ( ) ;
335+ const mockUpcomingInvoice = StripeResponseFactory (
336+ StripeUpcomingInvoiceFactory ( )
337+ ) ;
338+ const mockPreviewUpcomingInvoice = InvoicePreviewFactory ( ) ;
339+
340+ const spy = jest
311341 . spyOn ( stripeClient , 'invoicesRetrieveUpcoming' )
312342 . mockResolvedValue ( mockUpcomingInvoice ) ;
313343
@@ -318,8 +348,17 @@ describe('InvoiceManager', () => {
318348 const result = await invoiceManager . previewUpcomingSubscription ( {
319349 customer : mockCustomer ,
320350 subscription : mockSubscription ,
351+ excludeDiscounts : true ,
321352 } ) ;
322353 expect ( result ) . toEqual ( mockPreviewUpcomingInvoice ) ;
354+ expect ( spy ) . toHaveBeenCalledWith ( {
355+ customer : mockCustomer . id ,
356+ subscription : mockSubscription . id ,
357+ subscription_details : {
358+ cancel_at_period_end : false ,
359+ } ,
360+ discounts : '' ,
361+ } ) ;
323362 } ) ;
324363 } ) ;
325364
0 commit comments