UNPKG

@webda/core

Version:

Expose API with Lambda

177 lines 7.55 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 { existsSync, unlinkSync, writeFileSync } from "fs"; import { WebdaTest } from "../test.js"; import { getCommonJS } from "../utils/esm.js"; import { FileConfigurationService } from "./fileconfiguration.js"; const { __dirname } = getCommonJS(import.meta.url); let FileConfigurationServiceTest = class FileConfigurationServiceTest extends WebdaTest { getTestConfiguration() { return __dirname + "/../../test/config-file-reload.json"; } async before() { this.cleanFiles.push(__dirname + "/../../test/my-cnf.json"); writeFileSync(__dirname + "/../../test/my-cnf.json", JSON.stringify({ services: { Authentication: { providers: { email: { text: "Test" } } }, ImplicitBean: { implicit: "ok" } } }, undefined, 2)); await super.before(); } async initialLoad() { assert.rejects(() => new FileConfigurationService(this.webda, "except", {}).init(), /Need a source for FileConfigurationService/); assert.rejects(() => new FileConfigurationService(this.webda, "except", { source: "/plops" }).init(), /Need a source for FileConfigurationService/); assert.strictEqual(this.webda.getConfiguration().services.Authentication.providers.email.text, "Test"); assert.strictEqual(this.webda.getConfiguration().services.Authentication.providers.email.mailer, "DefinedMailer"); await new Promise(resolve => { let ok = false; this.webda.getService("FileConfigurationService").on("Configuration.Applied", () => { ok = true; resolve(); }); // Github fs watcher seems to have some issue setTimeout(async () => { if (!ok) { console.log("WARN: Bypass the fs.watch"); await this.webda .getService("FileConfigurationService") // @ts-ignore .checkUpdate(); resolve(); } }, 30000); writeFileSync(__dirname + "/../../test/my-cnf.json", JSON.stringify({ services: { Authentication: { providers: { email: { text: "Plop" } } } } }, undefined, 2)); }); assert.strictEqual(this.webda.getServices()["ImplicitBean"].getParameters()["implicit"], "ok"); assert.strictEqual(this.webda.getConfiguration().services.Authentication.providers.email.text, "Plop"); assert.strictEqual(this.webda.getConfiguration().services.Authentication.providers.email.mailer, "DefinedMailer"); } }; __decorate([ test ], FileConfigurationServiceTest.prototype, "initialLoad", null); FileConfigurationServiceTest = __decorate([ suite ], FileConfigurationServiceTest); let FileConfigurationNoReloadServiceTest = class FileConfigurationNoReloadServiceTest extends WebdaTest { getTestConfiguration() { return __dirname + "/../../test/config-file-no-reload.json"; } async before() { writeFileSync(__dirname + "/../../test/my-cnf.json", JSON.stringify({ services: { Authentication: { providers: { email: { text: "Test2" } } } } }, undefined, 2)); await super.before(); } async initialLoad() { assert.strictEqual(this.webda.getConfiguration().services.Authentication.providers.email.text, "Test2"); assert.strictEqual(this.webda.getConfiguration().services.Authentication.providers.email.mailer, "DefinedMailer"); } }; __decorate([ test ], FileConfigurationNoReloadServiceTest.prototype, "initialLoad", null); FileConfigurationNoReloadServiceTest = __decorate([ suite ], FileConfigurationNoReloadServiceTest); let FileConfigurationNoReloadMissingServiceTest = class FileConfigurationNoReloadMissingServiceTest extends WebdaTest { getTestConfiguration() { return __dirname + "/../../test/config-file-no-reload.json"; } async before() { const filename = __dirname + "/../../test/my-cnf.json"; if (existsSync(filename)) { unlinkSync(filename); } await super.before(); } async initialLoad() { assert.strictEqual(this.webda.getConfiguration().services.Authentication.providers.email.text, "Test"); assert.strictEqual(this.webda.getConfiguration().services.Authentication.providers.email.mailer, "DefinedMailer"); } }; __decorate([ test ], FileConfigurationNoReloadMissingServiceTest.prototype, "initialLoad", null); FileConfigurationNoReloadMissingServiceTest = __decorate([ suite ], FileConfigurationNoReloadMissingServiceTest); let FileConfigurationMissingFileTest = class FileConfigurationMissingFileTest extends WebdaTest { getTestConfiguration() { return __dirname + "/../../test/config-file-missing-file.json"; } async before() { const filename = __dirname + "/../../test/my-missing-file.json"; if (existsSync(filename)) { unlinkSync(filename); } await super.before(); } async initialLoad() { console.log(this.webda.getConfiguration().services.Authentication); assert.strictEqual(this.webda.getConfiguration().services.Authentication.providers.email.text, "MissingTextAutoGenerated"); } }; __decorate([ test ], FileConfigurationMissingFileTest.prototype, "initialLoad", null); FileConfigurationMissingFileTest = __decorate([ suite ], FileConfigurationMissingFileTest); let FileConfigurationMissingFileNoDefaultTest = class FileConfigurationMissingFileNoDefaultTest extends WebdaTest { getTestConfiguration() { return __dirname + "/../../test/config-file-missing-file-no-default.json"; } async before() { const filename = __dirname + "/../../test/my-missing-file.json"; if (existsSync(filename)) { unlinkSync(filename); } await super.before(); } async initialLoad() { assert.strictEqual(this.webda.getConfiguration().services.Authentication.providers.email.text, "Test"); } }; __decorate([ test ], FileConfigurationMissingFileNoDefaultTest.prototype, "initialLoad", null); FileConfigurationMissingFileNoDefaultTest = __decorate([ suite ], FileConfigurationMissingFileNoDefaultTest); //# sourceMappingURL=fileconfiguration.spec.js.map