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  });