describe('hooks', () => { it('test', async () => { const hooks = new Hooks() const s = {} hooks.tap('test', (c) => { c.a = 1 }) // eslint-disable-line await hooks.call('test', s) assert(s.a === 1) await hooks.call('x', s) assert(s.a === 1) expect(() => hooks.tap('test', () => null)).toThrow('Hook `test` exists') }) })
it("#1 Should getInfo", async function() { if (!tree["all"] || !tree["#1"]) { this.skip(); } const response = await new Promise((resolve, reject) => { JsonRpcClient.request("getInfo", [], (err, res) => { if (err) { reject(err); } resolve(res); }); }); expect(response.peerId).toBeDefined(); expect(response.status).toBe("ok"); });
it("#3 Should test PTT flag", async function() { const tree = TEST_TREE.principal; if (!tree["all"] || !tree["#3"]) { this.skip(); } return new Promise(async resolve => { const dummyPort = 100; // will not be used, just for initializing const logger = new Logger({ cli: false }); const principalClient = new PrincipalNode({ uri: uri + dummyPort }, logger); principalClient.on(constants.PTT_END_EVENT, () => { expect(principalClient.isInPTT()).toEqual(false); resolve(); }); let res = principalClient.startPTT(); expect(res).toEqual(true); expect(principalClient.isInPTT()).toEqual(true); res = principalClient.startPTT(); expect(res).toEqual(false); expect(principalClient.isInPTT()).toEqual(true); principalClient.onPTTEnd(); }); });
function getStateKeysCallback(args, callback) { if (args.data && args.sig) { receivedRequest = true; expect(args.data).toEqual(response); if (args.addresses) { expect(args.addresses).toEqual(fakeAddresses); } if (args.block_number) { expect(args.block_number).toEqual(fakeBlockNumber.toString()); } const result = { data: fakeResponse, sig: fakeSig }; callback(null, result); } else { assert(false); callback("Missing data", null); } }
it("#2 Should retrieve EncryptionWorker from Core via JSON RPC", async function() { if (!tree["all"] || !tree["#2"]) { this.skip(); } // This block captures stdout for console.log to get the_worker_sign_key let output = ""; capcon.startCapture(process.stdout, function(stdout) { output += stdout; }); workerController.getNode().selfSubscribeAction(); await testUtils.sleep(1000); capcon.stopCapture(process.stdout); id = output.match(/subscribed to \[(.*)\]/)[1]; let response = await new Promise((resolve, reject) => { JsonRpcClient.request("getWorkerEncryptionKey", { workerAddress: id, userPubKey: userPubKey }, (err, res) => { if (err) { reject(err); } resolve(res); }); }); response = response.result; expect(response.workerEncryptionKey).toMatch(/[0-9a-f]{128}/); // 128 hex digits expect(response.workerSig).toBeDefined(); }, 10000);
); c1.sendAndReceive(reqEnv).then(resEnv => { expect(resEnv.content().type).toBe(constants.CORE_REQUESTS.GetPTTRequest); expect(resEnv.id()).toBe(reqEnv.id()); expect(resEnv.content().id).toBe(reqEnv.content().id); expect(resEnv.content().result.request).toBe(CoreServer.GET_PTT_REQUEST_MOCK); expect(resEnv.content().result.workerSig).toBeTruthy(); coreRuntime.disconnect(); coreServer.disconnect();
const commands = [] expect(() => cli.register('unknows')) .toThrow('Not supports cli type: unknows') assert(cli.getAction('commands') === undefined) expect(() => cli.register('options', { name: '-ss', alias: '-v' })) .toThrow('Option register error, name: -ss, alias: -v') expect(() => cli.register('options', { name: '--ss', alias: 's' })) .toThrow('Option register error, name: --ss, alias: s') expect(() => cli.register('options', { name: '--ver', alias: '-s' })) .toThrow('Register error, options: --ver | -s currently exists') expect(() => cli.register('options', { name: '--vers', alias: '-v' })) .toThrow('Register error, options: --vers | -v currently exists') expect(() => cli.register('commands', { name: 'test' })) .toThrow('Register error, commands: test currently exists') }) })
ipcClient.disconnect(); serverSocket.disconnect(uri); expect(serverOk).toBeTruthy(); expect(clientOk).toBeTruthy(); resolve(); });
); c1.sendAndReceive(reqEnv).then(resEnv => { expect(resEnv.content().type).toBe(constants.CORE_REQUESTS.GetTips); expect(resEnv.id()).toBe(reqEnv.id()); expect(resEnv.content().id).toBe(reqEnv.content().id); for (let i = 0; i < input.length; i++) { expect(resEnv.content().result.tips[i].address).toEqual(input[i]); expect(resEnv.content().result.tips[i].key).toBeTruthy(); expect(resEnv.content().result.tips[i].data).toBeTruthy();
.build(); mainController.getNode().getAllLocalTips(async (err, missingStates) => { expect(err).not.toEqual(expect.anything()); // This should match against null/undefined expect(missingStates.length).toBe(3); expect(missingStates[0].key).toBe(2); expect(missingStates[1].key).toBe(0); expect(missingStates[2].key).toBe(1); await mainController.getNode().stop(); mainController.getIpcClient().disconnect();
); c1.sendAndReceive(reqEnv).then(resEnv => { expect(resEnv.content().type).toBe(constants.CORE_REQUESTS.NewTaskEncryptionKey); expect(resEnv.id()).toBe(reqEnv.id()); expect(resEnv.content().id).toBe(reqEnv.content().id); expect(resEnv.content().result.workerEncryptionKey).toBeTruthy(); expect(resEnv.content().result.workerSig).toBeTruthy(); coreRuntime.disconnect(); coreServer.disconnect();