| // Flags: --no-warnings --test-only |
| 'use strict'; |
| require('../common'); |
| const test = require('node:test'); |
| |
| // These tests should be skipped based on the 'only' option. |
| test('only = undefined'); |
| test('only = undefined, skip = string', { skip: 'skip message' }); |
| test('only = undefined, skip = true', { skip: true }); |
| test('only = undefined, skip = false', { skip: false }); |
| test('only = false', { only: false }); |
| test('only = false, skip = string', { only: false, skip: 'skip message' }); |
| test('only = false, skip = true', { only: false, skip: true }); |
| test('only = false, skip = false', { only: false, skip: false }); |
| |
| // These tests should be skipped based on the 'skip' option. |
| test('only = true, skip = string', { only: true, skip: 'skip message' }); |
| test('only = true, skip = true', { only: true, skip: true }); |
| |
| // An 'only' test with subtests. |
| test('only = true, with subtests', { only: true }, async (t) => { |
| // These subtests should run. |
| await t.test('running subtest 1'); |
| await t.test('running subtest 2'); |
| |
| // Switch the context to only execute 'only' tests. |
| t.runOnly(true); |
| await t.test('skipped subtest 1'); |
| await t.test('skipped subtest 2'); |
| await t.test('running subtest 3', { only: true }); |
| |
| // Switch the context back to execute all tests. |
| t.runOnly(false); |
| await t.test('running subtest 4', async (t) => { |
| // These subtests should run. |
| await t.test('running sub-subtest 1'); |
| await t.test('running sub-subtest 2'); |
| |
| // Switch the context to only execute 'only' tests. |
| t.runOnly(true); |
| await t.test('skipped sub-subtest 1'); |
| await t.test('skipped sub-subtest 2'); |
| }); |
| |
| // Explicitly do not run these tests. |
| await t.test('skipped subtest 3', { only: false }); |
| await t.test('skipped subtest 4', { skip: true }); |
| }); |