mirror of
https://github.com/ONLYOFFICE/server.git
synced 2026-02-10 18:05:07 +08:00
[bug] Add storage test with tenant; Fix bug 68563
This commit is contained in:
@ -65,17 +65,17 @@ function isDiffrentPersistentStorage() {
|
||||
async function headObject(ctx, strPath, opt_specialDir) {
|
||||
let storage = getStorage(opt_specialDir);
|
||||
let storageCfg = getStorageCfg(ctx, opt_specialDir);
|
||||
return await storage.headObject(storageCfg, getStoragePath(storageCfg, strPath, opt_specialDir));
|
||||
return await storage.headObject(storageCfg, getStoragePath(ctx, strPath, opt_specialDir));
|
||||
}
|
||||
async function getObject(ctx, strPath, opt_specialDir) {
|
||||
let storage = getStorage(opt_specialDir);
|
||||
let storageCfg = getStorageCfg(ctx, opt_specialDir);
|
||||
return await storage.getObject(storageCfg, getStoragePath(storageCfg, strPath, opt_specialDir));
|
||||
return await storage.getObject(storageCfg, getStoragePath(ctx, strPath, opt_specialDir));
|
||||
}
|
||||
async function createReadStream(ctx, strPath, opt_specialDir) {
|
||||
let storage = getStorage(opt_specialDir);
|
||||
let storageCfg = getStorageCfg(ctx, opt_specialDir);
|
||||
return await storage.createReadStream(storageCfg, getStoragePath(storageCfg, strPath, opt_specialDir));
|
||||
return await storage.createReadStream(storageCfg, getStoragePath(ctx, strPath, opt_specialDir));
|
||||
}
|
||||
async function putObject(ctx, strPath, buffer, contentLength, opt_specialDir) {
|
||||
let storage = getStorage(opt_specialDir);
|
||||
|
||||
@ -262,8 +262,13 @@ function getTenantLicense(ctx) {
|
||||
function getServerLicense(ctx) {
|
||||
return licenseInfo;
|
||||
}
|
||||
let hasBaseDir = !!cfgTenantsBaseDir;
|
||||
function isMultitenantMode(ctx) {
|
||||
return !!cfgTenantsBaseDir;
|
||||
return hasBaseDir;
|
||||
}
|
||||
function setMultitenantMode(val) {
|
||||
//for tests only!!
|
||||
return hasBaseDir = val;
|
||||
}
|
||||
function isDefaultTenant(ctx) {
|
||||
return ctx.tenant === cfgTenantsDefaultTenant;
|
||||
@ -405,4 +410,5 @@ exports.getTenantLicense = getTenantLicense;
|
||||
exports.getServerLicense = getServerLicense;
|
||||
exports.setDefLicense = setDefLicense;
|
||||
exports.isMultitenantMode = isMultitenantMode;
|
||||
exports.setMultitenantMode = setMultitenantMode;
|
||||
exports.isDefaultTenant = isDefaultTenant;
|
||||
|
||||
@ -16,6 +16,7 @@ jest.mock("fs/promises", () => ({
|
||||
const { cp } = require('fs/promises');
|
||||
|
||||
const operationContext = require('../../../Common/sources/operationContext');
|
||||
const tenantManager = require('../../../Common/sources/tenantManager');
|
||||
const storage = require('../../../Common/sources/storage-base');
|
||||
const utils = require('../../../Common/sources/utils');
|
||||
const commonDefines = require("../../../Common/sources/commondefines");
|
||||
@ -52,8 +53,12 @@ function request(url) {
|
||||
});
|
||||
});
|
||||
}
|
||||
function runTestForDir(specialDir) {
|
||||
function runTestForDir(ctx, isMultitenantMode, specialDir) {
|
||||
let oldMultitenantMode = tenantManager.isMultitenantMode();
|
||||
test("start listObjects", async () => {
|
||||
//todo set in all tests do not rely on test order
|
||||
tenantManager.setMultitenantMode(isMultitenantMode);
|
||||
|
||||
let list = await storage.listObjects(ctx, testDir, specialDir);
|
||||
expect(list).toEqual([]);
|
||||
});
|
||||
@ -213,20 +218,32 @@ function runTestForDir(specialDir) {
|
||||
|
||||
list = await storage.listObjects(ctx, testDir, specialDir);
|
||||
expect(list.sort()).toEqual([].sort());
|
||||
|
||||
tenantManager.setMultitenantMode(oldMultitenantMode);
|
||||
});
|
||||
}
|
||||
|
||||
// Assumed, that server is already up.
|
||||
describe('storage common dir', function () {
|
||||
runTestForDir(specialDirCache);
|
||||
runTestForDir(ctx, false, specialDirCache);
|
||||
});
|
||||
|
||||
describe('storage forgotten dir', function () {
|
||||
runTestForDir(specialDirForgotten);
|
||||
runTestForDir(ctx, false, specialDirForgotten);
|
||||
});
|
||||
|
||||
describe('storage common dir with tenants', function () {
|
||||
runTestForDir(ctx, true, specialDirCache);
|
||||
});
|
||||
|
||||
describe('storage forgotten dir with tenants', function () {
|
||||
runTestForDir(ctx, true, specialDirForgotten);
|
||||
});
|
||||
|
||||
describe('storage mix common and forgotten dir', function () {
|
||||
test("putObject", async () => {
|
||||
tenantManager.setMultitenantMode(false);
|
||||
|
||||
let buffer = Buffer.from(testFileData1);
|
||||
let res = await storage.putObject(ctx, testFile1, buffer, buffer.length, specialDirCache);
|
||||
expect(res).toEqual(undefined);
|
||||
|
||||
Reference in New Issue
Block a user