diff --git a/packages/builder/src/components/start/ExportAppModal.svelte b/packages/builder/src/components/start/ExportAppModal.svelte index c6f3fceea7..5cc3393a89 100644 --- a/packages/builder/src/components/start/ExportAppModal.svelte +++ b/packages/builder/src/components/start/ExportAppModal.svelte @@ -20,7 +20,7 @@ await downloadFile(url, { excludeRows }) } - export async function downloadFile(url, body) { + async function downloadFile(url, body) { try { const response = await fetch(url, { method: "POST", @@ -51,11 +51,7 @@ notifications.error("Error exporting the app.") } } catch (error) { - let message = "Error downloading the exported app" - if (error.message) { - message += `: ${error.message}` - } - notifications.error("Error downloading the exported app", message) + notifications.error(error.message || "Error downloading the exported app") } } diff --git a/packages/server/src/api/routes/tests/backup.spec.ts b/packages/server/src/api/routes/tests/backup.spec.ts index ef362ef403..92e0176060 100644 --- a/packages/server/src/api/routes/tests/backup.spec.ts +++ b/packages/server/src/api/routes/tests/backup.spec.ts @@ -1,7 +1,9 @@ +import tk from "timekeeper" import * as setup from "./utilities" import { events } from "@budibase/backend-core" import sdk from "../../../sdk" import { checkBuilderEndpoint } from "./utilities/TestFunctions" +import { mocks } from "@budibase/backend-core/tests" describe("/backups", () => { let request = setup.getRequest() @@ -16,7 +18,7 @@ describe("/backups", () => { describe("exportAppDump", () => { it("should be able to export app", async () => { const res = await request - .get(`/api/backups/export?appId=${config.getAppId()}&appname=test`) + .post(`/api/backups/export?appId=${config.getAppId()}`) .set(config.defaultHeaders()) .expect(200) expect(res.headers["content-type"]).toEqual("application/gzip") @@ -26,10 +28,24 @@ describe("/backups", () => { it("should apply authorization to endpoint", async () => { await checkBuilderEndpoint({ config, - method: "GET", + method: "POST", url: `/api/backups/export?appId=${config.getAppId()}`, }) }) + + it("should infer the app name from the app", async () => { + tk.freeze(mocks.date.MOCK_DATE) + + const res = await request + .post(`/api/backups/export?appId=${config.getAppId()}`) + .set(config.defaultHeaders()) + + expect(res.headers["content-disposition"]).toEqual( + `attachment; filename="${ + config.getApp()!.name + }-export-${mocks.date.MOCK_DATE.getTime()}.tar.gz"` + ) + }) }) describe("calculateBackupStats", () => {