github.com/igggame/nebulas-go@v2.1.0+incompatible/nebtestkit/cases/rpc/admin.LockAccount.test.js (about)

     1  'use strict';
     2  
     3  var expect = require('chai').expect;
     4  var rpc_client = require('./rpc_client/rpc_client.js');
     5  var Wallet = require("nebulas");
     6  
     7  var coinbase,
     8      chain_id,
     9      sourceAccount,
    10      server_address;
    11  
    12  var env = process.env.NET || 'local';
    13  var env = 'maintest';
    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      address;
    59  
    60  function testLockAccount(testInput, testExpect, done) {
    61  
    62      try {
    63          client.LockAccount(testInput.args, (err, resp) => {
    64              try {
    65                  expect(!!err).to.equal(testExpect.hasError);
    66  
    67                  if (err) {
    68                      console.log("call return error: " + JSON.stringify(err));
    69                      expect(err).have.property('details').equal(testExpect.errorMsg);
    70                  } else {
    71                      console.log("call return success: " + JSON.stringify(resp));
    72                      expect(resp).to.have.property('result').equal(testExpect.result);
    73                  }
    74                  done();
    75              } catch (err) {
    76                  done(err);
    77              }
    78          });
    79      } catch(err) {
    80          console.log("call failed:" + err.toString())
    81          if (testExpect.callFailed) {
    82              try {
    83                  expect(err.toString()).to.have.string(testExpect.errorMsg);
    84                  done();
    85              } catch(er) {
    86                  done(er);
    87              }
    88          } else {
    89              done(err)
    90          }
    91      }
    92  }
    93  
    94  describe("rpc: LockAccount", () => {
    95      before((done) => {
    96          client = rpc_client.new_client(server_address, 'AdminService');
    97  
    98          client.NewAccount({passphrase: "passphrase"}, (err, resp) => {
    99              try {
   100                  expect(!!err).to.be.false;
   101                  expect(resp).to.have.property('address');
   102                  address = resp.address;
   103                  console.log("create new account: " + address);
   104                  done();
   105              } catch(err) {
   106                  done(err)
   107              }
   108          });
   109      });
   110  
   111      it("1. normal", (done) => {
   112          var testInput = {
   113              args: {
   114                  address: address
   115              }
   116          }
   117  
   118          var testExpect = {
   119              result: true,
   120              hasError: false
   121          }
   122  
   123          // unlock first
   124          client.UnlockAccount({
   125                  address: address,
   126                  passphrase: "passphrase"
   127              }, (err, resp) => {
   128                  try {
   129                      expect(resp).to.have.property('result').equal(true);
   130                      testLockAccount(testInput, testExpect, done);
   131                  } catch(err) {
   132                      console.log("unlock account failed");
   133                      done(err);
   134                  }
   135          });
   136      });
   137  
   138      it("2. not unlocked", (done) => {
   139          var testInput = {
   140              args: {
   141                  address: address
   142              }
   143          }
   144  
   145          var testExpect = {
   146              hasError: true,
   147              errorMsg: "key not unlocked"
   148          }
   149  
   150          testLockAccount(testInput, testExpect, done);
   151      });
   152  
   153      it("3. empty `address`", (done) => {
   154          var testInput = {
   155              args: {
   156                  address: ""
   157              }
   158          }
   159  
   160          var testExpect = {
   161              hasError: true,
   162              errorMsg: "address: invalid address format"
   163          }
   164  
   165          testLockAccount(testInput, testExpect, done);
   166      });
   167  
   168      it("4. nonexistent `address`", (done) => {
   169          var testInput = {
   170              args: {
   171                  address: "key not unlocked"
   172              }
   173          }
   174  
   175          var testExpect = {
   176              hasError: true,
   177              errorMsg: "address: invalid address format"
   178          }
   179  
   180          testLockAccount(testInput, testExpect, done);
   181      });
   182  
   183      it("5. invalid `address`", (done) => {
   184          var testInput = {
   185              args: {
   186                  address: "n1QZMXSZtW7BUerroSms4axNfyBGyFGkrh3" // same with ""
   187              }
   188          }
   189  
   190          var testExpect = {
   191              hasError: true,
   192              errorMsg: "address: invalid address checksum"
   193          }
   194  
   195          testLockAccount(testInput, testExpect, done);
   196      });
   197  });