UNPKG

@webda/core

Version:

Expose API with Lambda

87 lines 4.19 kB
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; import { suite, test } from "@testdeck/mocha"; import * as assert from "assert"; import { stub } from "sinon"; import { WebdaTest } from "../test.js"; import { getCommonJS } from "../utils/esm.js"; import { ConfigurationService } from "./configuration.js"; const { __filename, __dirname } = getCommonJS(import.meta.url); let ConfigurationServiceTest = class ConfigurationServiceTest extends WebdaTest { getTestConfiguration() { return __dirname + "/../../test/config-reload.json"; } async before() { await super.before(); await this.webda.getService("ConfigurationStore").__clean(); await this.webda.init(); } async after() { await this.webda.getService("ConfigurationStore").__clean(); this.webda.getService("ConfigurationService").stop(); } async init() { let service = new ConfigurationService(this.webda, "name", {}); assert.deepStrictEqual(service.getConfiguration(), {}); // @ts-ignore service.configuration = { test: "plop" }; assert.deepStrictEqual(service.getConfiguration(), { test: "plop" }); await assert.rejects(() => service.init(), /Need a source for ConfigurationService/); service.getParameters().source = "none:plopId"; await assert.rejects(() => service.init(), /Need a valid service for source/); service.getParameters().source = "DefinedMailer"; await assert.rejects(() => service.init(), /Need a valid source/); service.getParameters().source = "DefinedMailer:none"; await assert.rejects(() => service.init(), /Service 'DefinedMailer' is not implementing ConfigurationProvider interface/); await assert.rejects(() => service.initConfiguration(), /ConfigurationService with dependencies cannot be used/); } async initialLoad() { assert.strictEqual(this.webda.getConfiguration().services.Authentication.providers.email.text, "Test"); assert.strictEqual(this.webda.getConfiguration().services.Authentication.providers.email.mailer, "DefinedMailer"); let test = { uuid: "test", services: { Authentication: { providers: { email: { text: "Plop" } } } } }; let store = this.webda.getService("ConfigurationStore"); await new Promise(async (resolve) => { this.webda.getService("ConfigurationService").on("Configuration.Applied", resolve); await store.save(test); }); assert.strictEqual(this.webda.getConfiguration().services.Authentication.providers.email.text, "Plop"); assert.strictEqual(this.webda.getConfiguration().services.Authentication.providers.email.mailer, "DefinedMailer"); let service = this.webda.getService("ConfigurationService"); // @ts-ignore await service.checkUpdate(); // @ts-ignore let mock = stub(service, "loadConfiguration").callsFake(() => { }); // @ts-ignore service.nextCheck = Date.now() + 86400000; // @ts-ignore service.interval = 1; // @ts-ignore await service.checkUpdate(); assert.strictEqual(mock.callCount, 0); } }; __decorate([ test ], ConfigurationServiceTest.prototype, "init", null); __decorate([ test ], ConfigurationServiceTest.prototype, "initialLoad", null); ConfigurationServiceTest = __decorate([ suite ], ConfigurationServiceTest); //# sourceMappingURL=configuration.spec.js.map