UNPKG

@greengreystudio/server-package-nest-settings-manager

Version:
66 lines (65 loc) 2.85 kB
"use strict"; 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(); } }); });