44import { NextRequest } from 'next/server'
55import { beforeEach , describe , expect , it , vi } from 'vitest'
66
7- const { mockGetSession, mockVerifyWorkspaceMembership, mockGeneratePdfFromCode } = vi . hoisted (
8- ( ) => ( {
9- mockGetSession : vi . fn ( ) ,
10- mockVerifyWorkspaceMembership : vi . fn ( ) ,
11- mockGeneratePdfFromCode : vi . fn ( ) ,
12- } )
13- )
7+ const { mockGetSession, mockVerifyWorkspaceMembership, mockRunSandboxTask } = vi . hoisted ( ( ) => ( {
8+ mockGetSession : vi . fn ( ) ,
9+ mockVerifyWorkspaceMembership : vi . fn ( ) ,
10+ mockRunSandboxTask : vi . fn ( ) ,
11+ } ) )
1412
1513vi . mock ( '@/lib/auth' , ( ) => ( {
1614 getSession : mockGetSession ,
@@ -20,8 +18,8 @@ vi.mock('@/app/api/workflows/utils', () => ({
2018 verifyWorkspaceMembership : mockVerifyWorkspaceMembership ,
2119} ) )
2220
23- vi . mock ( '@/lib/execution/doc-vm ' , ( ) => ( {
24- generatePdfFromCode : mockGeneratePdfFromCode ,
21+ vi . mock ( '@/lib/execution/sandbox/run-task ' , ( ) => ( {
22+ runSandboxTask : mockRunSandboxTask ,
2523} ) )
2624
2725import { POST } from '@/app/api/workspaces/[id]/pdf/preview/route'
@@ -31,7 +29,7 @@ describe('PDF preview API route', () => {
3129 vi . clearAllMocks ( )
3230 mockGetSession . mockResolvedValue ( { user : { id : 'user-1' } } )
3331 mockVerifyWorkspaceMembership . mockResolvedValue ( true )
34- mockGeneratePdfFromCode . mockResolvedValue ( Buffer . from ( '%PDF-test' ) )
32+ mockRunSandboxTask . mockResolvedValue ( Buffer . from ( '%PDF-test' ) )
3533 } )
3634
3735 it ( 'returns a generated PDF for authorized workspace members' , async ( ) => {
@@ -54,7 +52,11 @@ describe('PDF preview API route', () => {
5452 expect ( response . headers . get ( 'Content-Type' ) ) . toBe ( 'application/pdf' )
5553 expect ( response . headers . get ( 'Cache-Control' ) ) . toBe ( 'private, no-store' )
5654 expect ( mockVerifyWorkspaceMembership ) . toHaveBeenCalledWith ( 'user-1' , 'workspace-1' )
57- expect ( mockGeneratePdfFromCode ) . toHaveBeenCalledWith ( 'return 1' , 'workspace-1' , request . signal )
55+ expect ( mockRunSandboxTask ) . toHaveBeenCalledWith (
56+ 'pdf-generate' ,
57+ { code : 'return 1' , workspaceId : 'workspace-1' } ,
58+ { ownerKey : 'user:user-1' , signal : request . signal }
59+ )
5860 expect ( Buffer . from ( await response . arrayBuffer ( ) ) . toString ( ) ) . toBe ( '%PDF-test' )
5961 } )
6062
@@ -76,6 +78,6 @@ describe('PDF preview API route', () => {
7678
7779 expect ( response . status ) . toBe ( 400 )
7880 await expect ( response . json ( ) ) . resolves . toEqual ( { error : 'code is required' } )
79- expect ( mockGeneratePdfFromCode ) . not . toHaveBeenCalled ( )
81+ expect ( mockRunSandboxTask ) . not . toHaveBeenCalled ( )
8082 } )
8183} )
0 commit comments