From 0b82db0abed3dc02fbbf7a7dc74c2ae667f97095 Mon Sep 17 00:00:00 2001 From: Jakob Ackermann Date: Mon, 13 Feb 2023 14:35:17 +0000 Subject: [PATCH] Merge pull request #11804 from overleaf/jpa-fix-fs-persistor-nested-layout [object-persistor] forward settings.useSubdirectories to FSPersistor GitOrigin-RevId: 92cef51c392cfeaebbcca2597740562c1f3fc95f --- .../object-persistor/src/PersistorFactory.js | 1 + .../test/unit/PersistorFactoryTests.js | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/libraries/object-persistor/src/PersistorFactory.js b/libraries/object-persistor/src/PersistorFactory.js index ec7e674ef3..5b779d2786 100644 --- a/libraries/object-persistor/src/PersistorFactory.js +++ b/libraries/object-persistor/src/PersistorFactory.js @@ -14,6 +14,7 @@ function getPersistor(backend, settings) { ) case 'fs': return new FSPersistor({ + useSubdirectories: settings.useSubdirectories, paths: settings.paths, Metrics: settings.Metrics, }) diff --git a/libraries/object-persistor/test/unit/PersistorFactoryTests.js b/libraries/object-persistor/test/unit/PersistorFactoryTests.js index 52de049a42..0bbc6e67ce 100644 --- a/libraries/object-persistor/test/unit/PersistorFactoryTests.js +++ b/libraries/object-persistor/test/unit/PersistorFactoryTests.js @@ -10,6 +10,10 @@ describe('PersistorManager', function () { beforeEach(function () { FSPersistor = class { + constructor(settings) { + this.settings = settings + } + wrappedMethod() { return 'FSPersistor' } @@ -60,6 +64,20 @@ describe('PersistorManager', function () { expect(PersistorFactory(Settings).wrappedMethod()).to.equal('FSPersistor') }) + it('should forward useSubdirectories=true to FSPersistor', function () { + Settings.backend = 'fs' + Settings.useSubdirectories = true + + expect(PersistorFactory(Settings).settings.useSubdirectories).to.be.true + }) + + it('should forward useSubdirectories=false to FSPersistor', function () { + Settings.backend = 'fs' + Settings.useSubdirectories = false + + expect(PersistorFactory(Settings).settings.useSubdirectories).to.be.false + }) + it('should throw an error when the backend is not configured', function () { try { PersistorFactory(Settings)