diff --git a/lib/internal/test_runner/harness.js b/lib/internal/test_runner/harness.js index f150a8f5ed85c2..246620f6628d88 100644 --- a/lib/internal/test_runner/harness.js +++ b/lib/internal/test_runner/harness.js @@ -216,9 +216,7 @@ function runInParentContext(Factory) { const test = (name, options, fn) => run(name, options, fn); ArrayPrototypeForEach(['skip', 'todo', 'only'], (keyword) => { - test[keyword] = (name, options, fn) => { - run(name, options, fn, { [keyword]: true }); - }; + test[keyword] = (name, options, fn) => run(name, options, fn, { [keyword]: true }); }); return test; } diff --git a/test/parallel/test-runner-typechecking.js b/test/parallel/test-runner-typechecking.js new file mode 100644 index 00000000000000..e96761b1a054bd --- /dev/null +++ b/test/parallel/test-runner-typechecking.js @@ -0,0 +1,36 @@ +'use strict'; +require('../common'); + +// Return type of shorthands should be consistent +// with the return type of test + +const assert = require('assert'); +const { test, describe, it } = require('node:test'); +const { isPromise } = require('util/types'); + +const testOnly = test('only test', { only: true }); +const testTodo = test('todo test', { todo: true }); +const testSkip = test('skip test', { skip: true }); +const testOnlyShorthand = test.only('only test shorthand'); +const testTodoShorthand = test.todo('todo test shorthand'); +const testSkipShorthand = test.skip('skip test shorthand'); + +describe('\'node:test\' and its shorthands should return the same', () => { + it('should return a Promise', () => { + assert(isPromise(testOnly)); + assert(isPromise(testTodo)); + assert(isPromise(testSkip)); + assert(isPromise(testOnlyShorthand)); + assert(isPromise(testTodoShorthand)); + assert(isPromise(testSkipShorthand)); + }); + + it('should resolve undefined', async () => { + assert.strictEqual(await testOnly, undefined); + assert.strictEqual(await testTodo, undefined); + assert.strictEqual(await testSkip, undefined); + assert.strictEqual(await testOnlyShorthand, undefined); + assert.strictEqual(await testTodoShorthand, undefined); + assert.strictEqual(await testSkipShorthand, undefined); + }); +});