From 8bf5aa77e3f2ab8f209b877c4ceaa66e91e28876 Mon Sep 17 00:00:00 2001 From: Philip Molares Date: Sun, 25 Apr 2021 15:20:51 +0200 Subject: [PATCH 1/2] AppConfig: Move default for rendererOrigin to config file As we only use rendererOrigin in the frontend config service, where domain will be used if it is not defined, it makes more sense to move this default behavior to the app config directly. That makes it easier to understand what this variable contains and that it defaults to domain. Signed-off-by: Philip Molares --- src/config/app.config.ts | 5 ++++- src/frontend-config/frontend-config.service.ts | 4 +--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/config/app.config.ts b/src/config/app.config.ts index c1af96dce..52e593032 100644 --- a/src/config/app.config.ts +++ b/src/config/app.config.ts @@ -20,7 +20,10 @@ export interface AppConfig { const schema = Joi.object({ domain: Joi.string().label('HD_DOMAIN'), - rendererOrigin: Joi.string().optional().label('HD_RENDERER_ORIGIN'), + rendererOrigin: Joi.string() + .default(Joi.ref('domain')) + .optional() + .label('HD_RENDERER_ORIGIN'), port: Joi.number().default(3000).optional().label('PORT'), loglevel: Joi.string() .valid(...Object.values(Loglevel)) diff --git a/src/frontend-config/frontend-config.service.ts b/src/frontend-config/frontend-config.service.ts index 6bb39e4b1..5cb3d7fec 100644 --- a/src/frontend-config/frontend-config.service.ts +++ b/src/frontend-config/frontend-config.service.ts @@ -133,9 +133,7 @@ export class FrontendConfigService { private getIframeCommunication(): IframeCommunicationDto { return { editorOrigin: new URL(this.appConfig.domain), - rendererOrigin: this.appConfig.rendererOrigin - ? new URL(this.appConfig.rendererOrigin) - : new URL(this.appConfig.domain), + rendererOrigin: new URL(this.appConfig.rendererOrigin), }; } From 265f3095e415a6c336e9a57a618aa8b689d80ef2 Mon Sep 17 00:00:00 2001 From: Philip Molares Date: Tue, 27 Apr 2021 23:33:13 +0200 Subject: [PATCH 2/2] FrontendConfig: Fix unit test Emulate the behaviour of the new app config: If renderOrigin is undefined instead use domain. Signed-off-by: Philip Molares --- src/frontend-config/frontend-config.service.spec.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/frontend-config/frontend-config.service.spec.ts b/src/frontend-config/frontend-config.service.spec.ts index d2e90a7e0..34fa83993 100644 --- a/src/frontend-config/frontend-config.service.spec.ts +++ b/src/frontend-config/frontend-config.service.spec.ts @@ -21,6 +21,7 @@ import { Loglevel } from '../config/loglevel.enum'; */ describe('FrontendConfigService', () => { + const domain = 'http://md.example.com'; const emptyAuthConfig: AuthConfig = { email: { enableLogin: false, @@ -183,8 +184,8 @@ describe('FrontendConfigService', () => { ]) { it(`combination #${index} works`, async () => { const appConfig: AppConfig = { - domain: 'http://md.example.com', - rendererOrigin: renderOrigin, + domain: domain, + rendererOrigin: renderOrigin ?? domain, port: 3000, loglevel: Loglevel.ERROR, forbiddenNoteIds: [],