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

     1  'use strict';
     2  
     3  var Wallet = require("../../../../cmd/console/neb.js/lib/wallet");
     4  var HttpRequest = require("../../../node-request");
     5  var Account = Wallet.Account;
     6  
     7  var expect = require('chai').expect;
     8  var neb = new Wallet.Neb();
     9  
    10  var ChainID,
    11      accountAddr;
    12  var coinbase = n1QZMXSZtW7BUerroSms4axNfyBGyFGkrh5;
    13  
    14  var env = process.env.NET || 'local';
    15  if (env === 'local') {
    16      neb.setRequest(new HttpRequest("http://localhost:8685"));//https://testnet.nebulas.io
    17  	ChainID = 100;
    18  } else if (env === 'testneb1') {
    19      neb.setRequest(new HttpRequest("http://35.182.48.19:8685"));
    20      ChainID = 1001;
    21  } else if (env === "testneb2") {
    22      neb.setRequest(new HttpRequest("http://34.205.26.12:8685"));
    23      ChainID = 1002;
    24  }
    25  
    26  function newAccount(testInput, done) {
    27      neb.admin.newAccount(testInput.passphrase).then(resp => {
    28          expect(resp).to.have.property('address');
    29          accountAddr = resp.address;
    30          console.log("new account: " + JSON.stringify(resp));
    31          done();
    32      }).catch(err => done(err));
    33  }
    34  
    35  function testUnlockAccount(testInput, testExpect, done) {
    36      
    37      neb.admin.unlockAccount(testInput.address, testInput.passphrase).then((resp) => {
    38          if (testInput.canExecute) {
    39              expect(resp).to.have.property("result").equal(testExpect.result);
    40          }
    41          done();
    42      }).catch(err => {
    43         if (!testInput.canExecute) {
    44              expect(err.error.error).to.equal(testExpect.errorMsg);
    45          } else {
    46              done(err);
    47          }
    48          done();
    49      }).catch(err => done(err));
    50  }
    51  
    52  describe('UnlockAccount', () => {
    53      before(done => {
    54          newAccount({
    55              passphrase: "passphrase"
    56          }, done);
    57      });
    58      
    59      it("1. normal", (done) => {
    60          var testInput = {
    61              address: accountAddr,
    62              passphrase: "passphrase",
    63              canExecute: true
    64          }
    65  
    66          var testExpect = {
    67              result: true,
    68              errorMsg: ""
    69          }
    70  
    71          testUnlockAccount(testInput, testExpect, done);
    72      });
    73  
    74      it("2. illegal passphrase", (done) => {
    75          var testInput = {
    76              address: accountAddr,
    77              passphrase: "wrwrwqweqw",
    78              canExecute: false
    79          }
    80  
    81          var testExpect = {
    82              result: false,
    83              errorMsg: "could not decrypt key with given passphrase"
    84          }
    85  
    86          testUnlockAccount(testInput, testExpect, done);
    87      });
    88  
    89      it("3. empty passphrase", (done) => {
    90          var testInput = {
    91              address: accountAddr,
    92              passphrase: "",
    93              canExecute: false
    94          }
    95  
    96          var testExpect = {
    97              result: false,
    98              errorMsg: "passphrase is invalid"
    99          }
   100  
   101          testUnlockAccount(testInput, testExpect, done);
   102      });
   103  
   104      it("4. nonexistent account", (done) => {
   105          var testInput = {
   106              address: Wallet.Account.newAccount(),
   107              passphrase: "passphrase",
   108              canExecute: true
   109          }
   110  
   111          var testExpect = {
   112              errorMsg: "address not find"
   113          }
   114  
   115          testUnlockAccount(testInput, testExpect, done);
   116      });
   117  
   118      it("5. invalid address", (done) => {
   119          var testInput = {
   120              address: "eb31ad2d8a89a0ca693425730430bc2d63f2573b8",   // same with ""
   121              passphrase: "passphrase",
   122              canExecute: false
   123          }
   124  
   125          var testExpect = {
   126              errorMsg: "address: invalid address format"
   127          }
   128  
   129          testUnlockAccount(testInput, testExpect, done);
   130      });
   131  
   132  });