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-engine/tests/server/accessors/SettingRead.spec.ts

40 lines
1.5 KiB

import { AsyncTest, Expect, SetupFixture } from 'alsatian';
import type { ProxiedApp } from '../../../src/server/ProxiedApp';
import { SettingRead } from '../../../src/server/accessors';
import type { IAppStorageItem } from '../../../src/server/storage';
import { TestData } from '../../test-data/utilities';
export class SettingReadAccessorTestFixture {
private mockStorageItem: IAppStorageItem;
private mockProxiedApp: ProxiedApp;
@SetupFixture
public setupFixture() {
this.mockStorageItem = {
settings: {},
} as IAppStorageItem;
this.mockStorageItem.settings.testing = TestData.getSetting('testing');
const si = this.mockStorageItem;
this.mockProxiedApp = {
getStorageItem(): IAppStorageItem {
return si;
},
} as ProxiedApp;
}
@AsyncTest()
public async appSettingRead() {
Expect(() => new SettingRead({} as ProxiedApp)).not.toThrow();
const sr = new SettingRead(this.mockProxiedApp);
Expect(await sr.getById('testing')).toBeDefined();
Expect(await sr.getById('testing')).toEqual(TestData.getSetting('testing'));
Expect(await sr.getValueById('testing')).toBe('The packageValue');
this.mockStorageItem.settings.testing.value = 'my value';
Expect(await sr.getValueById('testing')).toBe('my value');
await Expect(() => sr.getValueById('superfake')).toThrowErrorAsync(Error, 'Setting "superfake" does not exist.');
}
}