From 17808c7a047ceddf82d4ea968dc51ea7b7489537 Mon Sep 17 00:00:00 2001 From: dbale-altoros Date: Mon, 23 Oct 2023 17:44:05 -0300 Subject: [PATCH] e2e tests config --- .../00-generic => commands}/.solhint.json | 0 .../00-generic => commands}/Foo1.sol | 0 .../00-generic => commands}/Foo1AfterFix.sol | 0 .../00-generic => commands}/Foo1BeforeFix.sol | 0 .../explicit-types/.solhint.json | 0 .../{contracts => }/explicit-types/Foo1.sol | 0 .../explicit-types/Foo1AfterFix.sol | 0 .../explicit-types/Foo1BeforeFix.sol | 0 .../{contracts => }/no-console/.solhint.json | 0 .../{contracts => }/no-console/Foo1.sol | 0 .../no-console/Foo1AfterFix.sol | 0 .../no-console/Foo1BeforeFix.sol | 0 .../private-vars-underscore/.solhint.json | 0 .../private-vars-underscore/Foo1.sol | 0 .../private-vars-underscore/Foo1AfterFix.sol | 0 .../private-vars-underscore/Foo1BeforeFix.sol | 0 e2e/autofix-test.js | 181 ++++++++++-------- e2e/package.json | 2 +- 18 files changed, 97 insertions(+), 86 deletions(-) rename e2e/08-autofix/{contracts/00-generic => commands}/.solhint.json (100%) rename e2e/08-autofix/{contracts/00-generic => commands}/Foo1.sol (100%) rename e2e/08-autofix/{contracts/00-generic => commands}/Foo1AfterFix.sol (100%) rename e2e/08-autofix/{contracts/00-generic => commands}/Foo1BeforeFix.sol (100%) rename e2e/08-autofix/{contracts => }/explicit-types/.solhint.json (100%) rename e2e/08-autofix/{contracts => }/explicit-types/Foo1.sol (100%) rename e2e/08-autofix/{contracts => }/explicit-types/Foo1AfterFix.sol (100%) rename e2e/08-autofix/{contracts => }/explicit-types/Foo1BeforeFix.sol (100%) rename e2e/08-autofix/{contracts => }/no-console/.solhint.json (100%) rename e2e/08-autofix/{contracts => }/no-console/Foo1.sol (100%) rename e2e/08-autofix/{contracts => }/no-console/Foo1AfterFix.sol (100%) rename e2e/08-autofix/{contracts => }/no-console/Foo1BeforeFix.sol (100%) rename e2e/08-autofix/{contracts => }/private-vars-underscore/.solhint.json (100%) rename e2e/08-autofix/{contracts => }/private-vars-underscore/Foo1.sol (100%) rename e2e/08-autofix/{contracts => }/private-vars-underscore/Foo1AfterFix.sol (100%) rename e2e/08-autofix/{contracts => }/private-vars-underscore/Foo1BeforeFix.sol (100%) diff --git a/e2e/08-autofix/contracts/00-generic/.solhint.json b/e2e/08-autofix/commands/.solhint.json similarity index 100% rename from e2e/08-autofix/contracts/00-generic/.solhint.json rename to e2e/08-autofix/commands/.solhint.json diff --git a/e2e/08-autofix/contracts/00-generic/Foo1.sol b/e2e/08-autofix/commands/Foo1.sol similarity index 100% rename from e2e/08-autofix/contracts/00-generic/Foo1.sol rename to e2e/08-autofix/commands/Foo1.sol diff --git a/e2e/08-autofix/contracts/00-generic/Foo1AfterFix.sol b/e2e/08-autofix/commands/Foo1AfterFix.sol similarity index 100% rename from e2e/08-autofix/contracts/00-generic/Foo1AfterFix.sol rename to e2e/08-autofix/commands/Foo1AfterFix.sol diff --git a/e2e/08-autofix/contracts/00-generic/Foo1BeforeFix.sol b/e2e/08-autofix/commands/Foo1BeforeFix.sol similarity index 100% rename from e2e/08-autofix/contracts/00-generic/Foo1BeforeFix.sol rename to e2e/08-autofix/commands/Foo1BeforeFix.sol diff --git a/e2e/08-autofix/contracts/explicit-types/.solhint.json b/e2e/08-autofix/explicit-types/.solhint.json similarity index 100% rename from e2e/08-autofix/contracts/explicit-types/.solhint.json rename to e2e/08-autofix/explicit-types/.solhint.json diff --git a/e2e/08-autofix/contracts/explicit-types/Foo1.sol b/e2e/08-autofix/explicit-types/Foo1.sol similarity index 100% rename from e2e/08-autofix/contracts/explicit-types/Foo1.sol rename to e2e/08-autofix/explicit-types/Foo1.sol diff --git a/e2e/08-autofix/contracts/explicit-types/Foo1AfterFix.sol b/e2e/08-autofix/explicit-types/Foo1AfterFix.sol similarity index 100% rename from e2e/08-autofix/contracts/explicit-types/Foo1AfterFix.sol rename to e2e/08-autofix/explicit-types/Foo1AfterFix.sol diff --git a/e2e/08-autofix/contracts/explicit-types/Foo1BeforeFix.sol b/e2e/08-autofix/explicit-types/Foo1BeforeFix.sol similarity index 100% rename from e2e/08-autofix/contracts/explicit-types/Foo1BeforeFix.sol rename to e2e/08-autofix/explicit-types/Foo1BeforeFix.sol diff --git a/e2e/08-autofix/contracts/no-console/.solhint.json b/e2e/08-autofix/no-console/.solhint.json similarity index 100% rename from e2e/08-autofix/contracts/no-console/.solhint.json rename to e2e/08-autofix/no-console/.solhint.json diff --git a/e2e/08-autofix/contracts/no-console/Foo1.sol b/e2e/08-autofix/no-console/Foo1.sol similarity index 100% rename from e2e/08-autofix/contracts/no-console/Foo1.sol rename to e2e/08-autofix/no-console/Foo1.sol diff --git a/e2e/08-autofix/contracts/no-console/Foo1AfterFix.sol b/e2e/08-autofix/no-console/Foo1AfterFix.sol similarity index 100% rename from e2e/08-autofix/contracts/no-console/Foo1AfterFix.sol rename to e2e/08-autofix/no-console/Foo1AfterFix.sol diff --git a/e2e/08-autofix/contracts/no-console/Foo1BeforeFix.sol b/e2e/08-autofix/no-console/Foo1BeforeFix.sol similarity index 100% rename from e2e/08-autofix/contracts/no-console/Foo1BeforeFix.sol rename to e2e/08-autofix/no-console/Foo1BeforeFix.sol diff --git a/e2e/08-autofix/contracts/private-vars-underscore/.solhint.json b/e2e/08-autofix/private-vars-underscore/.solhint.json similarity index 100% rename from e2e/08-autofix/contracts/private-vars-underscore/.solhint.json rename to e2e/08-autofix/private-vars-underscore/.solhint.json diff --git a/e2e/08-autofix/contracts/private-vars-underscore/Foo1.sol b/e2e/08-autofix/private-vars-underscore/Foo1.sol similarity index 100% rename from e2e/08-autofix/contracts/private-vars-underscore/Foo1.sol rename to e2e/08-autofix/private-vars-underscore/Foo1.sol diff --git a/e2e/08-autofix/contracts/private-vars-underscore/Foo1AfterFix.sol b/e2e/08-autofix/private-vars-underscore/Foo1AfterFix.sol similarity index 100% rename from e2e/08-autofix/contracts/private-vars-underscore/Foo1AfterFix.sol rename to e2e/08-autofix/private-vars-underscore/Foo1AfterFix.sol diff --git a/e2e/08-autofix/contracts/private-vars-underscore/Foo1BeforeFix.sol b/e2e/08-autofix/private-vars-underscore/Foo1BeforeFix.sol similarity index 100% rename from e2e/08-autofix/contracts/private-vars-underscore/Foo1BeforeFix.sol rename to e2e/08-autofix/private-vars-underscore/Foo1BeforeFix.sol diff --git a/e2e/autofix-test.js b/e2e/autofix-test.js index cf69b386..cfd58135 100644 --- a/e2e/autofix-test.js +++ b/e2e/autofix-test.js @@ -8,11 +8,17 @@ const spawnSync = require('spawn-sync') const E2E = true -function retrieveParams() { +let params +let currentConfig +let currentFile +let beforeFixFile +let afterFixFile + +function retrieveParams(subpath) { if (E2E) { - return { command: 'solhint', param1: '' } + return { command: 'solhint', param1: '', path: '', subpath } } else { - return { command: 'node', param1: 'solhint' } + return { command: 'node', param1: 'solhint', path: 'e2e/08-autofix/', subpath } } } @@ -56,33 +62,29 @@ describe('e2e', function () { } describe('autofix command line options', () => { - const commands = retrieveParams() - let PATH = 'e2e/08-autofix/' - let SUBPATH = 'contracts/00-generic/' - let sourceFilePath = `${PATH}${SUBPATH}Foo1BeforeFix.sol` - let currentFile = `${PATH}${SUBPATH}Foo1.sol` + before(function () { + params = retrieveParams('commands/') + currentConfig = `${params.path}${params.subpath}.solhint.json` + currentFile = `${params.path}${params.subpath}Foo1.sol` + beforeFixFile = `${params.path}${params.subpath}Foo1BeforeFix.sol` + afterFixFile = `${params.path}${params.subpath}Foo1AfterFix.sol` + }) describe('--fix without noPrompt', () => { after(function () { - copyFile(sourceFilePath, currentFile) + copyFile(beforeFixFile, currentFile) }) - it('should terminate with --fix and user choose NOT to continue', () => { + it('pwd and ls', () => { + shell.exec(`pwd`) - shell.exec( - `pwd` - ) + shell.exec(`ls`) + }) + it('should terminate with --fix and user choose NOT to continue', () => { const solhintProcess = spawnSync( - `${commands.command}`, - [ - `${commands.param1}`, - '-c', - `${PATH}${SUBPATH}.solhint.json`, - `${PATH}${SUBPATH}Foo1.sol`, - '--fix', - '--disc', - ], + `${params.command}`, + [`${params.param1}`, '-c', currentConfig, currentFile, '--fix', '--disc'], { input: 'n\n', // Provide 'n' as input } @@ -92,23 +94,18 @@ describe('e2e', function () { expect(solhintProcess.stdout.toString().includes('Process terminated by user')) }) - it('should fix with --fix and user choose YES to continue', () => { - sourceFilePath = `${PATH}${SUBPATH}Foo1BeforeFix.sol` - currentFile = `${PATH}${SUBPATH}Foo1.sol` + it('should compare Foo1 file with template beforeFix file and they should match 1', () => { + result = compareTextFiles(currentFile, beforeFixFile) + expect(result).to.be.true + }) - result = compareTextFiles(sourceFilePath, `${PATH}${SUBPATH}Foo1.sol`) + it('should fix with --fix and user choose YES to continue', () => { + result = compareTextFiles(beforeFixFile, currentFile) expect(result).to.be.true const solhintProcess = spawnSync( - `${commands.command}`, - [ - `${commands.param1}`, - '-c', - `${PATH}${SUBPATH}.solhint.json`, - currentFile, - '--fix', - '--disc', - ], + `${params.command}`, + [`${params.param1}`, '-c', currentConfig, currentFile, '--fix', '--disc'], { input: 'y\n', // Provide 'y' as input } @@ -119,24 +116,24 @@ describe('e2e', function () { }) it('should compare resulted file with template file and they should match 1', () => { - result = compareTextFiles(currentFile, `${PATH}${SUBPATH}Foo1AfterFix.sol`) + result = compareTextFiles(currentFile, afterFixFile) expect(result).to.be.true }) }) describe('--fix with noPrompt', () => { after(function () { - copyFile(sourceFilePath, currentFile) + copyFile(beforeFixFile, currentFile) }) - it('should fix file when noPrompt', () => { - sourceFilePath = `${PATH}${SUBPATH}Foo1BeforeFix.sol` - currentFile = `${PATH}${SUBPATH}Foo1.sol` - result = compareTextFiles(sourceFilePath, `${PATH}${SUBPATH}Foo1.sol`) + it('should compare Foo1 file with template beforeFix file and they should match 2', () => { + result = compareTextFiles(currentFile, beforeFixFile) expect(result).to.be.true + }) + it('should fix file when noPrompt', () => { const { code, stdout } = shell.exec( - `${commands.command} ${commands.param1} -c ${PATH}${SUBPATH}.solhint.json ${currentFile} --fix --disc --noPrompt` + `${params.command} ${params.param1} -c ${currentConfig} ${currentFile} --fix --disc --noPrompt` ) expect(code).to.equal(1) @@ -146,33 +143,34 @@ describe('e2e', function () { expect(reportLines[reportLines.length - 3]).to.contain(finalLine) }) - it('files should match', () => { - result = compareTextFiles(currentFile, `${PATH}${SUBPATH}Foo1AfterFix.sol`) + it('should compare resulted file with template file and they should match 2', () => { + result = compareTextFiles(currentFile, afterFixFile) expect(result).to.be.true }) }) - }) describe('autofix rule: explicit-types', () => { describe('--fix with noPrompt', () => { - const commands = retrieveParams() - let PATH = 'e2e/08-autofix/' - let SUBPATH = 'contracts/explicit-types/' - let sourceFilePath = `${PATH}${SUBPATH}Foo1BeforeFix.sol` - let currentFile = `${PATH}${SUBPATH}Foo1.sol` + before(function () { + params = retrieveParams('explicit-types/') + currentConfig = `${params.path}${params.subpath}.solhint.json` + currentFile = `${params.path}${params.subpath}Foo1.sol` + beforeFixFile = `${params.path}${params.subpath}Foo1BeforeFix.sol` + afterFixFile = `${params.path}${params.subpath}Foo1AfterFix.sol` + }) after(function () { - copyFile(sourceFilePath, currentFile) + copyFile(beforeFixFile, currentFile) }) - it('should fix file when noPrompt', () => { - sourceFilePath = `${PATH}${SUBPATH}Foo1BeforeFix.sol` - currentFile = `${PATH}${SUBPATH}Foo1.sol` - result = compareTextFiles(sourceFilePath, `${PATH}${SUBPATH}Foo1.sol`) + it('should compare Foo1 file with template beforeFix file and they should match 3', () => { + result = compareTextFiles(currentFile, beforeFixFile) expect(result).to.be.true + }) + it('should fix file when noPrompt', () => { const { code, stdout } = shell.exec( - `${commands.command} ${commands.param1} -c ${PATH}${SUBPATH}.solhint.json ${currentFile} --fix --disc --noPrompt` + `${params.command} ${params.param1} -c ${currentConfig} ${currentFile} --fix --disc --noPrompt` ) expect(code).to.equal(1) @@ -182,32 +180,38 @@ describe('e2e', function () { expect(reportLines[reportLines.length - 3]).to.contain(finalLine) }) - it('files should match', () => { - result = compareTextFiles(currentFile, `${PATH}${SUBPATH}Foo1AfterFix.sol`) + it('should compare resulted file with template file and they should match 3', () => { + result = compareTextFiles(currentFile, afterFixFile) expect(result).to.be.true }) }) }) - describe('autofix rule: no-console', () => { + describe.only('autofix rule: no-console', () => { describe('--fix with noPrompt', () => { - const commands = retrieveParams() - let PATH = 'e2e/08-autofix/' - let SUBPATH = 'contracts/no-console/' - let sourceFilePath = `${PATH}${SUBPATH}Foo1BeforeFix.sol` - let currentFile = `${PATH}${SUBPATH}Foo1.sol` + before(function () { + params = retrieveParams('no-console/') + currentConfig = `${params.path}${params.subpath}.solhint.json` + currentFile = `${params.path}${params.subpath}Foo1.sol` + beforeFixFile = `${params.path}${params.subpath}Foo1BeforeFix.sol` + afterFixFile = `${params.path}${params.subpath}Foo1AfterFix.sol` + }) after(function () { - copyFile(sourceFilePath, currentFile) + console.log('beforeFixFile :>> ', beforeFixFile) + console.log('currentFile :>> ', currentFile) + shell.exec('pwd') + shell.exec('ls') + copyFile(beforeFixFile, currentFile) }) - it('should fix file when noPrompt', () => { - sourceFilePath = `${PATH}${SUBPATH}Foo1BeforeFix.sol` - currentFile = `${PATH}${SUBPATH}Foo1.sol` - result = compareTextFiles(sourceFilePath, `${PATH}${SUBPATH}Foo1.sol`) + it('should compare Foo1 file with template beforeFix file and they should match 4', () => { + result = compareTextFiles(currentFile, beforeFixFile) expect(result).to.be.true + }) + it('should fix file when noPrompt', () => { const { code, stdout } = shell.exec( - `${commands.command} ${commands.param1} -c ${PATH}${SUBPATH}.solhint.json ${currentFile} --fix --disc --noPrompt` + `${params.command} ${params.param1} -c ${currentConfig} ${currentFile} --fix --disc --noPrompt` ) expect(code).to.equal(1) @@ -217,8 +221,8 @@ describe('e2e', function () { expect(reportLines[reportLines.length - 3]).to.contain(finalLine) }) - it('files should match', () => { - result = compareTextFiles(currentFile, `${PATH}${SUBPATH}Foo1AfterFix.sol`) + it('should compare resulted file with template file and they should match 4', () => { + result = compareTextFiles(currentFile, afterFixFile) expect(result).to.be.true }) }) @@ -226,23 +230,25 @@ describe('e2e', function () { describe('autofix rule: private-vars-leading-underscore', () => { describe('--fix with noPrompt', () => { - const commands = retrieveParams() - let PATH = 'e2e/08-autofix/' - let SUBPATH = 'contracts/private-vars-underscore/' - let sourceFilePath = `${PATH}${SUBPATH}Foo1BeforeFix.sol` - let currentFile = `${PATH}${SUBPATH}Foo1.sol` + before(function () { + params = retrieveParams('private-vars-underscore/') + currentConfig = `${params.path}${params.subpath}.solhint.json` + currentFile = `${params.path}${params.subpath}Foo1.sol` + beforeFixFile = `${params.path}${params.subpath}Foo1BeforeFix.sol` + afterFixFile = `${params.path}${params.subpath}Foo1AfterFix.sol` + }) after(function () { - copyFile(sourceFilePath, currentFile) + copyFile(beforeFixFile, currentFile) }) - it('should fix file when noPrompt', () => { - sourceFilePath = `${PATH}${SUBPATH}Foo1BeforeFix.sol` - currentFile = `${PATH}${SUBPATH}Foo1.sol` - result = compareTextFiles(sourceFilePath, `${PATH}${SUBPATH}Foo1.sol`) + it('should compare Foo1 file with template beforeFix file and they should match 5', () => { + result = compareTextFiles(currentFile, beforeFixFile) expect(result).to.be.true + }) + it('should fix file when noPrompt', () => { const { code, stdout } = shell.exec( - `${commands.command} ${commands.param1} -c ${PATH}${SUBPATH}.solhint.json ${currentFile} --fix --disc --noPrompt` + `${params.command} ${params.param1} -c ${currentConfig} ${currentFile} --fix --disc --noPrompt` ) expect(code).to.equal(1) @@ -252,11 +258,16 @@ describe('e2e', function () { expect(reportLines[reportLines.length - 3]).to.contain(finalLine) }) - it('files should match', () => { - result = compareTextFiles(currentFile, `${PATH}${SUBPATH}Foo1AfterFix.sol`) + it('should compare resulted file with template file and they should match 5', () => { + result = compareTextFiles(currentFile, afterFixFile) expect(result).to.be.true }) }) }) }) }) + + +// FALTA LA COMPARACION DEL FIX CON EL TEMPLATE FIX +// FALTA LA PRUEBA DEL STORE TO FILE + diff --git a/e2e/package.json b/e2e/package.json index a9b7e733..89599093 100644 --- a/e2e/package.json +++ b/e2e/package.json @@ -4,7 +4,7 @@ "description": "E2E tests for solhint", "main": "index.js", "scripts": { - "test": "mocha test.js formatters-test.js autofix-test.js" + "test": "mocha autofix-test.js" }, "author": "", "license": "MIT",