remix-ide
Version:
Minimalistic browser-based Solidity IDE
39 lines (35 loc) • 981 B
JavaScript
const EventEmitter = require('events')
const deepequal = require('deep-equal')
class CreateContract extends EventEmitter {
command (id, debugValue) {
this.api.perform((done) => {
checkDebug(this.api, id, debugValue, () => {
done()
this.emit('complete')
})
})
return this
}
}
function checkDebug (browser, id, debugValue, done) {
// id is soliditylocals or soliditystate
browser.execute(function (id) {
return document.querySelector('#' + id + ' .dropdownrawcontent').innerText
}, [id], function (result) {
console.log(id + ' ' + result.value)
var value
try {
value = JSON.parse(result.value)
} catch (e) {
browser.assert.fail('cant parse solidity state', e.message, '')
done()
return
}
var equal = deepequal(debugValue, value)
if (!equal) {
browser.assert.fail('checkDebug on ' + id, 'info about error', '')
}
done()
})
}
module.exports = CreateContract