diff --git a/test/fixtures/debugger/twenty-lines.js b/test/fixtures/debugger/twenty-lines.js new file mode 100644 index 00000000000000..4aa152202f6742 --- /dev/null +++ b/test/fixtures/debugger/twenty-lines.js @@ -0,0 +1,20 @@ +let x = 0; +x = 1; +x = 2; +x = 3; +x = 4; +x = 5; +x = 6; +x = 7; +x = 8; +x = 9; +x = 10; +x = 11; +x = 12; +x = 13; +x = 14; +x = 15; +x = 16; +x = 17; +x = 18; +module.exports = x; \ No newline at end of file diff --git a/test/sequential/test-debugger-set-context-line-number.mjs b/test/sequential/test-debugger-set-context-line-number.mjs new file mode 100644 index 00000000000000..adba104d2d484f --- /dev/null +++ b/test/sequential/test-debugger-set-context-line-number.mjs @@ -0,0 +1,46 @@ +import { skipIfInspectorDisabled } from '../common/index.mjs'; +skipIfInspectorDisabled(); + +import { path } from '../common/fixtures.mjs'; +import startCLI from '../common/debugger.js'; + +import assert from 'assert'; + +const script = path('debugger', 'twenty-lines.js'); +const cli = startCLI([script]); + +function onFatal(error) { + cli.quit(); + throw error; +} + +function getLastline(output) { + const splitedByLine = output.split("\n"); + return splitedByLine[splitedByLine.length - 2]; +} + +// Stepping through breakpoints. +try { + await cli.waitForInitialBreak(); + await cli.waitForPrompt(); + + // Make sure the initial value is 2. + await cli.stepCommand('n'); + assert.ok(getLastline(cli.output).includes("4 x = 3;")); + + await cli.command('setContextLineNumber(5)'); + await cli.stepCommand('n'); + assert.ok(getLastline(cli.output).includes("8 x = 7;")); + + await cli.command('setContextLineNumber(3)'); + await cli.stepCommand('n'); + assert.ok(getLastline(cli.output).includes("7 x = 6;")); + + await cli.command('list(3)'); + await cli.stepCommand('n'); + assert.ok(getLastline(cli.output).includes("7 x = 6;")); + + await cli.quit(); +} catch (error) { + onFatal(error); +}