diff --git a/test/parallel/test-inspector-console-top-frame.js b/test/parallel/test-inspector-console-top-frame.js new file mode 100644 index 00000000000000..56fd6a3890999f --- /dev/null +++ b/test/parallel/test-inspector-console-top-frame.js @@ -0,0 +1,31 @@ +'use strict'; + +// Verify that the line containing console.log is reported as a top stack frame +// of the consoleAPICalled notification. +// Changing this will break many Inspector protocol clients, including +// debuggers that use that value for navigating from console messages to code. + +const common = require('../common'); +common.skipIfInspectorDisabled(); + +const assert = require('assert'); +const { Session } = require('inspector'); +const { basename } = require('path'); + +function logMessage() { + console.log('Log a message'); +} + +const session = new Session(); +let topFrame; +session.once('Runtime.consoleAPICalled', (notification) => { + topFrame = (notification.params.stackTrace.callFrames[0]); +}); +session.connect(); +session.post('Runtime.enable'); + +logMessage(); // Triggers Inspector notification + +session.disconnect(); +assert.strictEqual(basename(topFrame.url), basename(__filename)); +assert.strictEqual(topFrame.lineNumber, 15);