Merge pull request #498 from embark-framework/single_test

fix from and data options; add single test support
This commit is contained in:
Iuri Matias 2018-06-08 11:33:14 -04:00 committed by GitHub
commit 33de740fff
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 42 additions and 2 deletions

View File

@ -81,7 +81,8 @@ module.exports = {
mocha.addFile(file);
mocha.suite.timeout(0);
mocha.suite.beforeEach('Wait for deploy', (done) => {
mocha.suite.beforeAll('Wait for deploy', (done) => {
global.embark.onReady(() => {
done();
});

View File

@ -121,12 +121,16 @@ class Test {
config(options, callback) {
const self = this;
if (typeof (options) === 'function') {
callback = options;
options = {};
}
if (!callback) {
callback = function () {
};
}
if (!options.contracts) {
throw new Error(__('No contracts specified in the options'));
options.contracts = {};
}
self.ready = false;
@ -211,12 +215,20 @@ class Test {
function createContractObject(accounts, next) {
async.each(Object.keys(self.engine.contractsManager.contracts), (contractName, eachCb) => {
const contract = self.engine.contractsManager.contracts[contractName];
let data;
if (!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,
{from: self.web3.eth.defaultAccount, gas: 6000000}));
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;
self.contracts[contractName].options.data = data;
}
eachCb();
}, (err) => {
next(err, accounts);
@ -260,6 +272,10 @@ class Test {
this.contracts[contractName] = new this.web3.eth.Contract(contract.abiDefinition, contract.address,
{from: this.web3.eth.defaultAccount, gas: 6000000});
this.contracts[contractName].address = contract.address;
this.contracts[contractName].options.data = contract.code;
this.web3.eth.getAccounts().then((accounts) => {
this.contracts[contractName].options.from = contract.from || accounts[0];
});
return this.contracts[contractName];
}
throw new Error(__('Unknown module %s', module));

View File

@ -0,0 +1,23 @@
/*global contract, config, it, embark, assert, web3*/
const SimpleStorage = embark.require('Embark/contracts/SimpleStorage');
let accounts;
contract("SimpleStorage Deploy", function () {
let SimpleStorageInstance;
before(async function() {
SimpleStorageInstance = await SimpleStorage.deploy({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);
});
});