github.com/igggame/nebulas-go@v2.1.0+incompatible/nebtestkit/cases/rpc/admin.UnlockAccount.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 testUnlockAccount(testInput, testExpect, done) {
    61      try {
    62          client.UnlockAccount(testInput.args, (err, resp) => {
    63              try {
    64                  expect(!!err).to.equal(testExpect.hasError);
    65  
    66                  if (err) {
    67                      console.log("call return error: " + JSON.stringify(err));
    68                      expect(err).have.property('details').equal(testExpect.errorMsg);
    69                  } else {
    70                      console.log("call return success: " + JSON.stringify(resp));
    71                      expect(resp).to.have.property('result').equal(testExpect.result);
    72                  }
    73                  done();
    74              } catch (err) {
    75                  done(err);
    76              }
    77          });
    78      } catch(err) {
    79          console.log("call failed:" + err.toString())
    80          if (testExpect.callFailed) {
    81              try {
    82                  expect(err.toString()).to.have.string(testExpect.errorMsg);
    83                  done();
    84              } catch(er) {
    85                  done(er);
    86              }
    87          } else {
    88              done(err)
    89          }
    90      }
    91  }
    92  
    93  describe("rpc: UnlockAccount", () => {
    94      before((done) => {
    95          client = rpc_client.new_client(server_address, 'AdminService');
    96  
    97          client.NewAccount({passphrase: "passphrase"}, (err, resp) => {
    98              try {
    99                  expect(!!err).to.be.false;
   100                  expect(resp).to.have.property('address');
   101                  address = resp.address;
   102                  console.log("create new account: " + address);
   103                  done();
   104              } catch(err) {
   105                  done(err)
   106              }
   107          });
   108      });
   109  
   110      it("1. normal", (done) => {
   111          var testInput = {
   112              args: {
   113                  address: address,
   114                  passphrase: "passphrase",
   115              }
   116          }
   117  
   118          var testExpect = {
   119              result: true,
   120              hasError: false
   121          }
   122  
   123          testUnlockAccount(testInput, testExpect, done);
   124      });
   125  
   126      it("2. wrong `passphrase`", (done) => {
   127          var testInput = {
   128              args: {
   129                  address: address,
   130                  passphrase: "wrwrwqweqw"
   131              }
   132          }
   133  
   134          var testExpect = {
   135              hasError: true,
   136              errorMsg: "could not decrypt key with given passphrase"
   137          }
   138  
   139          testUnlockAccount(testInput, testExpect, done);
   140      });
   141  
   142      it("3. empty `passphrase`", (done) => {
   143          var testInput = {
   144              args: {
   145                  address: address,
   146                  passphrase: ""
   147              }
   148          }
   149  
   150          var testExpect = {
   151              hasError: true,
   152              errorMsg: "passphrase is invalid"
   153          }
   154  
   155          testUnlockAccount(testInput, testExpect, done);
   156      });
   157  
   158      it("4. nonexistent `address`", (done) => {
   159          var testInput = {
   160              args: {
   161                  address: Wallet.Account.NewAccount().getAddressString(),
   162                  passphrase: "passphrase"
   163              }
   164          }
   165  
   166          var testExpect = {
   167              hasError: true,
   168              errorMsg: "account is not found"
   169          }
   170  
   171          testUnlockAccount(testInput, testExpect, done);
   172      });
   173  
   174      it("5. invalid `address`", (done) => {
   175          var testInput = {
   176              args: {
   177                  address: "eb31ad2d8a89a0ca693425730430bc2d63f2573b8",   // same with ""
   178                  passphrase: "passphrase",
   179              }
   180          }
   181  
   182          var testExpect = {
   183              hasError: true,
   184              errorMsg: "address: invalid address format"
   185          }
   186  
   187          testUnlockAccount(testInput, testExpect, done);
   188      });
   189  
   190      it("6. missing `address`", (done) => {
   191          var testInput = {
   192              args: {
   193                  // address: address,
   194                  passphrase: "passphrase"
   195              }
   196          }
   197  
   198          var testExpect = {
   199              hasError: true,
   200              errorMsg: 'address: invalid address format'
   201          }
   202  
   203          testUnlockAccount(testInput, testExpect, done);
   204      });
   205  
   206      it("7. missing `passphrase`", (done) => {
   207          var testInput = {
   208              args: {
   209                  address: address,
   210                  // passphrase: "passphrase"
   211              }
   212          }
   213  
   214          var testExpect = {
   215              hasError: true,
   216              errorMsg: 'passphrase is invalid'
   217          }
   218  
   219          testUnlockAccount(testInput, testExpect, done);
   220      });
   221  
   222      it("8. redundant param", (done) => {
   223          var testInput = {
   224              args: {
   225                  address: address,
   226                  passphrase: "passphrase",
   227                  test: "gtes"
   228              }
   229          }
   230  
   231          var testExpect = {
   232              callFailed: true,
   233              errorMsg: 'Error:'
   234          }
   235  
   236          testUnlockAccount(testInput, testExpect, done);
   237      });
   238  });