Files
overleaf/services/docstore/test/unit/js/PersistorManager.test.js
Andrew Rumble a1f1ca2028 Merge pull request #29948 from overleaf/ar/docstore-conversion-to-esm
[docstore] conversion to esm

GitOrigin-RevId: 9d255047bd7ae25f2b0b38f3a721741e8a0b7ad8
2025-12-03 09:05:42 +00:00

58 lines
1.6 KiB
JavaScript

import { describe, expect, it, vi } from 'vitest'
const modulePath = '../../../app/js/PersistorManager.js'
describe('PersistorManager', () => {
class FakePersistor {
async sendStream() {
return 'sent'
}
}
describe('configured', () => {
it('should return fake persistor', async () => {
const Settings = {
docstore: {
backend: 'gcs',
bucket: 'wombat',
},
}
vi.doMock('@overleaf/settings', () => ({
default: Settings,
}))
vi.doMock('@overleaf/object-persistor', () => ({
default: () => new FakePersistor(),
}))
vi.doMock('@overleaf/metrics', () => ({ default: {} }))
const PersistorManger = (await import(modulePath)).default
expect(PersistorManger).to.be.instanceof(FakePersistor)
expect(PersistorManger.sendStream()).to.eventually.equal('sent')
})
})
describe('not configured', () => {
it('should return abstract persistor', async () => {
const Settings = {
docstore: {
backend: undefined,
bucket: 'wombat',
},
}
vi.doMock('@overleaf/settings', () => ({
default: Settings,
}))
vi.doMock('@overleaf/object-persistor', () => ({
default: () => new FakePersistor(),
}))
vi.doMock('@overleaf/metrics', () => ({ default: {} }))
const PersistorManger = (await import(modulePath)).default
expect(PersistorManger.constructor.name).to.equal('AbstractPersistor')
expect(PersistorManger.sendStream()).to.eventually.be.rejectedWith(
/method not implemented in persistor/
)
})
})
})