mirror of
https://github.com/gristlabs/grist-core.git
synced 2026-03-02 04:09:24 +00:00
* Shutdown Doc worker when it is not considered as available in Redis * Use isAffirmative for GRIST_MANAGED_WORKERS * Upgrade Sinon for the tests * Run Smoke test with pages in English * Add logic in /status endpoint
This commit is contained in:
56
test/gen-server/lib/DocWorkerMap.ts
Normal file
56
test/gen-server/lib/DocWorkerMap.ts
Normal file
@@ -0,0 +1,56 @@
|
||||
// Test for DocWorkerMap.ts
|
||||
|
||||
import { DocWorkerMap } from 'app/gen-server/lib/DocWorkerMap';
|
||||
import { DocWorkerInfo } from 'app/server/lib/DocWorkerMap';
|
||||
import {expect} from 'chai';
|
||||
import sinon from 'sinon';
|
||||
|
||||
describe('DocWorkerMap', () => {
|
||||
const sandbox = sinon.createSandbox();
|
||||
afterEach(() => {
|
||||
sandbox.restore();
|
||||
});
|
||||
|
||||
describe('isWorkerRegistered', () => {
|
||||
const baseWorkerInfo: DocWorkerInfo = {
|
||||
id: 'workerId',
|
||||
internalUrl: 'internalUrl',
|
||||
publicUrl: 'publicUrl',
|
||||
group: undefined
|
||||
};
|
||||
|
||||
[
|
||||
{
|
||||
itMsg: 'should check if worker is registered',
|
||||
sisMemberAsyncResolves: 1,
|
||||
expectedResult: true,
|
||||
expectedKey: 'workers-available-default'
|
||||
},
|
||||
{
|
||||
itMsg: 'should check if worker is registered in a certain group',
|
||||
sisMemberAsyncResolves: 1,
|
||||
group: 'dummygroup',
|
||||
expectedResult: true,
|
||||
expectedKey: 'workers-available-dummygroup'
|
||||
},
|
||||
{
|
||||
itMsg: 'should return false if worker is not registered',
|
||||
sisMemberAsyncResolves: 0,
|
||||
expectedResult: false,
|
||||
expectedKey: 'workers-available-default'
|
||||
}
|
||||
].forEach(ctx => {
|
||||
it(ctx.itMsg, async () => {
|
||||
const sismemberAsyncStub = sinon.stub().resolves(ctx.sisMemberAsyncResolves);
|
||||
const stubDocWorkerMap = {
|
||||
_client: { sismemberAsync: sismemberAsyncStub }
|
||||
};
|
||||
const result = await DocWorkerMap.prototype.isWorkerRegistered.call(
|
||||
stubDocWorkerMap, {...baseWorkerInfo, group: ctx.group }
|
||||
);
|
||||
expect(result).to.equal(ctx.expectedResult);
|
||||
expect(sismemberAsyncStub.calledOnceWith(ctx.expectedKey, baseWorkerInfo.id)).to.equal(true);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user