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