The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Rocket.Chat/apps/meteor/app/api/server/lib/getServerInfo.spec.ts

60 lines
2.2 KiB

import { expect } from 'chai';
import { describe, it, before } from 'mocha';
import proxyquire from 'proxyquire';
import sinon from 'sinon';
const hasAllPermissionAsyncMock = sinon.stub();
const getCachedSupportedVersionsTokenMock = sinon.stub();
// #ToDo: Fix those tests in a separate PR
describe.skip('#getServerInfo()', () => {
let getServerInfo: any;
before(() => {
const { getServerInfo: importedGetServerInfo } = proxyquire.noCallThru().load('./getServerInfo', {
'../../../utils/rocketchat.info': {
Info: {
version: '3.0.1',
},
},
'../../../authorization/server/functions/hasPermission': {
hasPermissionAsync: hasAllPermissionAsyncMock,
},
'../../../cloud/server/functions/supportedVersionsToken/supportedVersionsToken': {
getCachedSupportedVersionsToken: getCachedSupportedVersionsTokenMock,
},
'../../../settings/server': {
settings: new Map(),
},
});
getServerInfo = importedGetServerInfo;
});
beforeEach(() => {
hasAllPermissionAsyncMock.reset();
getCachedSupportedVersionsTokenMock.reset();
});
it('should return only the version (without the patch info) when the user is not present', async () => {
expect(await getServerInfo(undefined)).to.be.eql({ version: '3.0' });
});
it('should return only the version (without the patch info) when the user present but they dont have permission', async () => {
hasAllPermissionAsyncMock.resolves(false);
expect(await getServerInfo('userId')).to.be.eql({ version: '3.0' });
});
it('should return the info object + the supportedVersions from the cloud when the request to the cloud was a success', async () => {
const signedJwt = 'signedJwt';
hasAllPermissionAsyncMock.resolves(true);
getCachedSupportedVersionsTokenMock.resolves(signedJwt);
expect(await getServerInfo('userId')).to.be.eql({ info: { version: '3.0.1', supportedVersions: signedJwt } });
});
it('should return the info object ONLY from the cloud when the request to the cloud was NOT a success', async () => {
hasAllPermissionAsyncMock.resolves(true);
getCachedSupportedVersionsTokenMock.rejects();
expect(await getServerInfo('userId')).to.be.eql({ info: { version: '3.0.1' } });
});
});