xek-sdk
Version:
SDK for katana blockchain
83 lines (67 loc) • 3.58 kB
JavaScript
;
const assert = require('assert');
const config = require('./config-test');
function sleep(ms){
return new Promise(resolve=>{
setTimeout(resolve,ms)
})
}
describe("1. Test submit transaction function",function(){
it("True case", async function(){
// let required = 2;
// new contract
// let resultDeploy = await config.myContract.deploy(config.owner1, config.passphraseOwner1, [[config.owner1,config.owner2], required]);
// assert.equal(resultDeploy.success, true);
// assert.notEqual(resultDeploy.data, null);
// let contractAddr = resultDeploy.data;
let contractAddr = '75F6F6754D5D5FC1BB3834A82D44659CE68C85DB';
// await sleep(500);
// count transaction
// let dataCountTx = config.myContract.getMethod("transactionCount",[]);
// let txNumb = await config.myContract.broadcastBurrowTx("transactionCount",config.owner1,contractAddr,config.passphraseOwner1,dataCountTx);
// assert.equal(txNumb, 0);
// submit transaction
let dataSubmitTx = config.myContract.getMethod("submitTransaction",[config.receiver, config.amount, []]);
let res = await config.myContract.broadcastBurrowTx("submitTransaction",config.owner1,contractAddr,config.passphraseOwner1,dataSubmitTx);
console.log('res:', res);
assert.equal(res.success, true);
assert.notEqual(res.data, null);
// await sleep(500);
// count transaction
// dataCountTx = config.myContract.getMethod("transactionCount",[]);
// txNumb = await config.myContract.broadcastBurrowTx("transactionCount",config.owner1,contractAddr,config.passphraseOwner1,dataCountTx);
// assert.equal(txNumb, 1);
});
it("Invalid inputs", async function(){
//-------invalid receiver-------//
let dataSubmitTx1 = config.myContract.getMethod("submitTransaction",[config.receiver.slice(2), config.amount, []]);
assert.equal(dataSubmitTx1, 'Invalid inputs');
//-------null receiver-------//
let dataSubmitTx2 = config.myContract.getMethod("submitTransaction",["", config.amount, []]);
assert.equal(dataSubmitTx2, 'Invalid inputs');
//-------amount is a string-------//
let dataSubmitTx3 = config.myContract.getMethod("submitTransaction",[config.receiver, "abcxyz", []]);
assert.equal(dataSubmitTx3, 'Invalid inputs');
});
it("Invalid account from", async function(){
await sleep(500);
let required = 2;
// new contract
let resultDeploy = await config.myContract.deploy(config.owner1, config.passphraseOwner1, [[config.owner1,config.owner2], required]);
assert.equal(resultDeploy.success, true);
assert.notEqual(resultDeploy.data, null);
let contractAddr = resultDeploy.data;
await sleep(500);
let dataSubmitTx = config.myContract.getMethod("submitTransaction",[config.receiver, config.amount, []]);
// invalid address send transaction
//-------length address-------//
let dataFrom1 = await config.myContract.broadcastBurrowTx("submitTransaction",config.owner1.slice(2),contractAddr,config.passphraseOwner1,dataSubmitTx);
assert.equal(dataFrom1.success, false);
//-------contract address into from-------//
let dataFrom2 = await config.myContract.broadcastBurrowTx("submitTransaction",config.contractOther,contractAddr,config.passphraseOwner1,dataSubmitTx);
assert.equal(dataFrom2.success, false);
//-------null from-------//
let dataFrom3 = await config.myContract.broadcastBurrowTx("submitTransaction","",contractAddr,config.passphraseOwner1,dataSubmitTx);
assert.equal(dataFrom3.success, false);
});
});