@webda/core
Version:
Expose API with Lambda
87 lines • 4.19 kB
JavaScript
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