From d33aa618aa9c73c57bc50ca832c4bb27004ce864 Mon Sep 17 00:00:00 2001 From: Alexander Mangel Date: Fri, 18 Apr 2025 11:24:33 +0200 Subject: [PATCH 01/12] chore: quick update to latest main Signed-off-by: Alexander Mangel --- packages/prompts/src/spinner.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/prompts/src/spinner.ts b/packages/prompts/src/spinner.ts index 4bad1686..2acc818d 100644 --- a/packages/prompts/src/spinner.ts +++ b/packages/prompts/src/spinner.ts @@ -12,10 +12,12 @@ import { } from './common.js'; export interface SpinnerOptions extends CommonOptions { - indicator?: 'dots' | 'timer'; + indicator?: 'dots' | 'timer' | "custom"; onCancel?: () => void; cancelMessage?: string; errorMessage?: string; + frames?: string[]; + delay?: number; } export interface SpinnerResult { @@ -31,9 +33,10 @@ export const spinner = ({ output = process.stdout, cancelMessage, errorMessage, + ...props }: SpinnerOptions = {}): SpinnerResult => { - const frames = unicode ? ['◒', '◐', '◓', '◑'] : ['•', 'o', 'O', '0']; - const delay = unicode ? 80 : 120; + const frames = props.frames ? props.frames : unicode ? ['◒', '◐', '◓', '◑'] : ['•', 'o', 'O', '0']; + const delay = props.delay ? props.delay : unicode ? 80 : 120; const isCI = isCIFn(); let unblock: () => void; From 4359502e1a0e4309ffde3e3c275c79ab382742c7 Mon Sep 17 00:00:00 2001 From: Alexander Mangel Date: Fri, 18 Apr 2025 13:26:20 +0200 Subject: [PATCH 02/12] fix: remove custom & add spinner tests Signed-off-by: Alexander Mangel --- packages/prompts/src/spinner.ts | 8 ++-- .../test/__snapshots__/spinner.test.ts.snap | 45 +++++++++++++++++++ packages/prompts/test/spinner.test.ts | 25 +++++++++++ 3 files changed, 74 insertions(+), 4 deletions(-) diff --git a/packages/prompts/src/spinner.ts b/packages/prompts/src/spinner.ts index 2acc818d..b1db367e 100644 --- a/packages/prompts/src/spinner.ts +++ b/packages/prompts/src/spinner.ts @@ -12,7 +12,7 @@ import { } from './common.js'; export interface SpinnerOptions extends CommonOptions { - indicator?: 'dots' | 'timer' | "custom"; + indicator?: 'dots' | 'timer'; onCancel?: () => void; cancelMessage?: string; errorMessage?: string; @@ -33,10 +33,10 @@ export const spinner = ({ output = process.stdout, cancelMessage, errorMessage, - ...props + frames = unicode ? ['◒', '◐', '◓', '◑'] : ['•', 'o', 'O', '0'], + delay = unicode ? 80 : 120, }: SpinnerOptions = {}): SpinnerResult => { - const frames = props.frames ? props.frames : unicode ? ['◒', '◐', '◓', '◑'] : ['•', 'o', 'O', '0']; - const delay = props.delay ? props.delay : unicode ? 80 : 120; + const isCI = isCIFn(); let unblock: () => void; diff --git a/packages/prompts/test/__snapshots__/spinner.test.ts.snap b/packages/prompts/test/__snapshots__/spinner.test.ts.snap index f63dcc50..cd5d1bd9 100644 --- a/packages/prompts/test/__snapshots__/spinner.test.ts.snap +++ b/packages/prompts/test/__snapshots__/spinner.test.ts.snap @@ -1,5 +1,32 @@ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html +exports[`spinner (isCI = false) > indicator customization > custom delay 1`] = ` +[ + "[?25l", + "│ +", + "◒ ", + "", + "", + "◐ ", + "", + "", + "◓ ", + "", + "", + "◑ ", +] +`; + +exports[`spinner (isCI = false) > indicator customization > custom frames 1`] = ` +[ + "[?25l", + "│ +", + "🐴 ", +] +`; + exports[`spinner (isCI = false) > message > sets message for next frame 1`] = ` [ "", @@ -195,6 +222,24 @@ exports[`spinner (isCI = false) > stop > renders submit symbol and stops spinner ] `; +exports[`spinner (isCI = true) > indicator customization > custom delay 1`] = ` +[ + "[?25l", + "│ +", + "◒ ...", +] +`; + +exports[`spinner (isCI = true) > indicator customization > custom frames 1`] = ` +[ + "[?25l", + "│ +", + "🐴 ...", +] +`; + exports[`spinner (isCI = true) > message > sets message for next frame 1`] = ` [ "", diff --git a/packages/prompts/test/spinner.test.ts b/packages/prompts/test/spinner.test.ts index 95f97ce6..ffd74298 100644 --- a/packages/prompts/test/spinner.test.ts +++ b/packages/prompts/test/spinner.test.ts @@ -149,6 +149,31 @@ describe.each(['true', 'false'])('spinner (isCI = %s)', (isCI) => { }); }); + describe('indicator customization', () => { + test('custom frames', () => { + const result = prompts.spinner({ output, frames: ['🐴', '🦋', '🐙', '🐶'] }); + + result.start(); + + vi.advanceTimersByTime(80); + + expect(output.buffer).toMatchSnapshot(); + }); + + test('custom delay', () => { + const result = prompts.spinner({ output, delay: 200 }); + + result.start(); + + // there are 4 frames + for (let i = 0; i < 4; i++) { + vi.advanceTimersByTime(200); + } + + expect(output.buffer).toMatchSnapshot(); + }); + }); + describe('process exit handling', () => { let processEmitter: EventEmitter; From a062fc4f2f6ae3226e0b56dab2c84eea037127db Mon Sep 17 00:00:00 2001 From: Alexander Mangel Date: Fri, 18 Apr 2025 13:35:19 +0200 Subject: [PATCH 03/12] fix: add loop to frame test Signed-off-by: Alexander Mangel --- packages/prompts/test/__snapshots__/spinner.test.ts.snap | 9 +++++++++ packages/prompts/test/spinner.test.ts | 5 ++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/prompts/test/__snapshots__/spinner.test.ts.snap b/packages/prompts/test/__snapshots__/spinner.test.ts.snap index cd5d1bd9..27c23af3 100644 --- a/packages/prompts/test/__snapshots__/spinner.test.ts.snap +++ b/packages/prompts/test/__snapshots__/spinner.test.ts.snap @@ -24,6 +24,15 @@ exports[`spinner (isCI = false) > indicator customization > custom frames 1`] = "│ ", "🐴 ", + "", + "", + "🦋 ", + "", + "", + "🐙 ", + "", + "", + "🐶 ", ] `; diff --git a/packages/prompts/test/spinner.test.ts b/packages/prompts/test/spinner.test.ts index ffd74298..cf771e7c 100644 --- a/packages/prompts/test/spinner.test.ts +++ b/packages/prompts/test/spinner.test.ts @@ -155,7 +155,10 @@ describe.each(['true', 'false'])('spinner (isCI = %s)', (isCI) => { result.start(); - vi.advanceTimersByTime(80); + // there are 4 frames + for (let i = 0; i < 4; i++) { + vi.advanceTimersByTime(80); + } expect(output.buffer).toMatchSnapshot(); }); From c7e930a7804b8092226613b0c60ad0be33fb7e44 Mon Sep 17 00:00:00 2001 From: Alexander Mangel Date: Fri, 18 Apr 2025 13:36:52 +0200 Subject: [PATCH 04/12] fix: stop result before assert in tests Signed-off-by: Alexander Mangel --- .../test/__snapshots__/spinner.test.ts.snap | 24 +++++++++++++++++++ packages/prompts/test/spinner.test.ts | 4 ++++ 2 files changed, 28 insertions(+) diff --git a/packages/prompts/test/__snapshots__/spinner.test.ts.snap b/packages/prompts/test/__snapshots__/spinner.test.ts.snap index 27c23af3..fd1737a0 100644 --- a/packages/prompts/test/__snapshots__/spinner.test.ts.snap +++ b/packages/prompts/test/__snapshots__/spinner.test.ts.snap @@ -33,6 +33,11 @@ exports[`spinner (isCI = false) > indicator customization > custom frames 1`] = "", "", "🐶 ", + "", + "", + "◇ +", + "[?25h", ] `; @@ -45,6 +50,11 @@ exports[`spinner (isCI = false) > message > sets message for next frame 1`] = ` "", "", "◐ foo", + "", + "", + "◇ +", + "[?25h", ] `; @@ -246,6 +256,13 @@ exports[`spinner (isCI = true) > indicator customization > custom frames 1`] = ` "│ ", "🐴 ...", + " +", + "", + "", + "◇ +", + "[?25h", ] `; @@ -260,6 +277,13 @@ exports[`spinner (isCI = true) > message > sets message for next frame 1`] = ` "", "", "◐ foo...", + " +", + "", + "", + "◇ +", + "[?25h", ] `; diff --git a/packages/prompts/test/spinner.test.ts b/packages/prompts/test/spinner.test.ts index cf771e7c..8a159b17 100644 --- a/packages/prompts/test/spinner.test.ts +++ b/packages/prompts/test/spinner.test.ts @@ -145,6 +145,8 @@ describe.each(['true', 'false'])('spinner (isCI = %s)', (isCI) => { vi.advanceTimersByTime(80); + result.stop(); + expect(output.buffer).toMatchSnapshot(); }); }); @@ -160,6 +162,8 @@ describe.each(['true', 'false'])('spinner (isCI = %s)', (isCI) => { vi.advanceTimersByTime(80); } + result.stop(); + expect(output.buffer).toMatchSnapshot(); }); From a51f2775fb3a912cf76b727f0f05df2e1f52ce7a Mon Sep 17 00:00:00 2001 From: Alexander Mangel Date: Fri, 18 Apr 2025 13:52:21 +0200 Subject: [PATCH 05/12] fix: snapshot update Signed-off-by: Alexander Mangel --- .../test/__snapshots__/spinner.test.ts.snap | 56 +++++++++---------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/packages/prompts/test/__snapshots__/spinner.test.ts.snap b/packages/prompts/test/__snapshots__/spinner.test.ts.snap index fd1737a0..5afc0a7f 100644 --- a/packages/prompts/test/__snapshots__/spinner.test.ts.snap +++ b/packages/prompts/test/__snapshots__/spinner.test.ts.snap @@ -2,42 +2,42 @@ exports[`spinner (isCI = false) > indicator customization > custom delay 1`] = ` [ - "[?25l", + "", "│ ", "◒ ", - "", - "", + "", + "", "◐ ", - "", - "", + "", + "", "◓ ", - "", - "", + "", + "", "◑ ", ] `; exports[`spinner (isCI = false) > indicator customization > custom frames 1`] = ` [ - "[?25l", + "", "│ ", "🐴 ", - "", - "", + "", + "", "🦋 ", - "", - "", + "", + "", "🐙 ", - "", - "", + "", + "", "🐶 ", - "", - "", + "", + "", "◇ ", - "[?25h", + "", ] `; @@ -50,11 +50,11 @@ exports[`spinner (isCI = false) > message > sets message for next frame 1`] = ` "", "", "◐ foo", - "", - "", + "", + "", "◇ ", - "[?25h", + "", ] `; @@ -243,7 +243,7 @@ exports[`spinner (isCI = false) > stop > renders submit symbol and stops spinner exports[`spinner (isCI = true) > indicator customization > custom delay 1`] = ` [ - "[?25l", + "", "│ ", "◒ ...", @@ -252,17 +252,17 @@ exports[`spinner (isCI = true) > indicator customization > custom delay 1`] = ` exports[`spinner (isCI = true) > indicator customization > custom frames 1`] = ` [ - "[?25l", + "", "│ ", "🐴 ...", " ", - "", - "", + "", + "", "◇ ", - "[?25h", + "", ] `; @@ -279,11 +279,11 @@ exports[`spinner (isCI = true) > message > sets message for next frame 1`] = ` "◐ foo...", " ", - "", - "", + "", + "", "◇ ", - "[?25h", + "", ] `; From b235abcd1a19f851756892aaa27399ef0516eb14 Mon Sep 17 00:00:00 2001 From: Alexander Mangel Date: Fri, 18 Apr 2025 14:02:17 +0200 Subject: [PATCH 06/12] fix: add missing result.stop + snapshot update Signed-off-by: Alexander Mangel --- .../prompts/test/__snapshots__/spinner.test.ts.snap | 12 ++++++++++++ packages/prompts/test/spinner.test.ts | 2 ++ 2 files changed, 14 insertions(+) diff --git a/packages/prompts/test/__snapshots__/spinner.test.ts.snap b/packages/prompts/test/__snapshots__/spinner.test.ts.snap index 5afc0a7f..dfa16a95 100644 --- a/packages/prompts/test/__snapshots__/spinner.test.ts.snap +++ b/packages/prompts/test/__snapshots__/spinner.test.ts.snap @@ -15,6 +15,11 @@ exports[`spinner (isCI = false) > indicator customization > custom delay 1`] = ` "", "", "◑ ", + "", + "", + "◇ +", + "", ] `; @@ -247,6 +252,13 @@ exports[`spinner (isCI = true) > indicator customization > custom delay 1`] = ` "│ ", "◒ ...", + " +", + "", + "", + "◇ +", + "", ] `; diff --git a/packages/prompts/test/spinner.test.ts b/packages/prompts/test/spinner.test.ts index 8a159b17..88389dcb 100644 --- a/packages/prompts/test/spinner.test.ts +++ b/packages/prompts/test/spinner.test.ts @@ -176,6 +176,8 @@ describe.each(['true', 'false'])('spinner (isCI = %s)', (isCI) => { for (let i = 0; i < 4; i++) { vi.advanceTimersByTime(200); } + + result.stop(); expect(output.buffer).toMatchSnapshot(); }); From 736e6d7f698337fdf7bca223438f9e6cc772cc38 Mon Sep 17 00:00:00 2001 From: Alexander Mangel Date: Fri, 18 Apr 2025 18:37:33 +0200 Subject: [PATCH 07/12] fix: added `result.stop` to more tests + snapshot update Signed-off-by: Alexander Mangel --- .../test/__snapshots__/spinner.test.ts.snap | 36 ------------------- packages/prompts/test/spinner.test.ts | 18 ++++++---- 2 files changed, 12 insertions(+), 42 deletions(-) diff --git a/packages/prompts/test/__snapshots__/spinner.test.ts.snap b/packages/prompts/test/__snapshots__/spinner.test.ts.snap index dfa16a95..bacc3250 100644 --- a/packages/prompts/test/__snapshots__/spinner.test.ts.snap +++ b/packages/prompts/test/__snapshots__/spinner.test.ts.snap @@ -15,11 +15,6 @@ exports[`spinner (isCI = false) > indicator customization > custom delay 1`] = ` "", "", "◑ ", - "", - "", - "◇ -", - "", ] `; @@ -38,11 +33,6 @@ exports[`spinner (isCI = false) > indicator customization > custom frames 1`] = "", "", "🐶 ", - "", - "", - "◇ -", - "", ] `; @@ -55,11 +45,6 @@ exports[`spinner (isCI = false) > message > sets message for next frame 1`] = ` "", "", "◐ foo", - "", - "", - "◇ -", - "", ] `; @@ -252,13 +237,6 @@ exports[`spinner (isCI = true) > indicator customization > custom delay 1`] = ` "│ ", "◒ ...", - " -", - "", - "", - "◇ -", - "", ] `; @@ -268,13 +246,6 @@ exports[`spinner (isCI = true) > indicator customization > custom frames 1`] = ` "│ ", "🐴 ...", - " -", - "", - "", - "◇ -", - "", ] `; @@ -289,13 +260,6 @@ exports[`spinner (isCI = true) > message > sets message for next frame 1`] = ` "", "", "◐ foo...", - " -", - "", - "", - "◇ -", - "", ] `; diff --git a/packages/prompts/test/spinner.test.ts b/packages/prompts/test/spinner.test.ts index 88389dcb..5c8c4188 100644 --- a/packages/prompts/test/spinner.test.ts +++ b/packages/prompts/test/spinner.test.ts @@ -46,6 +46,8 @@ describe.each(['true', 'false'])('spinner (isCI = %s)', (isCI) => { } expect(output.buffer).toMatchSnapshot(); + + result.stop(); }); test('renders message', () => { @@ -56,6 +58,8 @@ describe.each(['true', 'false'])('spinner (isCI = %s)', (isCI) => { vi.advanceTimersByTime(80); expect(output.buffer).toMatchSnapshot(); + + result.stop(); }); test('renders timer when indicator is "timer"', () => { @@ -66,6 +70,8 @@ describe.each(['true', 'false'])('spinner (isCI = %s)', (isCI) => { vi.advanceTimersByTime(80); expect(output.buffer).toMatchSnapshot(); + + result.stop(); }); }); @@ -145,9 +151,9 @@ describe.each(['true', 'false'])('spinner (isCI = %s)', (isCI) => { vi.advanceTimersByTime(80); - result.stop(); - expect(output.buffer).toMatchSnapshot(); + + result.stop(); }); }); @@ -162,9 +168,9 @@ describe.each(['true', 'false'])('spinner (isCI = %s)', (isCI) => { vi.advanceTimersByTime(80); } - result.stop(); - expect(output.buffer).toMatchSnapshot(); + + result.stop(); }); test('custom delay', () => { @@ -177,9 +183,9 @@ describe.each(['true', 'false'])('spinner (isCI = %s)', (isCI) => { vi.advanceTimersByTime(200); } - result.stop(); - expect(output.buffer).toMatchSnapshot(); + + result.stop(); }); }); From 5af44982d1c9bd2730b87fc9b6127ce8f71d4d02 Mon Sep 17 00:00:00 2001 From: Alexander Mangel Date: Tue, 22 Apr 2025 07:38:53 +0200 Subject: [PATCH 08/12] fix: stop before expect Signed-off-by: Alexander Mangel --- .../test/__snapshots__/spinner.test.ts.snap | 72 +++++++++++++++++++ packages/prompts/test/spinner.test.ts | 18 +++-- 2 files changed, 84 insertions(+), 6 deletions(-) diff --git a/packages/prompts/test/__snapshots__/spinner.test.ts.snap b/packages/prompts/test/__snapshots__/spinner.test.ts.snap index bacc3250..1e6468de 100644 --- a/packages/prompts/test/__snapshots__/spinner.test.ts.snap +++ b/packages/prompts/test/__snapshots__/spinner.test.ts.snap @@ -15,6 +15,11 @@ exports[`spinner (isCI = false) > indicator customization > custom delay 1`] = ` "", "", "◑ ", + "", + "", + "◇ +", + "", ] `; @@ -33,6 +38,11 @@ exports[`spinner (isCI = false) > indicator customization > custom frames 1`] = "", "", "🐶 ", + "", + "", + "◇ +", + "", ] `; @@ -45,6 +55,11 @@ exports[`spinner (isCI = false) > message > sets message for next frame 1`] = ` "", "", "◐ foo", + "", + "", + "◇ +", + "", ] `; @@ -140,6 +155,11 @@ exports[`spinner (isCI = false) > start > renders frames at interval 1`] = ` "", "", "◑ ", + "", + "", + "◇ +", + "", ] `; @@ -149,6 +169,11 @@ exports[`spinner (isCI = false) > start > renders message 1`] = ` "│ ", "◒ foo", + "", + "", + "◇ +", + "", ] `; @@ -158,6 +183,11 @@ exports[`spinner (isCI = false) > start > renders timer when indicator is "timer "│ ", "◒ [0s]", + "", + "", + "◇ [0s] +", + "", ] `; @@ -237,6 +267,13 @@ exports[`spinner (isCI = true) > indicator customization > custom delay 1`] = ` "│ ", "◒ ...", + " +", + "", + "", + "◇ +", + "", ] `; @@ -246,6 +283,13 @@ exports[`spinner (isCI = true) > indicator customization > custom frames 1`] = ` "│ ", "🐴 ...", + " +", + "", + "", + "◇ +", + "", ] `; @@ -260,6 +304,13 @@ exports[`spinner (isCI = true) > message > sets message for next frame 1`] = ` "", "", "◐ foo...", + " +", + "", + "", + "◇ +", + "", ] `; @@ -346,6 +397,13 @@ exports[`spinner (isCI = true) > start > renders frames at interval 1`] = ` "│ ", "◒ ...", + " +", + "", + "", + "◇ +", + "", ] `; @@ -355,6 +413,13 @@ exports[`spinner (isCI = true) > start > renders message 1`] = ` "│ ", "◒ foo...", + " +", + "", + "", + "◇ +", + "", ] `; @@ -364,6 +429,13 @@ exports[`spinner (isCI = true) > start > renders timer when indicator is "timer" "│ ", "◒ ...", + " +", + "", + "", + "◇ [0s] +", + "", ] `; diff --git a/packages/prompts/test/spinner.test.ts b/packages/prompts/test/spinner.test.ts index 5c8c4188..df416824 100644 --- a/packages/prompts/test/spinner.test.ts +++ b/packages/prompts/test/spinner.test.ts @@ -45,9 +45,10 @@ describe.each(['true', 'false'])('spinner (isCI = %s)', (isCI) => { vi.advanceTimersByTime(80); } + result.stop(); + expect(output.buffer).toMatchSnapshot(); - result.stop(); }); test('renders message', () => { @@ -57,9 +58,10 @@ describe.each(['true', 'false'])('spinner (isCI = %s)', (isCI) => { vi.advanceTimersByTime(80); + result.stop(); + expect(output.buffer).toMatchSnapshot(); - result.stop(); }); test('renders timer when indicator is "timer"', () => { @@ -69,9 +71,10 @@ describe.each(['true', 'false'])('spinner (isCI = %s)', (isCI) => { vi.advanceTimersByTime(80); + result.stop(); + expect(output.buffer).toMatchSnapshot(); - result.stop(); }); }); @@ -151,9 +154,10 @@ describe.each(['true', 'false'])('spinner (isCI = %s)', (isCI) => { vi.advanceTimersByTime(80); + result.stop(); + expect(output.buffer).toMatchSnapshot(); - result.stop(); }); }); @@ -168,9 +172,10 @@ describe.each(['true', 'false'])('spinner (isCI = %s)', (isCI) => { vi.advanceTimersByTime(80); } + result.stop(); + expect(output.buffer).toMatchSnapshot(); - result.stop(); }); test('custom delay', () => { @@ -183,9 +188,10 @@ describe.each(['true', 'false'])('spinner (isCI = %s)', (isCI) => { vi.advanceTimersByTime(200); } + result.stop(); + expect(output.buffer).toMatchSnapshot(); - result.stop(); }); }); From 79fdb434549a5334d468f9c28b3037227a7df55c Mon Sep 17 00:00:00 2001 From: Alexander Mangel Date: Tue, 22 Apr 2025 07:46:24 +0200 Subject: [PATCH 09/12] fix: caught up with main Signed-off-by: Alexander Mangel --- packages/prompts/src/spinner.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/prompts/src/spinner.ts b/packages/prompts/src/spinner.ts index b1db367e..7766d33c 100644 --- a/packages/prompts/src/spinner.ts +++ b/packages/prompts/src/spinner.ts @@ -36,7 +36,6 @@ export const spinner = ({ frames = unicode ? ['◒', '◐', '◓', '◑'] : ['•', 'o', 'O', '0'], delay = unicode ? 80 : 120, }: SpinnerOptions = {}): SpinnerResult => { - const isCI = isCIFn(); let unblock: () => void; From 634c9b16ca419e37f93c2da51ae61fd7ffbe3dd7 Mon Sep 17 00:00:00 2001 From: Alexander Mangel Date: Tue, 22 Apr 2025 10:28:33 +0200 Subject: [PATCH 10/12] chore: add changeset Signed-off-by: Alexander Mangel --- .changeset/thin-socks-travel.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/thin-socks-travel.md diff --git a/.changeset/thin-socks-travel.md b/.changeset/thin-socks-travel.md new file mode 100644 index 00000000..877dd084 --- /dev/null +++ b/.changeset/thin-socks-travel.md @@ -0,0 +1,5 @@ +--- +"@clack/prompts": minor +--- + +Support for custom spinner From f2c7dd9c11a619274ec6f8dd96e52abfd67485b7 Mon Sep 17 00:00:00 2001 From: James Garbutt <43081j@users.noreply.github.com> Date: Tue, 22 Apr 2025 09:37:54 +0100 Subject: [PATCH 11/12] chore: update changeset wording --- .changeset/thin-socks-travel.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/thin-socks-travel.md b/.changeset/thin-socks-travel.md index 877dd084..89e23f09 100644 --- a/.changeset/thin-socks-travel.md +++ b/.changeset/thin-socks-travel.md @@ -2,4 +2,4 @@ "@clack/prompts": minor --- -Support for custom spinner +Added support for custom frames in spinner prompt From f4461cff40541e930500f908fd79d18ead3f5c24 Mon Sep 17 00:00:00 2001 From: James Garbutt <43081j@users.noreply.github.com> Date: Tue, 22 Apr 2025 09:39:03 +0100 Subject: [PATCH 12/12] chore: run format --- packages/prompts/test/spinner.test.ts | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/packages/prompts/test/spinner.test.ts b/packages/prompts/test/spinner.test.ts index df416824..350506cd 100644 --- a/packages/prompts/test/spinner.test.ts +++ b/packages/prompts/test/spinner.test.ts @@ -46,9 +46,8 @@ describe.each(['true', 'false'])('spinner (isCI = %s)', (isCI) => { } result.stop(); - - expect(output.buffer).toMatchSnapshot(); + expect(output.buffer).toMatchSnapshot(); }); test('renders message', () => { @@ -61,7 +60,6 @@ describe.each(['true', 'false'])('spinner (isCI = %s)', (isCI) => { result.stop(); expect(output.buffer).toMatchSnapshot(); - }); test('renders timer when indicator is "timer"', () => { @@ -74,7 +72,6 @@ describe.each(['true', 'false'])('spinner (isCI = %s)', (isCI) => { result.stop(); expect(output.buffer).toMatchSnapshot(); - }); }); @@ -157,7 +154,6 @@ describe.each(['true', 'false'])('spinner (isCI = %s)', (isCI) => { result.stop(); expect(output.buffer).toMatchSnapshot(); - }); }); @@ -175,7 +171,6 @@ describe.each(['true', 'false'])('spinner (isCI = %s)', (isCI) => { result.stop(); expect(output.buffer).toMatchSnapshot(); - }); test('custom delay', () => { @@ -187,11 +182,10 @@ describe.each(['true', 'false'])('spinner (isCI = %s)', (isCI) => { for (let i = 0; i < 4; i++) { vi.advanceTimersByTime(200); } - + result.stop(); expect(output.buffer).toMatchSnapshot(); - }); });