| 'use strict'; |
| const common = require('../common'); |
| |
| common.skipIfInspectorDisabled(); |
| |
| const fixtures = require('../common/fixtures'); |
| const startCLI = require('../common/debugger'); |
| |
| const assert = require('assert'); |
| |
| // Stepping through breakpoints. |
| { |
| const cli = startCLI([fixtures.path('debugger/break.js')]); |
| |
| function onFatal(error) { |
| cli.quit(); |
| throw error; |
| } |
| |
| return cli.waitForInitialBreak() |
| .then(() => cli.waitForPrompt()) |
| .then(() => cli.command('watch("x")')) |
| .then(() => cli.command('watch("\\"Hello\\"")')) |
| .then(() => cli.command('watch("42")')) |
| .then(() => cli.command('watch("NaN")')) |
| .then(() => cli.command('watch("true")')) |
| .then(() => cli.command('watch("[1, 2]")')) |
| .then(() => cli.command('watch("process.env")')) |
| .then(() => cli.command('watchers')) |
| .then(() => { |
| assert.match(cli.output, /x is not defined/); |
| }) |
| .then(() => cli.command('unwatch("42")')) |
| .then(() => cli.stepCommand('n')) |
| .then(() => { |
| assert.match(cli.output, /0: x = 10/); |
| assert.match(cli.output, /1: "Hello" = 'Hello'/); |
| assert.match(cli.output, /2: NaN = NaN/); |
| assert.match(cli.output, /3: true = true/); |
| assert.match(cli.output, /4: \[1, 2\] = \[ 1, 2 \]/); |
| assert.match( |
| cli.output, |
| /5: process\.env =\n\s+\{[\s\S]+,\n\s+\.\.\. \}/, |
| 'shows "..." for process.env'); |
| }) |
| .then(() => cli.quit()) |
| .then(null, onFatal); |
| } |