parent
daafb7332d
commit
8b18d1088d
@ -0,0 +1,96 @@ |
||||
'use strict' |
||||
import { NightwatchBrowser } from 'nightwatch' |
||||
import init from '../helpers/init' |
||||
|
||||
declare global { |
||||
interface Window { testplugin: { name: string, url: string }; } |
||||
} |
||||
|
||||
module.exports = { |
||||
'@disabled': true, |
||||
before: function (browser: NightwatchBrowser, done: VoidFunction) { |
||||
init(browser, done, null, true, { name: 'vyper', url: 'http://127.0.0.1:5002'}) |
||||
}, |
||||
|
||||
'Should connect to vyper plugin #group1': function (browser: NightwatchBrowser) { |
||||
browser.clickLaunchIcon('pluginManager') |
||||
.scrollAndClick('[data-id="pluginManagerComponentActivateButtonvyper"]') |
||||
.clickLaunchIcon('vyper') |
||||
.pause(5000) |
||||
// @ts-ignore
|
||||
.frame(0) |
||||
}, |
||||
|
||||
'Should add the Ballot.vy #group1': function (browser: NightwatchBrowser) { |
||||
browser.click('button[data-id="add-ballot"]') |
||||
.frameParent() |
||||
.openFile('ballot.vy') |
||||
}, |
||||
|
||||
'Compile ballot.vy should error #group1': function (browser: NightwatchBrowser) { |
||||
browser.clickLaunchIcon('vyper') |
||||
// @ts-ignore
|
||||
.frame(0) |
||||
.click('[data-id="remote-compiler"]') |
||||
.click('[data-id="compile"]') |
||||
.assert.containsText('[data-id="error-message"]', 'unexpected indent') |
||||
}, |
||||
|
||||
'Compile test contract should success #group1': function (browser: NightwatchBrowser) { |
||||
let contractAddress |
||||
browser |
||||
.frameParent() |
||||
.addFile('test.vy', { content: testContract }) |
||||
.clickLaunchIcon('vyper') |
||||
// @ts-ignore
|
||||
.frame(0) |
||||
.click('[data-id="compile"]') |
||||
.frameParent() |
||||
.clickLaunchIcon('udapp') |
||||
.createContract('') |
||||
.clickInstance(0) |
||||
.clickFunction('totalPokemonCount - call') |
||||
.getAddressAtPosition(0, (address) => { |
||||
console.log('Vyper contract ' + address) |
||||
contractAddress = address |
||||
}) |
||||
.perform((done) => { |
||||
browser.verifyCallReturnValue(contractAddress, ['0:uint256: 0']) |
||||
.perform(() => done()) |
||||
}) |
||||
} |
||||
} |
||||
|
||||
const testContract = ` |
||||
# @version >=0.2.4 <0.3.0 |
||||
|
||||
DNA_DIGITS: constant(uint256) = 16 |
||||
DNA_MODULUS: constant(uint256) = 10 ** DNA_DIGITS |
||||
# add HP_LIMIT |
||||
|
||||
struct Pokemon: |
||||
name: String[32] |
||||
dna: uint256 |
||||
HP: uint256 |
||||
matches: uint256 |
||||
wins: uint256 |
||||
|
||||
totalPokemonCount: public(uint256) |
||||
pokemonList: HashMap[uint256, Pokemon] |
||||
|
||||
@pure |
||||
@internal |
||||
def _generateRandomDNA(_name: String[32]) -> uint256: |
||||
random: uint256 = convert(keccak256(_name), uint256) |
||||
return random % DNA_MODULUS |
||||
# modify _createPokemon |
||||
@internal |
||||
def _createPokemon(_name: String[32], _dna: uint256, _HP: uint256): |
||||
self.pokemonList[self.totalPokemonCount] = Pokemon({ |
||||
name: _name, |
||||
dna: _dna, |
||||
HP: _HP, |
||||
matches: 0, |
||||
wins: 0 |
||||
}) |
||||
self.totalPokemonCount += 1` |
@ -0,0 +1,25 @@ |
||||
#!/usr/bin/env bash |
||||
|
||||
set -e |
||||
|
||||
BUILD_ID=${CIRCLE_BUILD_NUM:-${TRAVIS_JOB_NUMBER}} |
||||
echo "$BUILD_ID" |
||||
TEST_EXITCODE=0 |
||||
|
||||
yarn run serve:production & |
||||
npx nx serve vyper & |
||||
|
||||
sleep 5 |
||||
|
||||
yarn run build:e2e |
||||
|
||||
TESTFILES=$(grep -IRiL "\'@disabled\': \?true" "dist/apps/remix-ide-e2e/src/tests" | grep "vyper_api" | sort | circleci tests split ) |
||||
for TESTFILE in $TESTFILES; do |
||||
npx nightwatch --config dist/apps/remix-ide-e2e/nightwatch.js $TESTFILE --env=chrome || TEST_EXITCODE=1 |
||||
done |
||||
|
||||
echo "$TEST_EXITCODE" |
||||
if [ "$TEST_EXITCODE" -eq 1 ] |
||||
then |
||||
exit 1 |
||||
fi |
Loading…
Reference in new issue