fix default from and data; add single test spec

This commit is contained in:
Iuri Matias 2018-06-07 19:08:18 -04:00
parent dd4088fd08
commit 8fa7357d07
2 changed files with 45 additions and 0 deletions

View File

@ -211,12 +211,20 @@ class Test {
function createContractObject(accounts, next) { function createContractObject(accounts, next) {
async.each(Object.keys(self.engine.contractsManager.contracts), (contractName, eachCb) => { async.each(Object.keys(self.engine.contractsManager.contracts), (contractName, eachCb) => {
const contract = self.engine.contractsManager.contracts[contractName]; const contract = self.engine.contractsManager.contracts[contractName];
let data;
if (!self.contracts[contractName]) { if (!self.contracts[contractName]) {
self.contracts[contractName] = {}; self.contracts[contractName] = {};
data = "";
} else {
data = self.contracts[contractName].options.data;
} }
Object.assign(self.contracts[contractName], new self.web3.eth.Contract(contract.abiDefinition, contract.deployedAddress, Object.assign(self.contracts[contractName], new self.web3.eth.Contract(contract.abiDefinition, contract.deployedAddress,
{from: self.web3.eth.defaultAccount, gas: 6000000})); {from: self.web3.eth.defaultAccount, gas: 6000000}));
self.contracts[contractName].address = contract.deployedAddress; self.contracts[contractName].address = contract.deployedAddress;
if (self.contracts[contractName].options) {
self.contracts[contractName].options.from = self.contracts[contractName].options.from || web3.eth.defaultAccount;
self.contracts[contractName].options.data = data;
}
eachCb(); eachCb();
}, (err) => { }, (err) => {
next(err, accounts); next(err, accounts);
@ -260,6 +268,10 @@ class Test {
this.contracts[contractName] = new this.web3.eth.Contract(contract.abiDefinition, contract.address, this.contracts[contractName] = new this.web3.eth.Contract(contract.abiDefinition, contract.address,
{from: this.web3.eth.defaultAccount, gas: 6000000}); {from: this.web3.eth.defaultAccount, gas: 6000000});
this.contracts[contractName].address = contract.address; this.contracts[contractName].address = contract.address;
this.contracts[contractName].options.data = contract.code;
web3.eth.getAccounts().then((accounts) => {
this.contracts[contractName].options.from = contract.from || accounts[0];
});
return this.contracts[contractName]; return this.contracts[contractName];
} }
throw new Error(__('Unknown module %s', module)); throw new Error(__('Unknown module %s', module));

View File

@ -0,0 +1,33 @@
/*global contract, config, it, embark, assert, web3*/
const SimpleStorage = embark.require('Embark/contracts/SimpleStorage');
let accounts;
config({
contracts: {
"SimpleStorage": {
args: [100]
}
}
}, (err, theAccounts) => {
accounts = theAccounts;
});
contract("SimpleStorage Deploy", function () {
let SimpleStorageInstance;
before(async function() {
SimpleStorageInstance = await SimpleStorage.deploy({data: SimpleStorage.options.data, arguments: [150]}).send();
});
it("should set constructor value", async function () {
let result = await SimpleStorageInstance.methods.storedData().call();
assert.strictEqual(parseInt(result, 10), 150);
});
it("set storage value", async function () {
await SimpleStorageInstance.methods.set(150).send();
let result = await SimpleStorageInstance.methods.get().call();
assert.strictEqual(parseInt(result, 10), 499650);
});
});