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