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 d23396e
Show file tree
Hide file tree
Showing 18 changed files with 124 additions and 90 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.
212 changes: 123 additions & 89 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 All @@ -24,11 +30,17 @@ function compareTextFiles(file1Path, file2Path) {
}

function copyFile(sourcePath, destinationPath) {
// Read the content from the source file
const content = fs.readFileSync(sourcePath)
// // Read the content from the source file
// const content = fs.readFileSync(sourcePath)

// // Write the content to the destination file, overwriting it if it exists
// fs.writeFileSync(destinationPath, content)

console.log('sourcePath :>> ', sourcePath)
console.log('destinationPath :>> ', destinationPath)
const { code } = shell.cp(sourcePath, destinationPath)
console.log('code :>> ', code)

// Write the content to the destination file, overwriting it if it exists
fs.writeFileSync(destinationPath, content)
}

function useFixture(dir) {
Expand Down Expand Up @@ -56,33 +68,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 +100,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 +122,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 +149,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 +186,57 @@ 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)
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.only('should compare Foo1 file with template beforeFix file and they should match 3', () => {
let stdout

console.log('beforeFixFile :>> ', beforeFixFile)
console.log('currentFile :>> ', currentFile)

stdout = shell.pwd()
console.log('pwd: ', stdout)

stdout = shell.ls(stdout)
console.log('ls: ', stdout)


shell.cd('no-console/')
stdout = shell.pwd()
console.log('pwd no-console: ', stdout)

stdout = shell.ls(stdout)
console.log('ls no-console: ', stdout)


})

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 +246,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 +283,14 @@ 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 d23396e

Please sign in to comment.