github.com/igggame/nebulas-go@v2.1.0+incompatible/nebtestkit/cases/rpc/getBlockByHeight.test.js (about) 1 'use strict'; 2 var expect = require('chai').expect; 3 var rpc_client = require('./rpc_client/rpc_client.js'); 4 var Wallet = require("nebulas"); 5 var sourceAccount; 6 7 8 var protocol_version = '/neb/1.0.0' 9 var node_version = '0.7.0' 10 var server_address = 'localhost:8684'; 11 var coinbase = "eb31ad2d8a89a0ca6935c308d5425730430bc2d63f2573b8"; 12 var env = 'maintest'; 13 var chain_id; 14 if (env === 'testneb1') { 15 chain_id = 1001; 16 sourceAccount = new Wallet.Account("25a3a441a34658e7a595a0eda222fa43ac51bd223017d17b420674fb6d0a4d52"); 17 coinbase = "n1SAeQRVn33bamxN4ehWUT7JGdxipwn8b17"; 18 server_address = "35.182.48.19:8684"; 19 20 } else if (env === "testneb2") { 21 chain_id = 1002; 22 sourceAccount = new Wallet.Account("25a3a441a34658e7a595a0eda222fa43ac51bd223017d17b420674fb6d0a4d52"); 23 coinbase = "n1SAeQRVn33bamxN4ehWUT7JGdxipwn8b17"; 24 server_address = "34.205.26.12:8684"; 25 26 } else if (env === "testneb3") { 27 chain_id = 1003; 28 sourceAccount = new Wallet.Account("25a3a441a34658e7a595a0eda222fa43ac51bd223017d17b420674fb6d0a4d52"); 29 coinbase = "n1SAeQRVn33bamxN4ehWUT7JGdxipwn8b17"; 30 server_address = "35.177.214.138:8684"; 31 32 } else if (env === "testneb4") { //super node 33 chain_id = 1004; 34 sourceAccount = new Wallet.Account("c75402f6ffe6edcc2c062134b5932151cb39b6486a7beb984792bb9da3f38b9f"); 35 coinbase = "n1EzGmFsVepKduN1U5QFyhLqpzFvM9sRSmG"; 36 server_address = "35.154.108.11:8684"; 37 } else if (env === "testneb4_normalnode"){ 38 chain_id = 1004; 39 sourceAccount = new Wallet.Account("c75402f6ffe6edcc2c062134b5932151cb39b6486a7beb984792bb9da3f38b9f"); 40 coinbase = "n1EzGmFsVepKduN1U5QFyhLqpzFvM9sRSmG"; 41 server_address = "18.197.107.228:8684"; 42 } else if (env === "local") { 43 chain_id = 100; 44 sourceAccount = new Wallet.Account("d80f115bdbba5ef215707a8d7053c16f4e65588fd50b0f83369ad142b99891b5"); 45 coinbase = "n1QZMXSZtW7BUerroSms4axNfyBGyFGkrh5"; 46 server_address = "127.0.0.1:8684"; 47 48 } else if (env === "maintest"){ 49 chain_id = 2; 50 sourceAccount = new Wallet.Account("d2319a8a63b1abcb0cc6d4183198e5d7b264d271f97edf0c76cfdb1f2631848c"); 51 coinbase = "n1dZZnqKGEkb1LHYsZRei1CH6DunTio1j1q"; 52 server_address = "54.149.15.132:8684"; 53 } else { 54 throw new Error("invalid env (" + env + ")."); 55 } 56 57 var client; 58 var normalOutput; 59 60 function testRpc(testInput, testExpect, done) { 61 client.getBlockByHeight(testInput.rpcInput, function (err, response) { 62 if (err != null) { 63 try { 64 expect(testExpect.errMsg).to.be.equal(err.details); 65 } catch (err) { 66 console.log(err); 67 done(err) 68 return; 69 } 70 console.log(err); 71 done(); 72 return; 73 } else { 74 try { 75 if (testInput.isNormal) { 76 console.log(response); 77 expect(response.coinbase.length).to.be.equal(35); 78 //TODO:verify response 79 // expect(response.balance).to.be.a("string"); 80 normalOutput = response; 81 } else { 82 if (testExpect.isNormalOutput) { 83 expect(JSON.stringify(response)).to.be.equal(JSON.stringify(normalOutput)); 84 expect(response.coinbase.length).to.be.equal(35); 85 } else { 86 expect(testExpect.isNormalOutput).to.be.equal(false); 87 expect(JSON.stringify(response)).not.be.equal(JSON.stringify(normalOutput)); 88 } 89 } 90 } catch (err 91 ) { 92 done(err); 93 return; 94 }; 95 } 96 done(); 97 return; 98 }); 99 100 } 101 102 describe('rpc: getBlockByHeight', function () { 103 before(function () { 104 client = rpc_client.new_client(server_address); 105 }); 106 107 it('normal rpc', function (done) { 108 var testInput = { 109 rpcInput: { 110 height: 1 111 }, 112 isNormal: true 113 } 114 115 var testExpect = { 116 isNormalOutput: true 117 } 118 119 testRpc(testInput, testExpect, done); 120 }) 121 122 it('height is empty', function (done) { 123 var testInput = { 124 rpcInput: { 125 126 }, 127 isNormal: false 128 } 129 130 var testExpect = { 131 errMsg: 'block not found' 132 } 133 134 testRpc(testInput, testExpect, done); 135 }) 136 137 it('height is neg', function (done) { 138 var testInput = { 139 rpcInput: { 140 height: -1, 141 }, 142 isNormal: false 143 } 144 145 var testExpect = { 146 errMsg: 'block not found' 147 } 148 149 testRpc(testInput, testExpect, done); 150 }) 151 152 it('height out of max', function (done) { 153 var testInput = { 154 rpcInput: { 155 height: 1111111111111111111111111111111111111111111111111111111 156 }, 157 isNormal: false 158 } 159 160 var testExpect = { 161 errMsg: 'block not found' 162 } 163 164 testRpc(testInput, testExpect, done); 165 }) 166 167 it('height is zero', function (done) { 168 var testInput = { 169 rpcInput: { 170 height: 0 171 }, 172 isNormal: false 173 } 174 175 var testExpect = { 176 errMsg: 'block not found' 177 } 178 179 testRpc(testInput, testExpect, done); 180 }); 181 182 it('height is positive', function (done) { 183 var testInput = { 184 rpcInput: { 185 height: 3 186 }, 187 isNormal: false 188 } 189 190 var testExpect = { 191 isNormalOutput: false 192 } 193 194 testRpc(testInput, testExpect, done); 195 }); 196 197 });