@webda/core
Version:
Expose API with Lambda
177 lines • 7.55 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 { 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