From 8d2dc74a3232af8605e6579aed94bc04d2b4cbf0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julian=20K=C3=B6nig?= <33655937+jkoenig134@users.noreply.github.com> Date: Thu, 19 Dec 2024 11:59:27 +0100 Subject: [PATCH] Allow uploading empty files (#374) * fix: allow uploading empty files * test: update tests --- .../src/useCases/transport/files/UploadOwnFile.ts | 9 --------- packages/runtime/test/transport/files.test.ts | 12 +++++++++--- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/packages/runtime/src/useCases/transport/files/UploadOwnFile.ts b/packages/runtime/src/useCases/transport/files/UploadOwnFile.ts index fc81f0c40..da3ebc3f7 100644 --- a/packages/runtime/src/useCases/transport/files/UploadOwnFile.ts +++ b/packages/runtime/src/useCases/transport/files/UploadOwnFile.ts @@ -44,15 +44,6 @@ class Validator extends SchemaValidator { ); } - if (input.content.length === 0) { - validationResult.addFailure( - new ValidationFailure( - RuntimeErrors.general.invalidPropertyValue(`'${nameof((r) => r.content)}' is empty`), - nameof((r) => r.content) - ) - ); - } - if (input.expiresAt && CoreDate.from(input.expiresAt).isSameOrBefore(CoreDate.utc())) { validationResult.addFailure( new ValidationFailure( diff --git a/packages/runtime/test/transport/files.test.ts b/packages/runtime/test/transport/files.test.ts index 3cfb69699..6d8fa60ab 100644 --- a/packages/runtime/test/transport/files.test.ts +++ b/packages/runtime/test/transport/files.test.ts @@ -67,13 +67,19 @@ describe("File upload", () => { expect(file).toBeDefined(); const response = await transportServices1.files.downloadFile({ id: file.id }); - expect(response.isSuccess).toBeTruthy(); + expect(response).toBeSuccessful(); + expect(response.value.content.byteLength).toBe(4); }); - test("cannot upload an empty file", async () => { + test("can exchange an empty file", async () => { const response = await transportServices1.files.uploadOwnFile(await makeUploadRequest({ content: Buffer.of() })); - expect(response).toBeAnError("'content' is empty", "error.runtime.validation.invalidPropertyValue"); + expect(response).toBeSuccessful(); + + const downloadResponse = await transportServices1.files.downloadFile({ id: response.value.id }); + expect(downloadResponse).toBeSuccessful(); + + expect(downloadResponse.value.content.byteLength).toBe(0); }); test("cannot upload a file that is null", async () => {