From 94fc242afe83315c9a29fed07c379fcb9b5da544 Mon Sep 17 00:00:00 2001 From: Mihajlo Medjedovic Date: Mon, 18 Oct 2021 16:24:10 +0000 Subject: [PATCH] chore: addExtension function fix and testing --- src/routes/index.ts | 2 +- src/utils/file.ts | 8 +++++++- src/utils/spec/file.spec.ts | 11 +++++++++++ 3 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 src/utils/spec/file.spec.ts diff --git a/src/routes/index.ts b/src/routes/index.ts index 263c3ff..d6e5b12 100644 --- a/src/routes/index.ts +++ b/src/routes/index.ts @@ -63,7 +63,7 @@ router.get('/SASjsExecutor/do', async (req, res) => { .replace(new RegExp('/', 'g'), path.sep) // If no extension provided, add .sas extension - sasCodePath += !sasCodePath.includes('.') ? '.sas' : '' + sasCodePath += addExtensionIfNotFound(sasCodePath, 'sas') await new ExecutionController() .execute(sasCodePath, undefined, undefined, { ...req.query }) diff --git a/src/utils/file.ts b/src/utils/file.ts index cb29f48..c1de713 100644 --- a/src/utils/file.ts +++ b/src/utils/file.ts @@ -26,5 +26,11 @@ export const generateUniqueFileName = (fileName: string, extension = '') => ].join('') export const addExtensionIfNotFound = (value: string, extension: string) => { - return !value.includes('.') ? `.${extension}` : '' + const valueSplit = value.split('.') + + if (valueSplit.length < 2) return `.${extension}` + + const hasExt = valueSplit[valueSplit.length - 1].length === 3 + + return !hasExt ? `.${extension}` : '' } diff --git a/src/utils/spec/file.spec.ts b/src/utils/spec/file.spec.ts new file mode 100644 index 0000000..af353e3 --- /dev/null +++ b/src/utils/spec/file.spec.ts @@ -0,0 +1,11 @@ +import { addExtensionIfNotFound } from ".." + +describe('file utils', () => { + it('should add extension if missing', async () => { + expect(addExtensionIfNotFound('test', 'ext')).toEqual('.ext') + expect(addExtensionIfNotFound('test.test', 'ext')).toEqual('.ext') + expect(addExtensionIfNotFound('test.sas', 'ext')).toEqual('') + expect(addExtensionIfNotFound('test.test.test', 'ext')).toEqual('.ext') + expect(addExtensionIfNotFound('test.test.test.sas', 'ext')).toEqual('') + }) +}) \ No newline at end of file