// This tests debugger probe JSON output for duplicate and multi-probe hits. 'use strict'; const common = require('../common'); common.skipIfInspectorDisabled(); const fixtures = require('../common/fixtures'); const { spawnSyncAndAssert } = require('../common/child_process'); const { assertProbeJson } = require('../common/debugger-probe'); const cwd = fixtures.path('debugger'); const probeUrl = fixtures.fileURL('debugger', 'probe.js').href; const locationAt8 = { url: probeUrl, line: 8, column: 3 }; const locationAt12 = { url: probeUrl, line: 12, column: 1 }; spawnSyncAndAssert(process.execPath, [ 'inspect', '--json', '--probe', 'probe.js:8', '--expr', 'index', '--probe', 'probe.js:8', '--expr', 'total', '--probe', 'probe.js:12', '--expr', 'finalValue', 'probe.js', ], { cwd, env: { ...process.env, NODE_DEBUG: 'inspect_probe' } }, { stdout(output) { assertProbeJson(output, { v: 2, probes: [ { expr: 'index', target: { suffix: 'probe.js', line: 8 } }, { expr: 'total', target: { suffix: 'probe.js', line: 8 } }, { expr: 'finalValue', target: { suffix: 'probe.js', line: 12 } }, ], results: [ { probe: 0, event: 'hit', hit: 1, location: locationAt8, result: { type: 'number', value: 0, description: '0' }, }, { probe: 1, event: 'hit', hit: 1, location: locationAt8, result: { type: 'number', value: 0, description: '0' }, }, { probe: 0, event: 'hit', hit: 2, location: locationAt8, result: { type: 'number', value: 1, description: '1' }, }, { probe: 1, event: 'hit', hit: 2, location: locationAt8, result: { type: 'number', value: 40, description: '40' }, }, { probe: 2, event: 'hit', hit: 1, location: locationAt12, result: { type: 'number', value: 81, description: '81' }, }, { event: 'completed' }, ], }); }, trim: true, });