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/packages/apps/tests/server/accessors/ServerSettingRead.test.ts

42 lines
1.5 KiB

import * as assert from 'node:assert';
import { describe, it } from 'node:test';
import { ServerSettingRead } from '../../../src/server/accessors';
import type { ServerSettingBridge } from '../../../src/server/bridges';
import { TestData } from '../../test-data/utilities';
describe('ServerSettingRead', () => {
it('expectDataFromServerSettingRead', async () => {
const setting = TestData.getSetting('testing');
const theSetting = setting;
const mockServerSettingBridge = {
doGetOneById(id: string, appId: string) {
return Promise.resolve(id === 'testing' ? theSetting : undefined);
},
doIsReadableById(id: string, appId: string): Promise<boolean> {
return Promise.resolve(true);
},
} as ServerSettingBridge;
assert.doesNotThrow(() => new ServerSettingRead(mockServerSettingBridge, 'testing-app'));
const ssr = new ServerSettingRead(mockServerSettingBridge, 'testing-app');
assert.ok((await ssr.getOneById('testing')) !== undefined);
assert.deepStrictEqual(await ssr.getOneById('testing'), setting);
assert.deepStrictEqual(await ssr.getValueById('testing'), setting.packageValue);
setting.value = 'theValue';
assert.strictEqual(await ssr.getValueById('testing'), 'theValue');
await assert.rejects(async () => ssr.getValueById('fake'), {
name: 'Error',
message: 'No Server Setting found, or it is unaccessible, by the id of "fake".',
});
assert.throws(() => ssr.getAll(), {
name: 'Error',
message: 'Method not implemented.',
});
assert.strictEqual(await ssr.isReadableById('testing'), true);
});
});