From f0e11e2ac7c29bfaadf6c92b0b6a8e9b9a010147 Mon Sep 17 00:00:00 2001 From: Eric Mc Sween Date: Wed, 21 Sep 2022 09:02:15 -0400 Subject: [PATCH] Merge pull request #9696 from overleaf/em-fix-dropbox-top-level Fix Dropbox metadata collection for top level folders GitOrigin-RevId: a6262968f206cfd3459f2bae628f156d22bccd91 --- .../ThirdPartyDataStore/TpdsController.js | 2 +- .../TpdsControllerTests.js | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/services/web/app/src/Features/ThirdPartyDataStore/TpdsController.js b/services/web/app/src/Features/ThirdPartyDataStore/TpdsController.js index 44cd3a0c33..c114491f5e 100644 --- a/services/web/app/src/Features/ThirdPartyDataStore/TpdsController.js +++ b/services/web/app/src/Features/ThirdPartyDataStore/TpdsController.js @@ -103,7 +103,7 @@ async function updateFolder(req, res) { entityId: metadata.folderId.toString(), projectId: metadata.projectId.toString(), path: metadata.path, - folderId: metadata.parentFolderId.toString(), + folderId: metadata.parentFolderId?.toString() || null, }) } diff --git a/services/web/test/unit/src/ThirdPartyDataStore/TpdsControllerTests.js b/services/web/test/unit/src/ThirdPartyDataStore/TpdsControllerTests.js index 2492c78471..324d052615 100644 --- a/services/web/test/unit/src/ThirdPartyDataStore/TpdsControllerTests.js +++ b/services/web/test/unit/src/ThirdPartyDataStore/TpdsControllerTests.js @@ -201,6 +201,26 @@ describe('TpdsController', function () { this.TpdsController.updateFolder(this.req, this.res) }) + it('supports top level folders', function (done) { + const metadata = { + folderId: ObjectId(), + projectId: ObjectId(), + path: '/', + parentFolderId: null, + } + this.TpdsUpdateHandler.promises.createFolder.resolves(metadata) + this.res.json.callsFake(body => { + expect(body).to.deep.equal({ + entityId: metadata.folderId.toString(), + projectId: metadata.projectId.toString(), + path: metadata.path, + folderId: null, + }) + done() + }) + this.TpdsController.updateFolder(this.req, this.res) + }) + it("returns a 409 if the folder couldn't be created", function (done) { this.TpdsUpdateHandler.promises.createFolder.resolves(null) this.HttpErrorHandler.conflict.callsFake((req, res) => {