poa-bridge/truffle/test/mainnet.js

59 lines
2.2 KiB
JavaScript

var EthereumBridge = artifacts.require("EthereumBridge");
contract('EthereumBridge', function(accounts) {
it("should deploy contract", function() {
var meta;
var requiredSignatures = 1;
var authorities = [accounts[0], accounts[1]];
return EthereumBridge.new(requiredSignatures, authorities).then(function(instance) {
meta = instance;
return meta.requiredSignatures.call();
}).then(function(result) {
assert.equal(requiredSignatures, result, "Contract has invalid number of requiredSignatures");
return Promise.all(authorities.map((_, index) => meta.authorities.call(index)));
}).then(function(result) {
assert.deepEqual(authorities, result, "Contract has invalid authorities");
})
})
it("should fail to deploy contract with not enough required signatures", function() {
var authorities = [accounts[0], accounts[1]];
return EthereumBridge.new(0, authorities).then(function(_) {
assert(false, "Contract should fail to deploy");
}, function(err) {
// do nothing
})
})
it("should fail to deploy contract with to many signatures", function() {
var authorities = [accounts[0], accounts[1]];
return EthereumBridge.new(3, authorities).then(function(_) {
assert(false, "Contract should fail to deploy");
}, function(err) {
// do nothing
})
})
it("should create deposit event", function() {
var meta;
var requiredSignatures = 1;
var authorities = [accounts[0], accounts[1]];
let user_account = accounts[2];
let value = web3.toWei(1, "ether");
return EthereumBridge.new(requiredSignatures, authorities).then(function(instance) {
meta = instance;
return meta.sendTransaction({
value: value,
from: user_account
})
}).then(function(result) {
assert.equal(1, result.logs.length, "Exactly one event should have been created");
assert.equal("Deposit", result.logs[0].event, "Event name should be Deposit");
assert.equal(user_account, result.logs[0].args.recipient, "Event recipient should be transaction sender");
assert.equal(value, result.logs[0].args.value, "Event value should match deposited ether");
})
})
})