From 891dbce95cda176ac45a6aef2ffdfd3d4d1e5cc5 Mon Sep 17 00:00:00 2001 From: jmbeach Date: Wed, 2 Feb 2022 14:59:58 -0500 Subject: [PATCH] make forward slash in output path consistent --- src/cli/utils/ObfuscatedCodeFileUtils.ts | 6 ++++++ test/index.spec.ts | 1 + .../utils/ObfuscatedCodeFileUtils.spec.ts | 17 +++++++++++++++++ 3 files changed, 24 insertions(+) create mode 100644 test/unit-tests/utils/ObfuscatedCodeFileUtils.spec.ts diff --git a/src/cli/utils/ObfuscatedCodeFileUtils.ts b/src/cli/utils/ObfuscatedCodeFileUtils.ts index 599e08e05..de7824f2a 100644 --- a/src/cli/utils/ObfuscatedCodeFileUtils.ts +++ b/src/cli/utils/ObfuscatedCodeFileUtils.ts @@ -61,6 +61,12 @@ export class ObfuscatedCodeFileUtils { if (isDirectoryRawInputPath) { if (isDirectoryRawOutputPath) { const parsedNormalizedFilePath: path.ParsedPath = path.parse(normalizedFilePath); + + // Make ending with "/" consistent + if (!parsedNormalizedFilePath.dir.endsWith('/') && this.inputPath.endsWith('/')) { + parsedNormalizedFilePath.dir += '/'; + } + const baseOutputPath: string = path.join( parsedNormalizedFilePath.dir.replace(this.inputPath, ''), parsedNormalizedFilePath.base diff --git a/test/index.spec.ts b/test/index.spec.ts index 903c6b43d..384ef80f4 100644 --- a/test/index.spec.ts +++ b/test/index.spec.ts @@ -48,6 +48,7 @@ import './unit-tests/utils/CryptUtilsStringArray.spec'; import './unit-tests/utils/EscapeSequenceEncoder.spec'; import './unit-tests/utils/LevelledTopologicalSorter.spec'; import './unit-tests/utils/NumberUtils.spec'; +import './unit-tests/utils/ObfuscatedCodeFileUtils.spec' import './unit-tests/utils/RandomGenerator.spec'; import './unit-tests/utils/StringUtils.spec'; import './unit-tests/utils/Utils.spec'; diff --git a/test/unit-tests/utils/ObfuscatedCodeFileUtils.spec.ts b/test/unit-tests/utils/ObfuscatedCodeFileUtils.spec.ts new file mode 100644 index 000000000..29902bc40 --- /dev/null +++ b/test/unit-tests/utils/ObfuscatedCodeFileUtils.spec.ts @@ -0,0 +1,17 @@ +import { expect } from 'chai'; +import { ObfuscatedCodeFileUtils } from '../../../src/cli/utils/ObfuscatedCodeFileUtils'; + +describe('ObfuscatedCodeFileUtils', () => { + let util: ObfuscatedCodeFileUtils; + + beforeEach(() => { + util = new ObfuscatedCodeFileUtils('src/cli/', { + output: 'src/cli/dist', + }); + }); + + it('should handle input path ending (or not ending) with forward slash', () => { + const result = util.getOutputCodePath('src/cli/app.js'); + expect(result).equals('src/cli/dist/app.js'); + }); +});