support embarkjs in the tests

This commit is contained in:
Iuri Matias 2018-06-10 12:11:34 -04:00
parent e119007f76
commit c4ca4e52b8
3 changed files with 28 additions and 10 deletions

View File

@ -1,9 +1,14 @@
var EmbarkJS = {
onReady: __embarkContext.execWhenReady
onReady: function(cb) {
if (typeof (__embarkContext) === 'undefined') {
return cb();
}
return __embarkContext.execWhenReady(cb);
}
};
EmbarkJS.isNewWeb3 = function() {
var _web3 = new Web3();
EmbarkJS.isNewWeb3 = function(web3Obj) {
var _web3 = web3Obj || (new Web3());
if (typeof(_web3.version) === "string") {
return true;
}
@ -17,22 +22,24 @@ EmbarkJS.Contract = function(options) {
this.abi = options.abi;
this.address = options.address;
this.gas = options.gas;
this.code = '0x' + options.code;
//this.web3 = options.web3 || web3;
this.web3 = options.web3;
if (!this.web3 && typeof ('web3') !== 'undefined') {
this.web3 = web3;
} else {
} else if (!this.web3) {
this.web3 = window.web3;
}
if (EmbarkJS.isNewWeb3()) {
if (EmbarkJS.isNewWeb3(this.web3)) {
ContractClass = new this.web3.eth.Contract(this.abi, this.address);
ContractClass.setProvider(this.web3.currentProvider);
ContractClass.options.data = this.code;
ContractClass.options.from = this.from;
ContractClass.abi = ContractClass.options.abi;
ContractClass.address = this.address;
ContractClass.gas = this.gas;
let originalMethods = Object.keys(ContractClass);
@ -386,4 +393,5 @@ EmbarkJS.Utils = {
}
};
export default EmbarkJS;
//export default EmbarkJS;
module.exports = EmbarkJS;

View File

@ -8,6 +8,8 @@ const cloneDeep = require('clone-deep');
const AccountParser = require('../contracts/accountParser');
const Provider = require('../contracts/provider');
const EmbarkJS = require('../../js/embark');
function getSimulator() {
try {
return require('ganache-cli');
@ -241,8 +243,10 @@ class Test {
} else {
data = self.contracts[contractName].options.data;
}
Object.assign(self.contracts[contractName], new self.web3.eth.Contract(contract.abiDefinition, contract.deployedAddress,
{from: self.web3.eth.defaultAccount, gas: 6000000}));
//Object.assign(self.contracts[contractName], new self.web3.eth.Contract(contract.abiDefinition, contract.deployedAddress,
// {from: self.web3.eth.defaultAccount, gas: 6000000}));
Object.assign(self.contracts[contractName], new EmbarkJS.Contract({abi: contract.abiDefinition, address: contract.deployedAddress, from: self.web3.eth.defaultAccount, gas: 6000000, web3: self.web3}));
self.contracts[contractName].address = contract.deployedAddress;
if (self.contracts[contractName].options) {
self.contracts[contractName].options.from = self.contracts[contractName].options.from || self.web3.eth.defaultAccount;
@ -288,8 +292,9 @@ class Test {
contract = this.engine.contractsManager.contracts[contractNames[0]];
}
}
this.contracts[contractName] = new this.web3.eth.Contract(contract.abiDefinition, contract.address,
{from: this.web3.eth.defaultAccount, gas: 6000000});
//this.contracts[contractName] = new this.web3.eth.Contract(contract.abiDefinition, contract.address,
// {from: this.web3.eth.defaultAccount, gas: 6000000});
this.contracts[contractName] = new EmbarkJS.Contract({abi: contract.abiDefinition, address: contract.address, from: this.web3.eth.defaultAccount, gas: 6000000, web3: this.web3});
this.contracts[contractName].address = contract.address;
this.contracts[contractName].options.data = contract.code;
this.web3.eth.getAccounts().then((accounts) => {

View File

@ -40,6 +40,11 @@ contract("AnotherStorage", function() {
assert.equal(result.toString(), SimpleStorage.options.address);
});
it("set SimpleStorage address with alternative syntax", async function() {
let result = await AnotherStorage.simpleStorageAddress();
assert.equal(result.toString(), SimpleStorage.options.address);
});
it('should set the balance correctly', async function () {
const balance = await web3.eth.getBalance(accounts[0]);
assert.ok(balance < 5000000000000000000);