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