Skip to content

Commit

Permalink
e2e tests config
Browse files Browse the repository at this point in the history
  • Loading branch information
dbale-altoros committed Oct 24, 2023
1 parent 9971cca commit 17808c7
Show file tree
Hide file tree
Showing 18 changed files with 97 additions and 86 deletions.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
181 changes: 96 additions & 85 deletions e2e/autofix-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -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 }
}
}

Expand Down Expand Up @@ -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
}
Expand All @@ -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
}
Expand All @@ -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)
Expand All @@ -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)
Expand All @@ -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)
Expand All @@ -217,32 +221,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 4', () => {
result = compareTextFiles(currentFile, afterFixFile)
expect(result).to.be.true
})
})
})

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)
Expand All @@ -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

2 changes: 1 addition & 1 deletion e2e/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down

0 comments on commit 17808c7

Please sign in to comment.