diff --git a/src/modules/stdout-parser.ts b/src/modules/stdout-parser.ts index d4751fb..b19de38 100644 --- a/src/modules/stdout-parser.ts +++ b/src/modules/stdout-parser.ts @@ -15,7 +15,7 @@ import { ProjectCache } from './project-cache'; const CACHE_OUTPUT_REGEX: RegExp = - /(\w+)\s*=\s*(\[((\'(\/*\w+)*\'\s*,\s*|(\"(\/*\w+)*\"\s*,\s*)|(\/*\w+)*\s*,\s*|\'(\/*\w+)*\'(?=\])|\"(\/*\w+)*\"(?=\])|(\/*\w+)*(?=\]))*\])|(\'.*?\'|\".*?\"|\w+))\s+\>\>\s+VELOCITAS_CACHE/; + /(\w+)\s*=\s*(\[((?:'[^']*'\s*,\s*|"[^"]*"\s*,\s*|[^\[\],]*\s*,\s*|'[^']*'(?=\])|"[^"]*"(?=\])|[^\[\],]*(?=\]))*)\]|'[^']*'|"[^"]*"|\w+)\s+\>\>\s+VELOCITAS_CACHE/; export function stdOutParser(projectCache: ProjectCache, line: string) { let lineTrimmed = (line as string).trim(); diff --git a/test/system-test/exec.stest.ts b/test/system-test/exec.stest.ts index 61237f5..38b4922 100644 --- a/test/system-test/exec.stest.ts +++ b/test/system-test/exec.stest.ts @@ -85,7 +85,7 @@ describe('CLI command', () => { expect(result.stdout).to.contain('arr2'); expect(result.stdout).to.contain("['/path/test1', '/path/test2']"); expect(result.stdout).to.contain('arr3'); - expect(result.stdout).to.contain("['/path/test1', '/path/test2']"); + expect(result.stdout).to.contain("['./path-one/test1', '/path/test2']"); expect(result.stdout).to.contain('arr4'); expect(result.stdout).to.contain("['/path/test1', '/path/test2']"); }); diff --git a/test/unit/stdout-parser.test.ts b/test/unit/stdout-parser.test.ts index 866841b..c5147fc 100644 --- a/test/unit/stdout-parser.test.ts +++ b/test/unit/stdout-parser.test.ts @@ -38,9 +38,13 @@ describe('stdOutParser - module', () => { ['test_6 = ["/this/is/path/one", "/this/is/path/two"] >> VELOCITAS_CACHE', ['/this/is/path/one', '/this/is/path/two']], ['test_7 =["/this/is/path/one", "/this/is/path/two"] >> VELOCITAS_CACHE', ['/this/is/path/one', '/this/is/path/two']], ['test_8=["/this/is/path/one", "/this/is/path/two"] >> VELOCITAS_CACHE', ['/this/is/path/one', '/this/is/path/two']], - ["test_9 = ['/this/is/path/one', /this/is/path/two] >> VELOCITAS_CACHE", ['/this/is/path/one', '/this/is/path/two']], + [ + "test_9 = ['./this-this/is/path/one', /this/is/path/two] >> VELOCITAS_CACHE", + ['./this-this/is/path/one', '/this/is/path/two'], + ], ['test_10 = [/this/is/path/one, "/this/is/path/two"] >> VELOCITAS_CACHE', ['/this/is/path/one', '/this/is/path/two']], - ['test_11 = [/this/is/path/one, /this/is/path/two] >> VELOCITAS_CACHE', ['/this/is/path/one', '/this/is/path/two']], + ['test_11 = [/this-this/is/path/one, /this/is/path/two] >> VELOCITAS_CACHE', ['/this-this/is/path/one', '/this/is/path/two']], + ['test_12 = [/this-this/is/path/one , /this/is/path/two] >> VELOCITAS_CACHE', ['/this-this/is/path/one', '/this/is/path/two']], ]); it('should match and set project cache correct', () => { @@ -60,9 +64,11 @@ describe('stdOutParser - module', () => { ['test_3 = /this/is/path/one"this/test >> VELOCITAS_CACHE', {}], ['test_4 = ["/this/is/path/one", /this/is/path/two"]', {}], ['test_5 = ["/this/is/path/one""/this/is/path/two"] >> VELOCITAS_CACHE', {}], - ['"test_6" = ["/this/is/path/one", "/this/is/path/two"] >> VELOCITAS_CACHE', {}], - ['test_7 = [/this/is/path/one""/this/is/path/two"] >> VELOCITAS_CACHE', {}], - ["test_8 = ['/this/is/path/one''/this/is/path/two'] >> VELOCITAS_CACHE", {}], + ['test_6 = ["/this/is/path/one", "/this/is/path/two"] >> VELOCITAS_CACHE', {}], + ['"test_7" = ["/this/is"/path/one", "/this/is/path/two"] >> VELOCITAS_CACHE', {}], + ['test_8 = [/this/is/path/one""/this/is/path/two"] >> VELOCITAS_CACHE', {}], + ["test_9 = ['/this/is/path/one''/this/is/path/two'] >> VELOCITAS_CACHE", {}], + ["test_10 = ['/this/is/'path/one','/this/is/path/two'] >> VELOCITAS_CACHE", {}], ]); it('should not match for wrong inputs', async () => { diff --git a/testbench/test-exec/packages/test-package/test-version/set-cache.py b/testbench/test-exec/packages/test-package/test-version/set-cache.py index 665f1b4..febc02f 100644 --- a/testbench/test-exec/packages/test-package/test-version/set-cache.py +++ b/testbench/test-exec/packages/test-package/test-version/set-cache.py @@ -20,5 +20,5 @@ print("arr2=['/path/test1', '/path/test2'] >> VELOCITAS_CACHE") print("arr3=['/path/test1', /path/test2] >> VELOCITAS_CACHE") print('arr4=["/path/test1","/path/test2"] >> VELOCITAS_CACHE') -print('arr5=["/path/test1" ,"/path/test2"] >> VELOCITAS_CACHE') +print('arr5=["./path-one/test1" ,"/path/test2"] >> VELOCITAS_CACHE') print("var=\"asdc' >> VELOCITAS_CACHE")