From c53f3e3304bde40f1e85212b92d4e1209f47d10f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Weslley=20Ara=C3=BAjo?= <46850407+wellwelwel@users.noreply.github.com> Date: Sat, 7 Sep 2024 00:02:55 -0300 Subject: [PATCH] fix: allow all combinations of `describe`, `it` and `test` to `skip` modifier (#746) --- src/modules/helpers/modifiers.ts | 11 ++++++++++- .../e2e/final-results/skip-it/skip.test.ts | 4 ++++ test/e2e/final-results.test.ts | 4 +++- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/modules/helpers/modifiers.ts b/src/modules/helpers/modifiers.ts index 8d73d7b2..4e0c215e 100644 --- a/src/modules/helpers/modifiers.ts +++ b/src/modules/helpers/modifiers.ts @@ -7,7 +7,16 @@ export const todo = (message: string, _cb?: () => unknown) => `${indentation.hasDescribe ? ' ' : ''}${format(`● ${message}`).cyan().bold()}` ); -export const skip = (message: string, _cb?: () => unknown) => +export function skip(message: string, _cb: () => unknown): void; +export function skip(_cb: () => unknown): void; +export function skip( + messageOrCb: string | (() => unknown), + _cb?: () => unknown +) { + const message = + (typeof messageOrCb === 'string' && messageOrCb) || 'Skipping'; + Write.log( `${indentation.hasDescribe ? ' ' : ''}${format(`◯ ${message}`).info().bold()}` ); +} diff --git a/test/__fixtures__/e2e/final-results/skip-it/skip.test.ts b/test/__fixtures__/e2e/final-results/skip-it/skip.test.ts index c909d9c7..55bf8902 100644 --- a/test/__fixtures__/e2e/final-results/skip-it/skip.test.ts +++ b/test/__fixtures__/e2e/final-results/skip-it/skip.test.ts @@ -8,3 +8,7 @@ it.skip('Some skip', () => { it.skip('Multiple skips in the same file should not be counted', () => { exit(1); }); + +it.skip(() => { + exit(1); +}); diff --git a/test/e2e/final-results.test.ts b/test/e2e/final-results.test.ts index 83db0a77..f8c92991 100644 --- a/test/e2e/final-results.test.ts +++ b/test/e2e/final-results.test.ts @@ -27,7 +27,9 @@ describe('Final Results', async () => { assert.match(results.stdout, /PASS › 1/, 'Needs to pass 1'); assert.match(results.stdout, /FAIL › 0/, 'Needs to fail 0'); - assert.match(results.stdout, /SKIP › 2/, 'Needs to skip 2'); + assert.match(results.stdout, /SKIP › 3/, 'Needs to skip 3'); + assert.match(results.stdout, /◯ Some skip/, 'User Messsage'); + assert.match(results.stdout, /◯ Skipping/, 'No Messsage'); }); await it('Skip (describe)', async () => {