parent
7c545258cd
commit
dfa5671d38
@ -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