tests fixed

pull/5370/head
aniket-engg 3 years ago committed by Aniket
parent ad2885c9f4
commit de8c657b2e
  1. 102
      libs/remix-tests/src/testRunner.ts

@ -282,65 +282,65 @@ export function runTest (testName: string, testObject: any, contractDetails: Com
} }
if (!sendParams) sendParams = {} if (!sendParams) sendParams = {}
sendParams.gas = 10000000 * 8 sendParams.gas = 10000000 * 8
method.send(sendParams).on('receipt', (receipt) => { method.send(sendParams).on('receipt', async (receipt) => {
try { try {
web3.eth.getHHLogsForTx(receipt.transactionHash).then((hhLogs) => { let hhLogs
const time: number = (Date.now() - startTime) / 1000.0 if (web3.eth && web3.eth.getHHLogsForTx) hhLogs = await web3.eth.getHHLogsForTx(receipt.transactionHash)
const assertionEventHashes = assertionEvents.map(e => Web3.utils.sha3(e.name + '(' + e.params.join() + ')')) const time: number = (Date.now() - startTime) / 1000.0
let testPassed = false const assertionEventHashes = assertionEvents.map(e => Web3.utils.sha3(e.name + '(' + e.params.join() + ')'))
for (const i in receipt.events) { let testPassed = false
let events = receipt.events[i] for (const i in receipt.events) {
if (!Array.isArray(events)) events = [events] let events = receipt.events[i]
for (const event of events) { if (!Array.isArray(events)) events = [events]
const eIndex = assertionEventHashes.indexOf(event.raw.topics[0]) // event name topic will always be at index 0 for (const event of events) {
if (eIndex >= 0) { const eIndex = assertionEventHashes.indexOf(event.raw.topics[0]) // event name topic will always be at index 0
const testEvent = web3.eth.abi.decodeParameters(assertionEvents[eIndex].params, event.raw.data) if (eIndex >= 0) {
if (!testEvent[0]) { const testEvent = web3.eth.abi.decodeParameters(assertionEvents[eIndex].params, event.raw.data)
const assertMethod = testEvent[2] if (!testEvent[0]) {
if (assertMethod === 'ok') { // for 'Assert.ok' method const assertMethod = testEvent[2]
testEvent[3] = 'false' if (assertMethod === 'ok') { // for 'Assert.ok' method
testEvent[4] = 'true' testEvent[3] = 'false'
} testEvent[4] = 'true'
const location = getAssertMethodLocation(fileAST, testName, func.name, assertMethod)
const resp: TestResultInterface = {
type: 'testFailure',
value: changeCase.sentenceCase(func.name),
filename: testObject.filename,
time: time,
errMsg: testEvent[1],
context: testName,
assertMethod,
returned: testEvent[3],
expected: testEvent[4],
location,
hhLogs
}
testCallback(undefined, resp)
failureNum += 1
timePassed += time
return next()
} }
testPassed = true const location = getAssertMethodLocation(fileAST, testName, func.name, assertMethod)
const resp: TestResultInterface = {
type: 'testFailure',
value: changeCase.sentenceCase(func.name),
filename: testObject.filename,
time: time,
errMsg: testEvent[1],
context: testName,
assertMethod,
returned: testEvent[3],
expected: testEvent[4],
location,
}
if (hhLogs) resp.hhLogs = hhLogs
testCallback(undefined, resp)
failureNum += 1
timePassed += time
return next()
} }
testPassed = true
} }
} }
}
if (testPassed) { if (testPassed) {
const resp: TestResultInterface = { const resp: TestResultInterface = {
type: 'testPass', type: 'testPass',
value: changeCase.sentenceCase(func.name), value: changeCase.sentenceCase(func.name),
filename: testObject.filename, filename: testObject.filename,
time: time, time: time,
context: testName, context: testName,
hhLogs
}
testCallback(undefined, resp)
passingNum += 1
timePassed += time
} }
if (hhLogs) resp.hhLogs = hhLogs
testCallback(undefined, resp)
passingNum += 1
timePassed += time
}
return next() return next()
})
} catch (err) { } catch (err) {
console.error(err) console.error(err)
return next(err) return next(err)

Loading…
Cancel
Save