@greengreystudio/server-package-nest-settings-manager
Version:
This package is an adaptation of the server-package-settings-manager package for NestJS
66 lines (65 loc) • 2.85 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const testing_1 = require("@nestjs/testing");
const settings_manager_service_1 = require("./settings-manager.service");
const settings_manager_module_1 = require("./settings-manager.module");
const server_package_settings_manager_1 = require("@greengreystudio/server-package-settings-manager");
const mock_data_1 = require("./mocks/mock-data");
const axios_mock_adapter_1 = require("axios-mock-adapter");
const axios_1 = require("axios");
const options = {
cdnUrl: 'http://cdn.example.ru',
version: 'default',
consumer: 'common',
compression: 'json',
};
describe('SettingsManager module', function () {
let service;
let mock;
beforeAll(async () => {
mock = new axios_mock_adapter_1.default(axios_1.default);
mock_data_1.manifestMock(mock, options.cdnUrl, 'json');
mock_data_1.manifestMock(mock, options.cdnUrl, 'gzip');
mock_data_1.exampleSettingMock(mock, options.cdnUrl);
mock_data_1.exampleSingletonMock(mock, options.cdnUrl);
const moduleRef = await testing_1.Test.createTestingModule({
imports: [
settings_manager_module_1.SettingsManagerModule.forRootAsync({
useFactory: () => options,
}),
],
}).compile();
service = moduleRef.get(settings_manager_service_1.SettingsManagerService);
});
afterAll(async () => {
await service.settingsManager.reset();
});
it('SettingsManager must be defined', () => {
expect(service.settingsManager instanceof server_package_settings_manager_1.SettingsManager).toEqual(true);
});
it('SettingsManagerService implements the SettingsManager functionality', async () => {
const _manifest = await service.fetchManifest('common', 'json');
expect(_manifest.manifest).toBeTruthy();
expect(Array.isArray(_manifest.manifest)).toEqual(true);
const etag = service.getManifest('common', 'json').etag;
expect(etag).toEqual(mock_data_1.manifest.etag);
const settings = await service.fetchSetting('exampleSingleton', {
type: "singleton",
});
expect(settings).toBeTruthy();
});
it('Should correctly get setting by id', async () => {
mock_data_1.exampleSettingMock(mock, options.cdnUrl);
const setting = service.getById('exampleSetting', 1);
expect(setting).toStrictEqual({ id: 1, name: 'example1' });
});
it('Should not get not existing setting', async () => {
expect.assertions(1);
try {
service.getById('exampleSetting', 2);
}
catch (err) {
expect(err.message.startsWith('could not find setting exampleSetting with find params')).toBeTruthy();
}
});
});