Skip to content

Commit

Permalink
test: refactor to async/await
Browse files Browse the repository at this point in the history
PR-URL: nodejs/node#44694
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
  • Loading branch information
DivyaMohan94 authored and guangwong committed Jan 3, 2023
1 parent d6b602a commit 078ecbe
Showing 1 changed file with 54 additions and 69 deletions.
123 changes: 54 additions & 69 deletions test/sequential/test-debugger-exec.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,76 +8,61 @@ const startCLI = require('../common/debugger');

const assert = require('assert');

{
const cli = startCLI([fixtures.path('debugger/alive.js')]);

const cli = startCLI([fixtures.path('debugger/alive.js')]);
async function waitInitialBreak() {
try {
await cli.waitForInitialBreak();
await cli.waitForPrompt();
await cli.command('exec [typeof heartbeat, typeof process.exit]');
assert.match(cli.output, /\[ 'function', 'function' \]/, 'works w/o paren');

function onFatal(error) {
cli.quit();
throw error;
}
await cli.command('p [typeof heartbeat, typeof process.exit]');
assert.match(
cli.output,
/\[ 'function', 'function' \]/,
'works w/o paren, short'
);

await cli.command('repl');
assert.match(
cli.output,
/Press Ctrl\+C to leave debug repl\n+> /,
'shows hint for how to leave repl'
);
assert.doesNotMatch(cli.output, /debug>/, 'changes the repl style');

await cli.command('[typeof heartbeat, typeof process.exit]');
await cli.waitFor(/function/);
await cli.waitForPrompt();
assert.match(
cli.output,
/\[ 'function', 'function' \]/,
'can evaluate in the repl'
);
assert.match(cli.output, /> $/);

cli.waitForInitialBreak()
.then(() => cli.waitForPrompt())
.then(() => cli.command('exec [typeof heartbeat, typeof process.exit]'))
.then(() => {
assert.match(
cli.output,
/\[ 'function', 'function' \]/,
'works w/o paren'
);
})
.then(() => cli.command('p [typeof heartbeat, typeof process.exit]'))
.then(() => {
assert.match(
cli.output,
/\[ 'function', 'function' \]/,
'works w/o paren, short'
);
})
.then(() => cli.command('repl'))
.then(() => {
assert.match(
cli.output,
/Press Ctrl\+C to leave debug repl\n+> /,
'shows hint for how to leave repl');
assert.doesNotMatch(cli.output, /debug>/, 'changes the repl style');
})
.then(() => cli.command('[typeof heartbeat, typeof process.exit]'))
.then(() => cli.waitFor(/function/))
.then(() => cli.waitForPrompt())
.then(() => {
assert.match(
cli.output,
/\[ 'function', 'function' \]/, 'can evaluate in the repl');
assert.match(cli.output, /> $/);
})
.then(() => cli.ctrlC())
.then(() => cli.waitFor(/debug> $/))
.then(() => cli.command('exec("[typeof heartbeat, typeof process.exit]")'))
.then(() => {
assert.match(
cli.output,
/\[ 'function', 'function' \]/,
'works w/ paren'
);
})
.then(() => cli.command('p("[typeof heartbeat, typeof process.exit]")'))
.then(() => {
assert.match(
cli.output,
/\[ 'function', 'function' \]/,
'works w/ paren, short'
);
})
.then(() => cli.command('cont'))
.then(() => cli.command('exec [typeof heartbeat, typeof process.exit]'))
.then(() => {
assert.match(
cli.output,
/\[ 'undefined', 'function' \]/,
'non-paused exec can see global but not module-scope values');
})
.then(() => cli.quit())
.then(null, onFatal);
await cli.ctrlC();
await cli.waitFor(/debug> $/);
await cli.command('exec("[typeof heartbeat, typeof process.exit]")');
assert.match(cli.output, /\[ 'function', 'function' \]/, 'works w/ paren');
await cli.command('p("[typeof heartbeat, typeof process.exit]")');
assert.match(
cli.output,
/\[ 'function', 'function' \]/,
'works w/ paren, short'
);

await cli.command('cont');
await cli.command('exec [typeof heartbeat, typeof process.exit]');
assert.match(
cli.output,
/\[ 'undefined', 'function' \]/,
'non-paused exec can see global but not module-scope values'
);
} finally {
await cli.quit();
}
}

waitInitialBreak();

0 comments on commit 078ecbe

Please sign in to comment.