feat: Add support for uploading a file directly to the file provider from the client (#12224)

* feat: Add support for uploading a file directly to the file provider from the client

* fix: Add missing types and add a couple of module tests

* fix: Allow nested routes, add test for it
This commit is contained in:
Stevche Radevski
2025-04-18 10:22:00 +02:00
committed by GitHub
parent 6b1d8cd3d4
commit c4a0b63778
11 changed files with 314 additions and 5 deletions
@@ -63,6 +63,31 @@ moduleIntegrationTestRunner<IFileModuleService>({
const downloadUrl = await service.retrieveFile("test.jpg")
expect(await new Response(downloadUrl.url).text()).toEqual("test")
})
it("generates a presigned upload URL", async () => {
const res = await service.getUploadFileUrls({
filename: "test.jpg",
mimeType: "image/jpeg",
})
expect(res).toEqual({
url: "presigned-url/test.jpg",
key: "test.jpg",
})
})
it("fails to get a presigned upload URL if a filename isn't provided", async () => {
const err = await service
.getUploadFileUrls({
filename: "",
mimeType: "image/jpeg",
})
.catch((err) => err)
expect(err.message).toEqual(
"File name is required to get a presigned upload URL"
)
})
})
},
})