From 730ad8695f8bb82cf1e5396ad484604f563ff8b8 Mon Sep 17 00:00:00 2001 From: "eungyu.lee" Date: Tue, 28 Feb 2023 15:42:41 +0900 Subject: [PATCH] test: Check the context line seen through n steps after calling setContextLineNumber --- test/fixtures/debugger/twenty-lines.js | 20 +++++++++ .../test-debugger-set-context-line-number.mjs | 44 +++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 test/fixtures/debugger/twenty-lines.js create mode 100644 test/sequential/test-debugger-set-context-line-number.mjs 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..75e2f0e9a74f02 --- /dev/null +++ b/test/sequential/test-debugger-set-context-line-number.mjs @@ -0,0 +1,44 @@ +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(';'); + 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)'); + assert.ok(getLastLine(cli.output).includes('7 x = 6')); + + await cli.quit(); +} catch (error) { + onFatal(error); +}