test(api): update rpc mock api

This commit is contained in:
George Lima 2019-01-24 16:23:29 -03:00
parent 2fb5d2683d
commit 2e501e98ab
1 changed files with 52 additions and 26 deletions

View File

@ -6,6 +6,8 @@ import createTestServer from 'create-test-server';
const transactions = [];
const sleep = (time: number) => new Promise(resolve => setTimeout(resolve, time));
createTestServer({
httpPort: '18232',
}).then(async (server) => {
@ -15,12 +17,13 @@ createTestServer({
res.send('Zcash RPC');
});
server.post('/', (req, res) => {
server.post('/', async (req, res) => {
const { method } = req.body;
switch (method) {
case 'getinfo':
return res.send({ result: { version: 1.0 } });
sleep(1500).then(() => res.send({ result: { version: 1.0 } }));
break;
case 'getblockchaininfo':
return res.send({ result: { verificationprogress: 0.5 } });
case 'z_gettotalbalance':
@ -29,9 +32,7 @@ createTestServer({
});
case 'z_listaddresses':
return res.send({
result: [
'zs1z7rejlpsa98s2rrrfkwmaxu53e4ue0ulcrw0h4x5g8jl04tak0d3mm47vdtahatqrlkngh9sly',
],
result: ['zs1z7rejlpsa98s2rrrfkwmaxu53e4ue0ulcrw0h4x5g8jl04tak0d3mm47vdtahatqrlkngh9sly'],
});
case 'getaddressesbyaccount':
return res.send({
@ -43,31 +44,56 @@ createTestServer({
});
case 'z_sendmany':
// eslint-disable-next-line
const [from, [obj], minconf, fee] = req.body.params;
sleep(2000).then(() => {
const [, [obj], amount, fee] = req.body.params;
if (obj.address[0] === 'z' || obj.address[0] === 't') {
transactions.push({
account: '',
address: obj.address,
category: 'send',
amount: obj.amount,
vout: 0,
fee,
confirmations: 10,
blockhash: 20,
blockindex: 10,
txid: `operation-id-${transactions.length + 1}`,
time: Date.now(),
timereceived: Date.now(),
comment: '',
otheraccount: '',
size: 10,
});
if ((obj.address[0] === 'z' || obj.address[0] === 't') && amount > 0) {
transactions.push({
account: '',
address: obj.address,
category: 'send',
amount: obj.amount,
vout: 0,
fee,
confirmations: 10,
blockhash: 20,
blockindex: 10,
txid: `operation-id-${transactions.length + 1}`,
time: Date.now(),
timereceived: Date.now(),
comment: '',
otheraccount: '',
size: 10,
});
return res.send({ result: 'operation-id-1' });
return res.send({ result: 'operation-id-1' });
}
return res.status(500).send({ error: { message: 'Invalid address!' } });
});
break;
case 'z_validateaddress':
// eslint-disable-next-line
const [zAd] = req.body.params;
if (zAd[0] === 'z' || zAd[0] === 't') {
return res.send({ result: { isvalid: true } });
}
return res.status(500).send({ error: { message: 'Invalid address!' } });
return res.send({ result: { isvalid: false } });
case 'validateaddress':
// eslint-disable-next-line
const [tAd] = req.body.params;
if (tAd[0] === 'z' || tAd[0] === 't') {
return res.send({ result: { isvalid: true } });
}
return res.send({ result: { isvalid: false } });
case 'z_getoperationstatus':
return res.send({
result: [{ id: 'operation-id-1', status: 'success', result: { txid: 'txid-1' } }],
});
default:
return null;
}