Skip to content

Commit 6f693c1

Browse files
committed
fixed
1 parent 8a27014 commit 6f693c1

File tree

2 files changed

+20
-14
lines changed

2 files changed

+20
-14
lines changed

apps/sim/app/api/workspaces/[id]/pdf/preview/route.test.ts

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,11 @@
44
import { NextRequest } from 'next/server'
55
import { 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

1513
vi.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

2725
import { 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
})

apps/sim/app/api/workspaces/[id]/pdf/preview/route.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { createLogger } from '@sim/logger'
22
import { type NextRequest, NextResponse } from 'next/server'
33
import { getSession } from '@/lib/auth'
4-
import { generatePdfFromCode } from '@/lib/execution/doc-vm'
4+
import { runSandboxTask } from '@/lib/execution/sandbox/run-task'
55
import { verifyWorkspaceMembership } from '@/app/api/workflows/utils'
66

77
export const dynamic = 'force-dynamic'
@@ -44,7 +44,11 @@ export async function POST(req: NextRequest, { params }: { params: Promise<{ id:
4444
return NextResponse.json({ error: 'code exceeds maximum size' }, { status: 413 })
4545
}
4646

47-
const buffer = await generatePdfFromCode(code, workspaceId, req.signal)
47+
const buffer = await runSandboxTask(
48+
'pdf-generate',
49+
{ code, workspaceId },
50+
{ ownerKey: `user:${session.user.id}`, signal: req.signal }
51+
)
4852

4953
return new NextResponse(new Uint8Array(buffer), {
5054
status: 200,

0 commit comments

Comments
 (0)