diff --git a/src/interfaces/http/controllers/upload-controller.ts b/src/interfaces/http/controllers/upload-controller.ts index 8e1e4d2..4a6664c 100644 --- a/src/interfaces/http/controllers/upload-controller.ts +++ b/src/interfaces/http/controllers/upload-controller.ts @@ -1,3 +1,4 @@ +import { Readable } from 'node:stream'; import { nanoid } from 'nanoid'; import { buildNewFile } from '../../../domain/entities/file-factory'; import { config } from '../../../env'; @@ -206,7 +207,7 @@ const handleMultipartUpload = async (req: Request): Promise => { // Single-message — direct to Telegram storage const forwardResult = await telegramService.forwardToStorage( - Bun.file(prepared.tempPath).stream(), + Readable.from(Bun.file(prepared.tempPath).stream()), finalFileName, fileType, ); @@ -318,7 +319,7 @@ const handleJSONUpload = async (req: Request): Promise => { // Single-message — direct to Telegram storage const forwardResult = await telegramService.forwardToStorage( - Bun.file(prepared.tempPath).stream(), + Readable.from(Bun.file(prepared.tempPath).stream()), finalFileName, fileType, ); diff --git a/test/upload.test.ts b/test/upload.test.ts index 8a68f18..2c364bf 100644 --- a/test/upload.test.ts +++ b/test/upload.test.ts @@ -17,8 +17,6 @@ beforeAll(async () => { 'hex', ); } - // Pre-create temp file for multipart upload test - await Bun.write('/tmp/filedrop-test-photo', realPhotoBuffer); }); // Mock db @@ -113,6 +111,7 @@ describe('Upload Route Handler', () => { mockFileRepo.create.mockClear(); mockForwardToStorage.mockClear(); mockFindByHashResult = null; + nanoidCounter = 0; const uploadRoute = await import('../src/interfaces/http/controllers/upload-controller'); handleUpload = uploadRoute.handleUpload; });