From bf7cdcc7332f77f6d9d1afd89a0999253fc34312 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Raphael=20H=C3=B6ser?= Date: Thu, 9 Nov 2023 22:49:04 +0100 Subject: [PATCH] chore(test): add some tests for parser bugs This commit adds 10 tests for the string parser with things I (as a dev) expected to work based on other packages. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Raphael Höser --- __tests__/parsEnvironmentFileString.test.js | 53 +++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/__tests__/parsEnvironmentFileString.test.js b/__tests__/parsEnvironmentFileString.test.js index 17c5c1c..8f5367d 100644 --- a/__tests__/parsEnvironmentFileString.test.js +++ b/__tests__/parsEnvironmentFileString.test.js @@ -15,3 +15,56 @@ describe('test filterEmptyLines', () => { expect(typeof array).toEqual('object'); }); }); + +describe('test parseEnvironmentFileString', () => { + test('test "=" in value', () => { + const env = parseEnvironmentFileString('TEST=YG=='); + expect(env.TEST).toEqual('YG=='); + }); + test('test quotation marks "\'\'"', () => { + const env = parseEnvironmentFileString('TEST="\'Some Text\'"'); + expect(env.TEST).toEqual("'Some Text'"); + }); + test('test quotation marks \'""\'', () => { + const env = parseEnvironmentFileString('TEST=\'"Some Text"\''); + expect(env.TEST).toEqual('"Some Text"'); + }); + test('test explicit line break', () => { + const env = parseEnvironmentFileString('TEST=Some Text\\nMore Text'); + expect(env.TEST).toEqual('Some Text\nMore Text'); + }); + test('test double backslash', () => { + const env = parseEnvironmentFileString('TEST=Some Text\\\\More Text'); + expect(env.TEST).toEqual('Some Text\\More Text'); + }); + test('test eol \\n', () => { + const env = parseEnvironmentFileString('TEST=Some Text\nTEST2=More Text'); + expect(env.TEST).toEqual('Some Text'); + expect(env.TEST2).toEqual('More Text'); + }) + test('test eol \\r\\n', () => { + const env = parseEnvironmentFileString('TEST=Some Text\r\nTEST2=More Text'); + expect(env.TEST).toEqual('Some Text'); + expect(env.TEST2).toEqual('More Text'); + }) + test('test value with #', () => { + const env = parseEnvironmentFileString('TEST=Some Text#More Text'); + expect(env.TEST).toEqual('Some Text#More Text'); + }); + test('test lowercase variable names', () => { + const env = parseEnvironmentFileString('test=Some Text'); + expect(env.test).toEqual('Some Text'); + }); + test('test lowercase variable name replacement', () => { + const env = parseEnvironmentFileString('testing=def\ntest=abc${testing}'); + expect(env.test).toEqual("abcdef"); + }); + test('test uppercase variable name replacement', () => { + const env = parseEnvironmentFileString('TESTING=def\ntest=abc${TESTING}'); + expect(env.test).toEqual("abcdef"); + }); + test('test allow numbers in variable name', () => { + const env = parseEnvironmentFileString('TESTING123=def\ntest=abc${TESTING123}'); + expect(env.test).toEqual("abcdef"); + }); +});