Make changes required for Desktop FS updates (#1099)

Make a set of changes required for Desktop FS improvements, see
https://github.com/gristlabs/grist-desktop/pull/42

---------

Co-authored-by: Spoffy <contact@spoffy.net>
Co-authored-by: Spoffy <4805393+Spoffy@users.noreply.github.com>
This commit is contained in:
Leslie H
2024-09-17 01:01:58 +00:00
committed by GitHub
parent 938bb0666e
commit 02cfcee84d
29 changed files with 552 additions and 447 deletions

View File

@@ -2,7 +2,7 @@ import {delay} from 'app/common/delay';
import {HomeDBManager} from 'app/gen-server/lib/homedb/HomeDBManager';
import {FlexServer} from 'app/server/lib/FlexServer';
import log from 'app/server/lib/log';
import {main as mergedServerMain} from 'app/server/mergedServerMain';
import {MergedServer} from 'app/server/MergedServer';
import axios from 'axios';
import {assert} from 'chai';
import * as fse from 'fs-extra';
@@ -50,12 +50,17 @@ describe('AuthCaching', function() {
setUpDB();
await createInitialDb();
process.env.GRIST_DATA_DIR = testDocDir;
homeServer = await mergedServerMain(0, ['home'],
const homeMS = await MergedServer.create(0, ['home'],
{logToConsole: false, externalStorage: false});
await homeMS.run();
homeServer = homeMS.flexServer;
homeUrl = homeServer.getOwnUrl();
process.env.APP_HOME_URL = homeUrl;
docsServer = await mergedServerMain(0, ['docs'],
const docsMS = await MergedServer.create(0, ['docs'],
{logToConsole: false, externalStorage: false});
await docsMS.run();
docsServer = docsMS.flexServer;
// Helpers for getting cookie-based logins.
session = new TestSession(homeServer);

View File

@@ -14,7 +14,7 @@ import {getDocWorkerMap} from 'app/gen-server/lib/DocWorkerMap';
import {HomeDBManager} from 'app/gen-server/lib/homedb/HomeDBManager';
import * as docUtils from 'app/server/lib/docUtils';
import {FlexServer, FlexServerOptions} from 'app/server/lib/FlexServer';
import {main as mergedServerMain, ServerType} from 'app/server/mergedServerMain';
import {MergedServer, ServerType} from 'app/server/MergedServer';
import axios from 'axios';
import FormData from 'form-data';
import fetch from 'node-fetch';
@@ -37,9 +37,10 @@ export class TestServer {
public async start(servers: ServerType[] = ["home"],
options: FlexServerOptions = {}): Promise<string> {
await createInitialDb();
this.server = await mergedServerMain(0, servers, {logToConsole: isAffirmative(process.env.DEBUG),
externalStorage: false,
...options});
const mergedServer = await MergedServer.create(0, servers, {logToConsole: isAffirmative(process.env.DEBUG),
externalStorage: false, ...options});
await mergedServer.run();
this.server = mergedServer.flexServer;
this.serverUrl = this.server.getOwnUrl();
this.dbManager = this.server.getHomeDBManager();
this.defaultSession = new TestSession(this.server);
@@ -263,7 +264,7 @@ export class TestSession {
if (clearCache) { this.home.getSessions().clearCacheIfNeeded(); }
this.headers.Cookie = cookie;
return {
validateStatus: (status: number) => true,
validateStatus: (_status: number) => true,
headers: {
'Cookie': cookie,
'X-Requested-With': 'XMLHttpRequest',

View File

@@ -2,7 +2,7 @@ import {DocWorkerMap, getDocWorkerMap} from 'app/gen-server/lib/DocWorkerMap';
import {DocStatus, DocWorkerInfo, IDocWorkerMap} from 'app/server/lib/DocWorkerMap';
import {FlexServer} from 'app/server/lib/FlexServer';
import {Permit} from 'app/server/lib/Permit';
import {main as mergedServerMain} from 'app/server/mergedServerMain';
import {MergedServer} from "app/server/MergedServer";
import {delay, promisifyAll} from 'bluebird';
import {assert, expect} from 'chai';
import {countBy, values} from 'lodash';
@@ -387,24 +387,34 @@ describe('DocWorkerMap', function() {
process.env.REDIS_URL = process.env.TEST_REDIS_URL;
// Make home server.
const home = await mergedServerMain(0, ['home'], opts);
const homeMergedServer = await MergedServer.create(0, ['home'], opts);
const home = homeMergedServer.flexServer;
await homeMergedServer.run();
// Make a worker, not associated with any group.
process.env.GRIST_DOC_WORKER_ID = 'worker1';
const docs1 = await mergedServerMain(0, ['docs'], opts);
const docs1MergedServer = await MergedServer.create(0, ['docs'], opts);
const docs1 = docs1MergedServer.flexServer;
await docs1MergedServer.run();
// Make a worker in "special" group.
process.env.GRIST_DOC_WORKER_ID = 'worker2';
process.env.GRIST_WORKER_GROUP = 'special';
const docs2 = await mergedServerMain(0, ['docs'], opts);
const docs2MergedServer = await MergedServer.create(0, ['docs'], opts);
const docs2 = docs2MergedServer.flexServer;
await docs2MergedServer.run();
// Make two worker in "other" group.
process.env.GRIST_DOC_WORKER_ID = 'worker3';
process.env.GRIST_WORKER_GROUP = 'other';
const docs3 = await mergedServerMain(0, ['docs'], opts);
const docs3MergedServer = await MergedServer.create(0, ['docs'], opts);
const docs3 = docs3MergedServer.flexServer;
await docs3MergedServer.run();
process.env.GRIST_DOC_WORKER_ID = 'worker4';
process.env.GRIST_WORKER_GROUP = 'other';
const docs4 = await mergedServerMain(0, ['docs'], opts);
const docs4MergedServer = await MergedServer.create(0, ['docs'], opts);
const docs4 = docs4MergedServer.flexServer;
await docs4MergedServer.run();
servers = {home, docs1, docs2, docs3, docs4};
workers = getDocWorkerMap();

View File

@@ -1,7 +1,7 @@
import {Workspace} from 'app/common/UserAPI';
import {HomeDBManager} from 'app/gen-server/lib/homedb/HomeDBManager';
import {FlexServer} from 'app/server/lib/FlexServer';
import {main as mergedServerMain} from 'app/server/mergedServerMain';
import {MergedServer} from "app/server/MergedServer";
import axios from 'axios';
import {assert} from 'chai';
import {createInitialDb, removeConnection, setUpDB} from 'test/gen-server/seed';
@@ -9,6 +9,7 @@ import {configForUser, createUser, setPlan} from 'test/gen-server/testUtils';
import * as testUtils from 'test/server/testUtils';
describe('mergedOrgs', function() {
let mergedServer: MergedServer;
let home: FlexServer;
let dbManager: HomeDBManager;
let homeUrl: string;
@@ -20,8 +21,10 @@ describe('mergedOrgs', function() {
before(async function() {
setUpDB(this);
await createInitialDb();
home = await mergedServerMain(0, ["home", "docs"],
mergedServer = await MergedServer.create(0, ["home", "docs"],
{logToConsole: false, externalStorage: false});
home = mergedServer.flexServer;
await mergedServer.run();
dbManager = home.getHomeDBManager();
homeUrl = home.getOwnUrl();
});