From 2cc2da18a5ed941bc666e8655437a5b0761ad2c1 Mon Sep 17 00:00:00 2001 From: Brian Gough Date: Wed, 14 Dec 2022 11:28:29 +0000 Subject: [PATCH] Merge pull request #10888 from overleaf/bg-case-sensitive-delete Make dropbox deletes case-sensitive GitOrigin-RevId: 090112ce82e38f15079053952db4b0a1544e8300 --- .../Features/Project/ProjectEntityUpdateHandler.js | 2 +- .../src/Project/ProjectEntityUpdateHandlerTests.js | 6 +++++- .../test/unit/src/Project/ProjectLocatorTests.js | 13 +++++++++++++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/services/web/app/src/Features/Project/ProjectEntityUpdateHandler.js b/services/web/app/src/Features/Project/ProjectEntityUpdateHandler.js index 366618c2fe..f6350005a4 100644 --- a/services/web/app/src/Features/Project/ProjectEntityUpdateHandler.js +++ b/services/web/app/src/Features/Project/ProjectEntityUpdateHandler.js @@ -1163,7 +1163,7 @@ const ProjectEntityUpdateHandler = { deleteEntityWithPath: wrapWithLock( (projectId, path, userId, source, callback) => ProjectLocator.findElementByPath( - { project_id: projectId, path }, + { project_id: projectId, path, exactCaseMatch: true }, (err, element, type) => { if (err != null) { return callback(err) diff --git a/services/web/test/unit/src/Project/ProjectEntityUpdateHandlerTests.js b/services/web/test/unit/src/Project/ProjectEntityUpdateHandlerTests.js index d81acb627d..52bbfb3a43 100644 --- a/services/web/test/unit/src/Project/ProjectEntityUpdateHandlerTests.js +++ b/services/web/test/unit/src/Project/ProjectEntityUpdateHandlerTests.js @@ -1632,7 +1632,11 @@ describe('ProjectEntityUpdateHandler', function () { it('finds the entity', function () { this.ProjectLocator.findElementByPath - .calledWith({ project_id: projectId, path: this.path }) + .calledWith({ + project_id: projectId, + path: this.path, + exactCaseMatch: true, + }) .should.equal(true) }) diff --git a/services/web/test/unit/src/Project/ProjectLocatorTests.js b/services/web/test/unit/src/Project/ProjectLocatorTests.js index b3fb8a71d3..4647dd0a55 100644 --- a/services/web/test/unit/src/Project/ProjectLocatorTests.js +++ b/services/web/test/unit/src/Project/ProjectLocatorTests.js @@ -400,6 +400,19 @@ describe('ProjectLocator', function () { ) }) + it('should not return elements with a case-insensitive match when exactCaseMatch is true', function (done) { + const path = `${subFolder.name.toUpperCase()}/${secondSubFolder.name.toUpperCase()}/${subSubFile.name.toUpperCase()}` + this.locator.findElementByPath( + { project, path, exactCaseMatch: true }, + (err, element, type, folder) => { + err.should.not.equal(undefined) + expect(element).to.be.undefined + expect(type).to.be.undefined + done() + } + ) + }) + it('should take a file path and return the element for a nested folder', function (done) { const path = `${subFolder.name}/${secondSubFolder.name}` this.locator.findElementByPath(