parent
839143897c
commit
4ab4a372e3
@ -0,0 +1,31 @@ |
||||
import { NightwatchBrowser } from "nightwatch" |
||||
import EventEmitter from "events" |
||||
|
||||
class clearEditablecontent extends EventEmitter { |
||||
command (this: NightwatchBrowser, cssSelector): NightwatchBrowser { |
||||
this.api.perform((done) => { |
||||
clearContent(this.api, cssSelector, () => { |
||||
done() |
||||
this.emit('complete') |
||||
}) |
||||
}) |
||||
return this |
||||
} |
||||
} |
||||
|
||||
function clearContent (browser, cssSelector, callback) { |
||||
browser.execute(function (cssSelector) { |
||||
const selection = window.getSelection() |
||||
const range = document.createRange() |
||||
|
||||
range.selectNodeContents(document.querySelector(cssSelector)) |
||||
selection.removeAllRanges() |
||||
selection.addRange(range) |
||||
}, [cssSelector], function () { |
||||
browser.sendKeys(cssSelector, browser.Keys.BACK_SPACE) |
||||
.pause(5000) |
||||
callback() |
||||
}) |
||||
} |
||||
|
||||
module.exports = clearEditablecontent |
@ -0,0 +1,19 @@ |
||||
import { NightwatchBrowser } from "nightwatch" |
||||
import EventEmitter from "events" |
||||
|
||||
class ExecuteScript extends EventEmitter { |
||||
command (this: NightwatchBrowser, script: string): NightwatchBrowser { |
||||
this.api |
||||
.clearEditableContent('*[data-id="terminalCliInput"]') |
||||
.click('*[data-id="terminalCli"]') |
||||
.sendKeys('*[data-id="terminalCliInput"]', script) |
||||
.sendKeys('*[data-id="terminalCliInput"]', this.api.Keys.ENTER) |
||||
.sendKeys('*[data-id="terminalCliInput"]', this.api.Keys.ENTER) |
||||
.perform(() => { |
||||
this.emit('complete') |
||||
}) |
||||
return this |
||||
} |
||||
} |
||||
|
||||
module.exports = ExecuteScript |
@ -0,0 +1,103 @@ |
||||
'use strict' |
||||
|
||||
import { NightwatchBrowser } from 'nightwatch' |
||||
import init from '../helpers/init' |
||||
import sauce from './sauce' |
||||
import examples from '../examples/example-contracts' |
||||
|
||||
const sources = [ |
||||
{'browser/Untitled.sol': { content: examples.ballot.content }} |
||||
] |
||||
|
||||
|
||||
module.exports = { |
||||
before: function (browser: NightwatchBrowser, done: VoidFunction) { |
||||
init(browser, done) |
||||
}, |
||||
'@sources': function () { |
||||
return sources |
||||
}, |
||||
|
||||
'Should compile using "compileWithParamaters" API': function (browser: NightwatchBrowser) { |
||||
browser |
||||
.addFile('test_jsCompile.js', { content: jsCompile }) |
||||
.executeScript('remix.exeCurrent()') |
||||
.pause(5000) |
||||
.journalChildIncludes(`version: '0.6.8+commit.0bbfe453'`) |
||||
}, |
||||
|
||||
'Should update the compiler configuration with "setCompilerConfig" API': function (browser: NightwatchBrowser) { |
||||
browser |
||||
.addFile('test_updateConfiguration.js', { content: updateConfiguration }) |
||||
.executeScript('remix.exeCurrent()') |
||||
.pause(5000) |
||||
.addFile('test_updateConfiguration.sol', { content: simpleContract }) |
||||
.verifyContracts(['StorageTestUpdateConfiguration'], {wait: 5000, version: '0.6.8+commit.0bbfe453'}) |
||||
.end() |
||||
}, |
||||
|
||||
tearDown: sauce |
||||
} |
||||
|
||||
const simpleContract = `pragma solidity >=0.4.22 <0.7.0;
|
||||
|
||||
/** |
||||
* @title Storage |
||||
* @dev Store & retreive value in a variable |
||||
*/ |
||||
contract StorageTestUpdateConfiguration { |
||||
|
||||
uint256 number; |
||||
|
||||
/** |
||||
* @dev Store value in variable |
||||
* @param num value to store |
||||
*/ |
||||
function store(uint256 num) public { |
||||
number = num; |
||||
} |
||||
|
||||
/** |
||||
* @dev Return value
|
||||
* @return value of 'number' |
||||
*/ |
||||
function retreive() public view returns (uint256){ |
||||
return number; |
||||
} |
||||
} |
||||
|
||||
` |
||||
|
||||
const jsCompile = `(async () => {
|
||||
|
||||
try { |
||||
const contract = { |
||||
"storage.sol": {content : \`${simpleContract}\` }
|
||||
} |
||||
console.log('compile') |
||||
const params = { |
||||
optimize: false, |
||||
evmVersion: null, |
||||
language: 'Solidity', |
||||
version: '0.6.8+commit.0bbfe453' |
||||
} |
||||
const result = await remix.call('solidity', 'compileWithParameters', contract, params) |
||||
console.log('result ', result) |
||||
} catch (e) { |
||||
console.log(e.message)
|
||||
} |
||||
})()` |
||||
|
||||
const updateConfiguration = `(async () => {
|
||||
try {
|
||||
const params = { |
||||
optimize: false, |
||||
evmVersion: null, |
||||
language: 'Solidity', |
||||
version: '0.6.8+commit.0bbfe453' |
||||
} |
||||
await remix.call('solidity', 'setCompilerConfig', params) |
||||
} catch (e) { |
||||
console.log(e.message)
|
||||
} |
||||
})()` |
Loading…
Reference in new issue