| 'use strict'; |
| |
| const common = require('../common'); |
| const ArrayStream = require('../common/arraystream'); |
| const assert = require('assert'); |
| const repl = require('repl'); |
| |
| common.skipIfInspectorDisabled(); |
| |
| // This test verifies that the V8 inspector API is usable in the REPL. |
| |
| const putIn = new ArrayStream(); |
| let output = ''; |
| putIn.write = function(data) { |
| output += data; |
| }; |
| |
| const testMe = repl.start('', putIn); |
| |
| putIn.run(['const myVariable = 42']); |
| |
| testMe.complete('myVar', common.mustCall((error, data) => { |
| assert.deepStrictEqual(data, [['myVariable'], 'myVar']); |
| })); |
| |
| putIn.run([ |
| 'const inspector = require("inspector")', |
| 'const session = new inspector.Session()', |
| 'session.connect()', |
| 'session.post("Runtime.evaluate", { expression: "1 + 1" }, console.log)', |
| 'session.disconnect()', |
| ]); |
| |
| assert(output.includes( |
| "null { result: { type: 'number', value: 2, description: '2' } }")); |