diff --git a/src/app/ui/txLogger.js b/src/app/ui/txLogger.js index 4ab75bdc34..92f1a260ac 100644 --- a/src/app/ui/txLogger.js +++ b/src/app/ui/txLogger.js @@ -210,7 +210,7 @@ function renderKnownTransaction (self, data, blockchain) { var obj = {from, to} var txType = 'knownTx' var tx = yo` - +
txDetails(e, tx, data, obj)}> ${checkTxStatus(data.receipt, txType)} ${context(self, {from, to, data}, blockchain)} @@ -384,7 +384,8 @@ function txDetails (e, tx, data, obj) { } function createTable (opts) { - var table = yo`
` + console.log('opts: ', opts) + var table = yo`
` if (!opts.isCall) { var msg = '' if (opts.status !== undefined && opts.status !== null) { @@ -399,14 +400,14 @@ function createTable (opts) { table.appendChild(yo` status - ${opts.status}${msg} + ${opts.status}${msg} `) } var transactionHash = yo` transaction hash - ${opts.hash} + ${opts.hash} ${copyToClipboard(() => opts.hash)} @@ -416,7 +417,7 @@ function createTable (opts) { var contractAddress = yo` contract address - ${opts.contractAddress} + ${opts.contractAddress} ${copyToClipboard(() => opts.contractAddress)} @@ -426,7 +427,7 @@ function createTable (opts) { var from = yo` from - ${opts.from} + ${opts.from} ${copyToClipboard(() => opts.from)} @@ -443,7 +444,7 @@ function createTable (opts) { var to = yo` to - ${toHash} + ${toHash} ${copyToClipboard(() => data.to ? data.to : toHash)} @@ -453,7 +454,7 @@ function createTable (opts) { var gas = yo` gas - ${opts.gas} gas + ${opts.gas} gas ${copyToClipboard(() => opts.gas)} @@ -468,7 +469,7 @@ function createTable (opts) { table.appendChild(yo` transaction cost - ${opts.transactionCost} gas ${callWarning} + ${opts.transactionCost} gas ${callWarning} ${copyToClipboard(() => opts.transactionCost)} `) @@ -478,7 +479,7 @@ function createTable (opts) { table.appendChild(yo` execution cost - ${opts.executionCost} gas ${callWarning} + ${opts.executionCost} gas ${callWarning} ${copyToClipboard(() => opts.executionCost)} `) @@ -487,7 +488,7 @@ function createTable (opts) { var hash = yo` hash - ${opts.hash} + ${opts.hash} ${copyToClipboard(() => opts.hash)} @@ -497,7 +498,7 @@ function createTable (opts) { var input = yo` input - ${helper.shortenHexData(opts.input)} + ${helper.shortenHexData(opts.input)} ${copyToClipboard(() => opts.input)} @@ -508,7 +509,7 @@ function createTable (opts) { var inputDecoded = yo` decoded input - ${opts['decoded input']} + ${opts['decoded input']} ${copyToClipboard(() => opts['decoded input'])} ` @@ -519,7 +520,7 @@ function createTable (opts) { var outputDecoded = yo` decoded output - ${opts['decoded output']} + ${opts['decoded output']} ${copyToClipboard(() => opts['decoded output'])} ` @@ -533,7 +534,7 @@ function createTable (opts) { var logs = yo` logs - + ${JSON.stringify(stringified, null, '\t')} ${copyToClipboard(() => JSON.stringify(stringified, null, '\t'))} ${copyToClipboard(() => JSON.stringify(opts.logs.raw || '0'))} @@ -546,7 +547,7 @@ function createTable (opts) { val = yo` value - ${val} wei + ${val} wei ${copyToClipboard(() => `${val} wei`)} diff --git a/test-browser/commands/testFunction.js b/test-browser/commands/testFunction.js index b201158331..9d956c06b7 100644 --- a/test-browser/commands/testFunction.js +++ b/test-browser/commands/testFunction.js @@ -1,54 +1,55 @@ const EventEmitter = require('events') -const deepequal = require('deep-equal') -class TestFunction extends EventEmitter { - command (fnFullName, txHash, log, expectedInput, expectedReturn, expectedEvent, callback) { - this.api.waitForElementPresent('.instance button[title="' + fnFullName + '"]') - .perform(function (client, done) { - client.execute(function () { - document.querySelector('#runTabView').scrollTop = document.querySelector('#runTabView').scrollHeight - }, [], function () { - if (expectedInput) { - client.setValue('#runTabView input[title="' + expectedInput.types + '"]', expectedInput.values, function () {}) - } - done() - }) - }) - .click('.instance button[title="' + fnFullName + '"]') - .pause(500) - .waitForElementPresent('#main-panel div[class^="terminal"] span[id="tx' + txHash + '"]') - .assert.containsText('#main-panel div[class^="terminal"] span[id="tx' + txHash + '"] span', log) - .click('#main-panel div[class^="terminal"] span[id="tx' + txHash + '"] div[class^="log"]') - .perform(function (client, done) { - if (expectedReturn) { - client.getText('#main-panel div[class^="terminal"] span[id="tx' + txHash + '"] table[class^="txTable"] #decodedoutput', (result) => { - console.log(result) - var equal = deepequal(JSON.parse(result.value), JSON.parse(expectedReturn)) - if (!equal) { - client.assert.fail('expected ' + expectedReturn + ' got ' + result.value, 'info about error', '') - } - }) - } - done() - }) - .perform((client, done) => { - if (expectedEvent) { - client.getText('#main-panel div[class^="terminal"] span[id="tx' + txHash + '"] table[class^="txTable"] #logs', (result) => { - console.log(result) - var equal = deepequal(JSON.parse(result.value), JSON.parse(expectedEvent)) - if (!equal) { - client.assert.fail('expected ' + expectedEvent + ' got ' + result.value, 'info about error', '') - } - }) - } - done() - if (callback) { - callback.call(this.api) - } +/* + Checks if any child elements of journal (console) contains a matching value. +*/ +class testTransactionLog extends EventEmitter { + command (txHash, expectedValue) { + const browser = this.api; + browser.perform(() => { + const result = parseTransactionLog(this.api, txHash) + this.emit('complete') }) return this } } -module.exports = TestFunction +function parseTransactionLog(browser, txHash){ + const logs = { + status: '', + 'transaction hash': '', + 'contract address': '', + from: '', + to: '', + gas: '', + 'transaction cost': '', + 'execution cost': '', + hash: '', + input: '', + 'decoded input': '', + 'decoded output': '', + logs: '', + value: '' + } + + browser.waitForElementVisible('txLoggerTable'+txHash) + .getText(`*[data-id="txLoggerTableStatus${txHash}"]`, (result) => logs.status = result) + .getText(`*[data-id="txLoggerTableTransactionHash${txHash}"]`, (result) => logs['transaction hash'] = result) + .getText(`*[data-id="txLoggerTableContractAddress${txHash}"]`, (result) => logs['contract address'] = result) + .getText(`*[data-id="txLoggerTableFrom${txHash}"]`, (result) => logs.from = result) + .getText(`*[data-id="txLoggerTableTo${txHash}"]`, (result) => logs.to = result) + .getText(`*[data-id="txLoggerTableGas${txHash}"]`, (result) => logs.gas = result) + .getText(`*[data-id="txLoggerTableTransactionCost${txHash}"]`, (result) => logs['transaction cost'] = result) + .getText(`*[data-id="txLoggerTableExecutionCost${txHash}"]`, (result) => logs['execution cost'] = result) + .getText(`*[data-id="txLoggerTableHash${txHash}"]`, (result) => logs.hash = result) + .getText(`*[data-id="txLoggerTableInput${txHash}"]`, (result) => logs.input = result) + .getText(`*[data-id="txLoggerTableDecodedInput${txHash}"]`, (result) => logs['decoded input'] = result) + .getText(`*[data-id="txLoggerTableDecodedOutput${txHash}"]`, (result) => logs['decoded output'] = result) + .getText(`*[data-id="txLoggerTableDecodedLogs${txHash}"]`, (result) => logs.logs = result) + .getText(`*[data-id="txLoggerTableDecodedLogs${txHash}"]`, (result) => logs.value = result) + + return logs; +} + +module.exports = testFunction \ No newline at end of file diff --git a/test-browser/tests/ballot.js b/test-browser/tests/ballot.js index 60b4e9b2e7..a74b6e46f6 100644 --- a/test-browser/tests/ballot.js +++ b/test-browser/tests/ballot.js @@ -25,6 +25,8 @@ module.exports = { .click('#runTabView button[class^="instanceButton"]') .waitForElementPresent('.instance:nth-of-type(2)') .click('.instance:nth-of-type(2) > div > button') + .createContract(["0x41fab8ea5b1d9fba5e0a6545ca1a2d62fff518578802c033c2b9a031a01c31b3"]) + .pause(100000) .testFunction('delegate - transact (not payable)', '0x41fab8ea5b1d9fba5e0a6545ca1a2d62fff518578802c033c2b9a031a01c31b3', `[vm]\nfrom:0xca3...a733c\nto:Ballot.delegate(address) 0x692...77b3a\nvalue:0 wei\ndata:0x5c1...4d2db\nlogs:0\nhash:0x41f...c31b3`, {types: 'address to', values: '"0x4b0897b0513fdc7c541b6d9d7e929c4e5364d2db"'}, null, null)