From 49a0bad9629e41db3c44f27229023e625178b607 Mon Sep 17 00:00:00 2001 From: Aneesh Relan Date: Sat, 9 Oct 2021 17:30:06 +0530 Subject: [PATCH] tests: refactor install.test.ts to use jest.each --- __tests__/install.test.ts | 186 +++++++++++++++++++++----------------- 1 file changed, 104 insertions(+), 82 deletions(-) diff --git a/__tests__/install.test.ts b/__tests__/install.test.ts index 6a6af0da..f49cecc3 100644 --- a/__tests__/install.test.ts +++ b/__tests__/install.test.ts @@ -69,93 +69,115 @@ function setEnv( } describe('Install', () => { - it('Test install on windows', async () => { - setEnv('7.0', 'win32', '', '', '', ''); + it.each` + version | extension_csv | ini_values_csv | coverage_driver | tools | output + ${'7.0'} | ${''} | ${''} | ${''} | ${''} | ${new RegExp(`initial script.*pwsh win32.ps1 7.0.*${__dirname}`)} + ${'7.3'} | ${''} | ${''} | ${''} | ${''} | ${new RegExp(`initial script.*pwsh win32.ps1 7.3.*${__dirname}`)} + ${'7.3'} | ${'a, b'} | ${'a=b'} | ${'x'} | ${''} | ${new RegExp(`initial script.*install extensions*set coverage driver.*edit php.ini.*pwsh win32.ps1 7.3.*${__dirname}`)} + `( + 'Test install on windows for $version with extensions=$extension_csv, ini_values=$ini_values_csv, coverage_driver=$coverage_driver, tools=$tools', + async ({ + version, + extension_csv, + ini_values_csv, + coverage_driver, + tools, + output + }) => { + setEnv( + version, + 'win32', + extension_csv, + ini_values_csv, + coverage_driver, + tools + ); - let script: string = '' + (await install.run()); - expect(script).toContain('initial script'); - expect(script).toContain('pwsh win32.ps1 7.0 ' + __dirname); + expect(await install.run()).toMatch(output); + } + ); - setEnv('7.3', 'win32', '', '', '', ''); + it.each` + version | extension_csv | ini_values_csv | coverage_driver | tools | output + ${'7.3'} | ${''} | ${''} | ${''} | ${''} | ${new RegExp(`initial script.*bash linux.sh 7.3`)} + ${'latest'} | ${''} | ${''} | ${''} | ${''} | ${new RegExp(`initial script.*bash linux.sh 8.0`)} + ${'7.3'} | ${'a, b'} | ${'a=b'} | ${'x'} | ${'phpunit'} | ${new RegExp(`initial script.*add_tool.*install extensions.*set coverage driver.*edit php.ini.*bash linux.sh 7.3`)} + `( + 'Test install on linux for $version with extensions=$extension_csv, ini_values=$ini_values_csv, coverage_driver=$coverage_driver, tools=$tools', + async ({ + version, + extension_csv, + ini_values_csv, + coverage_driver, + tools, + output + }) => { + setEnv( + version, + 'linux', + extension_csv, + ini_values_csv, + coverage_driver, + tools + ); - script = '' + (await install.run()); - expect(script).toContain('initial script'); - expect(script).toContain('pwsh win32.ps1 7.3 ' + __dirname); + expect('' + (await install.run())).toMatch(output); + } + ); - setEnv('7.3', 'win32', 'a, b', 'a=b', 'x', ''); + it.each` + version | extension_csv | ini_values_csv | coverage_driver | tools | output + ${'7.3'} | ${''} | ${''} | ${''} | ${''} | ${new RegExp(`initial script.*bash darwin.sh 7.3 .*${__dirname}`)} + ${'7.3'} | ${'a, b'} | ${'a=b'} | ${'x'} | ${''} | ${new RegExp(`initial script.*install extensions.*set coverage driver.*edit php.ini.*bash darwin.sh 7.3 .*${__dirname}`)} + `( + 'Test install on darwin for $version with extensions=$extension_csv, ini_values=$ini_values_csv, coverage_driver=$coverage_driver, tools=$tools', + async ({ + version, + extension_csv, + ini_values_csv, + coverage_driver, + tools, + output + }) => { + setEnv( + version, + 'darwin', + extension_csv, + ini_values_csv, + coverage_driver, + tools + ); - script = '' + (await install.run()); - expect(script).toContain('initial script'); - expect(script).toContain('install extensions'); - expect(script).toContain('edit php.ini'); - expect(script).toContain('set coverage driver'); - expect(script).toContain('pwsh win32.ps1 7.3 ' + __dirname); - }); + expect('' + (await install.run())).toMatch(output); + } + ); - it('Test install on linux', async () => { - setEnv('7.3', 'linux', '', '', '', ''); + it.each` + version | extension_csv | ini_values_csv | coverage_driver | tools | output + ${'7.4.1'} | ${''} | ${''} | ${''} | ${''} | ${new RegExp(`initial script.*bash darwin.sh 7.4 .*${__dirname}`)} + ${'8.0'} | ${''} | ${''} | ${''} | ${''} | ${new RegExp(`initial script.*bash darwin.sh 8.0 .*${__dirname}`)} + ${'8'} | ${''} | ${''} | ${''} | ${''} | ${new RegExp(`initial script.*bash darwin.sh 8.0 .*${__dirname}`)} + ${'8.1'} | ${''} | ${''} | ${''} | ${''} | ${new RegExp(`initial script.*bash darwin.sh 8.1 .*${__dirname}`)} + `( + 'Test malformed version inputs for $version with extensions=$extension_csv, ini_values=$ini_values_csv, coverage_driver=$coverage_driver, tools=$tools', + async ({ + version, + extension_csv, + ini_values_csv, + coverage_driver, + tools, + output + }) => { + setEnv( + version, + 'darwin', + extension_csv, + ini_values_csv, + coverage_driver, + tools + ); - let script: string = '' + (await install.run()); - expect(script).toContain('initial script'); - expect(script).toContain('bash linux.sh 7.3 '); - - setEnv('latest', 'linux', '', '', '', ''); - - script = '' + (await install.run()); - expect(script).toContain('initial script'); - expect(script).toContain('bash linux.sh 8.0 '); - - setEnv('7.3', 'linux', 'a, b', 'a=b', 'x', 'phpunit'); - - script = '' + (await install.run()); - expect(script).toContain('initial script'); - expect(script).toContain('install extensions'); - expect(script).toContain('edit php.ini'); - expect(script).toContain('set coverage driver'); - expect(script).toContain('bash linux.sh 7.3'); - expect(script).toContain('add_tool'); - }); - - it('Test install on darwin', async () => { - setEnv('7.3', 'darwin', '', '', '', ''); - - let script: string = '' + (await install.run()); - expect(script).toContain('initial script'); - expect(script).toContain('bash darwin.sh 7.3 ' + __dirname); - - setEnv('7.3', 'darwin', 'a, b', 'a=b', 'x', ''); - - script = '' + (await install.run()); - expect(script).toContain('initial script'); - expect(script).toContain('install extensions'); - expect(script).toContain('edit php.ini'); - expect(script).toContain('set coverage driver'); - expect(script).toContain('bash darwin.sh 7.3 ' + __dirname); - }); - - it('Test malformed version inputs', async () => { - setEnv('7.4.1', 'darwin', '', '', '', ''); - - let script: string = '' + '' + (await install.run()); - expect(script).toContain('initial script'); - expect(script).toContain('bash darwin.sh 7.4 ' + __dirname); - - setEnv(8.0, 'darwin', '', '', '', ''); - - script = '' + (await install.run()); - expect(script).toContain('initial script'); - expect(script).toContain('bash darwin.sh 8.0 ' + __dirname); - - setEnv(8, 'darwin', '', '', '', ''); - - script = '' + (await install.run()); - expect(script).toContain('initial script'); - expect(script).toContain('bash darwin.sh 8.0 ' + __dirname); - - setEnv(8.1, 'darwin', '', '', '', ''); - - script = '' + (await install.run()); - expect(script).toContain('initial script'); - expect(script).toContain('bash darwin.sh 8.1 ' + __dirname); - }); + expect('' + (await install.run())).toMatch(output); + } + ); });