CheckVariableDebug

pull/5370/head
filip mertens 2 years ago
parent ebde39e130
commit a11a6318d7
  1. 33
      apps/remix-ide-e2e/src/commands/checkVariableDebug.ts
  2. 16
      apps/remix-ide-e2e/src/tests/debugger.test.ts

@ -4,7 +4,7 @@ import EventEmitter from 'events'
const deepequal = require('deep-equal') const deepequal = require('deep-equal')
class CheckVariableDebug extends EventEmitter { class CheckVariableDebug extends EventEmitter {
command (this: NightwatchBrowser, id: string, debugValue: NightwatchCheckVariableDebugValue): NightwatchBrowser { command(this: NightwatchBrowser, id: string, debugValue: NightwatchCheckVariableDebugValue): NightwatchBrowser {
this.api.perform((done) => { this.api.perform((done) => {
checkDebug(this.api, id, debugValue, () => { checkDebug(this.api, id, debugValue, () => {
done() done()
@ -15,24 +15,35 @@ class CheckVariableDebug extends EventEmitter {
} }
} }
function checkDebug (browser: NightwatchBrowser, id: string, debugValue: NightwatchCheckVariableDebugValue, done: VoidFunction) { function checkDebug(browser: NightwatchBrowser, id: string, debugValue: NightwatchCheckVariableDebugValue, done: VoidFunction) {
// id is soliditylocals or soliditystate // id is soliditylocals or soliditystate
let resultOfElement = null
let isEqual = false
browser.waitUntil(() => {
browser.execute(function (id: string) { browser.execute(function (id: string) {
const elem = document.querySelector('#' + id + ' .dropdownrawcontent') as HTMLElement const elem = document.querySelector('#' + id + ' .dropdownrawcontent') as HTMLElement
if (elem && elem.innerText) {
console.log(elem.innerText)
return elem.innerText return elem.innerText
}, [id], function (result) { }
let value }, [id], (result) => {
if (result.value) {
console.log(JSON.parse(<string>result.value))
try { try {
value = JSON.parse(<string>result.value) resultOfElement = JSON.parse(<string>result.value)
isEqual = deepequal(debugValue, resultOfElement)
} catch (e) { } catch (e) {
browser.assert.fail('cant parse solidity state', e.message, '') browser.assert.fail('cant parse solidity state', e.message, '')
done() console.log(e)
return
} }
const equal = deepequal(debugValue, value) }
if (!equal) { })
browser.assert.fail(JSON.stringify(value), 'info about error\n ' + JSON.stringify(debugValue) + '\n ' + JSON.stringify(value), '') if (isEqual) return true
return false
}, 10000, 1000)
.perform(() => {
if (!isEqual) {
browser.assert.fail(JSON.stringify(resultOfElement), 'info about error\n ' + JSON.stringify(debugValue) + '\n ' + JSON.stringify(resultOfElement), '')
} }
done() done()
}) })

@ -62,10 +62,10 @@ module.exports = {
browser.waitForElementVisible('#editorView') browser.waitForElementVisible('#editorView')
.execute(() => { .execute(() => {
(window as any).addRemixBreakpoint(11) (window as any).addRemixBreakpoint(11)
}, [], () => {}) }, [], () => { })
.execute(() => { .execute(() => {
(window as any).addRemixBreakpoint(21) (window as any).addRemixBreakpoint(21)
}, [], () => {}) }, [], () => { })
.waitForElementVisible('*[data-id="buttonNavigatorJumpPreviousBreakpoint"]') .waitForElementVisible('*[data-id="buttonNavigatorJumpPreviousBreakpoint"]')
.click('*[data-id="buttonNavigatorJumpPreviousBreakpoint"]') .click('*[data-id="buttonNavigatorJumpPreviousBreakpoint"]')
.pause(2000) .pause(2000)
@ -133,10 +133,6 @@ module.exports = {
selector: '//*[@data-id="treeViewLivm trace step" and contains(.,"133")]', selector: '//*[@data-id="treeViewLivm trace step" and contains(.,"133")]',
}) })
.goToVMTraceStep(261) .goToVMTraceStep(261)
.waitForElementVisible({
locateStrategy: 'xpath',
selector: '//*[@data-id="treeViewLivm trace step" and contains(.,"261")]',
})
.waitForElementPresent('.highlightLine8') .waitForElementPresent('.highlightLine8')
/* /*
for the test below: for the test below:
@ -148,16 +144,8 @@ module.exports = {
*/ */
.goToVMTraceStep(266) .goToVMTraceStep(266)
.waitForElementVisible({
locateStrategy: 'xpath',
selector: '//*[@data-id="treeViewLivm trace step" and contains(.,"266")]',
})
.checkVariableDebug('soliditylocals', localVariable_step266_ABIEncoder) // locals should not be initiated at this point, only idAsk should .checkVariableDebug('soliditylocals', localVariable_step266_ABIEncoder) // locals should not be initiated at this point, only idAsk should
.goToVMTraceStep(717) .goToVMTraceStep(717)
.waitForElementVisible({
locateStrategy: 'xpath',
selector: '//*[@data-id="treeViewLivm trace step" and contains(.,"717")]',
})
.checkVariableDebug('soliditylocals', localVariable_step717_ABIEncoder) // all locals should be initiaed .checkVariableDebug('soliditylocals', localVariable_step717_ABIEncoder) // all locals should be initiaed
.clearTransactions() .clearTransactions()
}, },

Loading…
Cancel
Save