From 3cf57a0a33c912a5b1fded4ad015c22d909e47e6 Mon Sep 17 00:00:00 2001 From: Tim Fabian Date: Wed, 9 Apr 2025 01:08:41 +0200 Subject: [PATCH] Fixed boolean env values being always true --- package.json | 2 +- .../add/add-angular/add-angular.command.ts | 2 +- .../add/add-loopback/add-loopback.command.ts | 2 +- src/env/env-utilities.test.ts | 27 +++++++------ src/env/env.utilities.ts | 2 +- src/robots/robots-utilities.test.ts | 39 +++++++++++++++++++ 6 files changed, 59 insertions(+), 15 deletions(-) create mode 100644 src/robots/robots-utilities.test.ts diff --git a/package.json b/package.json index 4e2610e..e7ebe66 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "monux-cli", - "version": "2.0.7", + "version": "2.0.8", "license": "MIT", "main": "index.js", "engines": { diff --git a/src/commands/add/add-angular/add-angular.command.ts b/src/commands/add/add-angular/add-angular.command.ts index ae5de9f..a55e8b8 100644 --- a/src/commands/add/add-angular/add-angular.command.ts +++ b/src/commands/add/add-angular/add-angular.command.ts @@ -89,7 +89,7 @@ export class AddAngularCommand extends AddCommand { volumes: [{ path: `/${config.name}` }] // labels: DockerUtilities.getTraefikLabels(config.name, 4000, domain) }, - config.port, + 4000, true, config.subDomain ), diff --git a/src/commands/add/add-loopback/add-loopback.command.ts b/src/commands/add/add-loopback/add-loopback.command.ts index 68644af..4a322af 100644 --- a/src/commands/add/add-loopback/add-loopback.command.ts +++ b/src/commands/add/add-loopback/add-loopback.command.ts @@ -100,7 +100,7 @@ export class AddLoopbackCommand extends AddCommand { }, volumes: [{ path: `/${config.name}` }] }, - config.port, + 3000, true, config.subDomain ), diff --git a/src/env/env-utilities.test.ts b/src/env/env-utilities.test.ts index c5ca296..a305f68 100644 --- a/src/env/env-utilities.test.ts +++ b/src/env/env-utilities.test.ts @@ -18,22 +18,27 @@ describe('EnvUtilities', () => { }); test('addStaticVariable', async () => { - const variable: EnvVariable = fakeEnvVariable(); - await EnvUtilities.addStaticVariable(variable); + for (let i: number = 0; i < 50; i++) { + await FileMockUtilities.setup(mockConstants); + await EnvUtilities.init('test.com'); + + const variable: EnvVariable = fakeEnvVariable(); + await EnvUtilities.addStaticVariable(variable); - const lines: string[] = await FsUtilities.readFileLines(mockConstants.ENV); - expect(lines[2]).toEqual(`${variable.key}=${variable.value}`); + const lines: string[] = await FsUtilities.readFileLines(mockConstants.ENV); + expect(lines[2]).toEqual(`${variable.key}=${variable.value}`); - const variable2: EnvVariable = fakeEnvVariable(); - await EnvUtilities.addStaticVariable(variable2); + const variable2: EnvVariable = fakeEnvVariable(); + await EnvUtilities.addStaticVariable(variable2); - const lines2: string[] = await FsUtilities.readFileLines(mockConstants.ENV); - expect(lines2[3]).toEqual(`${variable2.key}=${variable2.value}`); + const lines2: string[] = await FsUtilities.readFileLines(mockConstants.ENV); + expect(lines2[3]).toEqual(`${variable2.key}=${variable2.value}`); - const globalEnvLines: string[] = await FsUtilities.readFileLines(mockConstants.GLOBAL_ENV_MODEL); + const globalEnvLines: string[] = await FsUtilities.readFileLines(mockConstants.GLOBAL_ENV_MODEL); - expect(globalEnvLines[7]).toEqual(` ${variable.key}${variable.required ? '' : '?'}: ${variable.type},`); - expect(globalEnvLines[8]).toEqual(` ${variable2.key}${variable2.required ? '' : '?'}: ${variable2.type}`); + expect(globalEnvLines[7]).toEqual(` ${variable.key}${variable.required ? '' : '?'}: ${variable.type},`); + expect(globalEnvLines[8]).toEqual(` ${variable2.key}${variable2.required ? '' : '?'}: ${variable2.type}`); + } }); test('addCalculatedVariable', async () => { diff --git a/src/env/env.utilities.ts b/src/env/env.utilities.ts index 4d623d8..5aaefab 100644 --- a/src/env/env.utilities.ts +++ b/src/env/env.utilities.ts @@ -330,7 +330,7 @@ export abstract class EnvUtilities { continue; } if (def.type === 'boolean' && (v === 'true' || v === 'false')) { - res.push({ key: key as EnvironmentVariableKey, value: Boolean(v), type: def.type, required: def.required }); + res.push({ key: key as EnvironmentVariableKey, value: v === 'true', type: def.type, required: def.required }); continue; } if (def.type === 'number' && !Number.isNaN(Number(v))) { diff --git a/src/robots/robots-utilities.test.ts b/src/robots/robots-utilities.test.ts new file mode 100644 index 0000000..70d9046 --- /dev/null +++ b/src/robots/robots-utilities.test.ts @@ -0,0 +1,39 @@ + +import { beforeEach, describe, expect, test } from '@jest/globals'; + +import { FileMockUtilities, getMockConstants, MockConstants } from '../__testing__'; +import { RobotsUtilities } from './robots.utilities'; +import { ROBOTS_FILE_NAME } from '../constants'; +import { FsUtilities } from '../encapsulation'; +import { DefaultEnvKeys, EnvUtilities } from '../env'; +import { getPath } from '../utilities'; + +const mockConstants: MockConstants = getMockConstants('robots-utilities'); + +describe('RobotsUtilities', () => { + + beforeEach(async () => { + await FileMockUtilities.setup(mockConstants, ['ANGULAR_APP_COMPONENT_TS']); + await EnvUtilities.init('test.com'); + await EnvUtilities.addStaticVariable({ key: DefaultEnvKeys.baseUrl('angular'), required: true, type: 'string', value: 'www.test.com' }); + }); + + test('createRobotsTxtForApp', async () => { + const isPublic: boolean = await EnvUtilities.getEnvVariable(DefaultEnvKeys.IS_PUBLIC, 'dev.docker-compose.yaml'); + expect(isPublic).toBe(false); + + await RobotsUtilities.createRobotsTxtForApp({ + path: mockConstants.ANGULAR_APP_DIR, + name: mockConstants.ANGULAR_APP_NAME, + npmWorkspaceString: `apps/${mockConstants.ANGULAR_APP_NAME}` + }, 'dev.docker-compose.yaml'); + + const robotsTxt: string[] = await FsUtilities.readFileLines(getPath(mockConstants.ANGULAR_APP_DIR, 'src', ROBOTS_FILE_NAME)); + expect(robotsTxt).toEqual([ + 'User-agent: *', + 'Disallow: /', + '', + 'Sitemap: www.test.com/sitemap.xml' + ]); + }); +}); \ No newline at end of file