Skip to content

Commit 2b9d1b8

Browse files
committed
refactoring
1 parent eada2ff commit 2b9d1b8

File tree

3 files changed

+23
-29
lines changed

3 files changed

+23
-29
lines changed

packages/inquirer/inquirer.test.ts

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -760,8 +760,7 @@ describe('inquirer.prompt(...)', () => {
760760
]);
761761

762762
const output = writeSpy.mock.calls.map(([text]) => text).join('');
763-
expect(output).toMatch(/Question 2/);
764-
expect(output.includes('\x1b[2m')).toBe(true);
763+
expect(output).toContain('Question 2');
765764
expect(answers).toEqual({ q1: 'bar' });
766765
writeSpy.mockRestore();
767766
});
@@ -791,7 +790,7 @@ describe('inquirer.prompt(...)', () => {
791790
]);
792791

793792
const output = writeSpy.mock.calls.map(([text]) => text).join('');
794-
expect(output).not.toMatch(/Question 2/);
793+
expect(output).not.toContain('Question 2');
795794
expect(answers).toEqual({ q1: 'bar', q3: 'bar' });
796795
writeSpy.mockRestore();
797796
});
@@ -812,8 +811,8 @@ describe('inquirer.prompt(...)', () => {
812811
]);
813812

814813
const output = writeSpy.mock.calls.map(([text]) => text).join('');
815-
expect(output).toMatch(/Are you sure\?.*Yes/);
816-
expect(output.includes('\x1b[2m')).toBe(true);
814+
expect(output).toContain('Are you sure?');
815+
expect(output).toContain('Yes');
817816
expect(answers).toEqual({ q1: 'bar' });
818817
writeSpy.mockRestore();
819818
});
@@ -838,8 +837,8 @@ describe('inquirer.prompt(...)', () => {
838837
]);
839838

840839
const output = writeSpy.mock.calls.map(([text]) => text).join('');
841-
expect(output).toMatch(/Select fruit.*Banana/);
842-
expect(output.includes('\x1b[2m')).toBe(true);
840+
expect(output).toContain('Select fruit');
841+
expect(output).toContain('Banana');
843842
expect(answers).toEqual({ q1: 'bar' });
844843
writeSpy.mockRestore();
845844
});
@@ -865,8 +864,8 @@ describe('inquirer.prompt(...)', () => {
865864
]);
866865

867866
const output = writeSpy.mock.calls.map(([text]) => text).join('');
868-
expect(output).toMatch(/Pick foods.*Pizza, Burger/);
869-
expect(output.includes('\x1b[2m')).toBe(true);
867+
expect(output).toContain('Pick foods');
868+
expect(output).toContain('Pizza, Burger');
870869
expect(answers).toEqual({ q1: 'bar' });
871870
writeSpy.mockRestore();
872871
});
@@ -888,8 +887,8 @@ describe('inquirer.prompt(...)', () => {
888887
]);
889888

890889
const output = writeSpy.mock.calls.map(([text]) => text).join('');
891-
expect(output).toMatch(/Enter password.*\[PASSWORD SET\]/);
892-
expect(output.includes('\x1b[2m')).toBe(true);
890+
expect(output).toContain('Enter password');
891+
expect(output).toContain('[PASSWORD SET]');
893892
expect(answers).toEqual({ q1: 'bar' });
894893
writeSpy.mockRestore();
895894
});
@@ -911,8 +910,8 @@ describe('inquirer.prompt(...)', () => {
911910
]);
912911

913912
const output = writeSpy.mock.calls.map(([text]) => text).join('');
914-
expect(output).toMatch(/Write content.*\[Default Content\]/);
915-
expect(output.includes('\x1b[2m')).toBe(true);
913+
expect(output).toContain('Write content');
914+
expect(output).toContain('[Default Content]');
916915
expect(answers).toEqual({ q1: 'bar' });
917916
writeSpy.mockRestore();
918917
});
@@ -934,8 +933,8 @@ describe('inquirer.prompt(...)', () => {
934933
]);
935934

936935
const output = writeSpy.mock.calls.map(([text]) => text).join('');
937-
expect(output).toMatch(/Enter name.*John/);
938-
expect(output.includes('\x1b[2m')).toBe(true);
936+
expect(output).toContain('Enter name');
937+
expect(output).toContain('John');
939938
expect(answers).toEqual({ q1: 'bar' });
940939
writeSpy.mockRestore();
941940
});
@@ -957,8 +956,8 @@ describe('inquirer.prompt(...)', () => {
957956
]);
958957

959958
const output = writeSpy.mock.calls.map(([text]) => text).join('');
960-
expect(output).toMatch(/Enter age.*25/);
961-
expect(output.includes('\x1b[2m')).toBe(true);
959+
expect(output).toContain('Enter age');
960+
expect(output).toContain('25');
962961
expect(answers).toEqual({ q1: 'bar' });
963962
writeSpy.mockRestore();
964963
});

packages/inquirer/src/ui/prompt.ts

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -394,11 +394,10 @@ export default class PromptsRunner<A extends Answers> {
394394
});
395395
};
396396

397-
private displaySkippedQuestion(question: Question<A>) {
397+
private displaySkippedQuestion(question: Question<any>) {
398+
const output = this.opt.output || process.stdout;
398399
const renderer = SkippedRenderer[question.type] || SkippedRenderer.default;
399-
type RendererFunc<A extends Answers> = (question: Question<A>) => string;
400-
const outputText = (renderer as RendererFunc<A>)(question);
401-
(this.opt.output || process.stdout).write(`${outputText}\n`);
400+
output.write(`${renderer(question)}\n`);
402401
}
403402

404403
/**
@@ -419,13 +418,9 @@ export default class PromptsRunner<A extends Answers> {
419418
const { when } = question;
420419
if (typeof when === 'function') {
421420
const shouldRun = await runAsync(when)(this.answers);
422-
if (typeof shouldRun === 'object') {
423-
const display = shouldRun.display;
424-
const ask = shouldRun.ask;
425-
return { display, ask };
426-
}
427-
const ask = Boolean(shouldRun);
428-
return { display: ask, ask };
421+
return typeof shouldRun === 'object'
422+
? shouldRun
423+
: { display: Boolean(shouldRun), ask: Boolean(shouldRun) };
429424
}
430425

431426
const ask = when !== false;

packages/inquirer/src/ui/skipped-renderer.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Answers, Question } from '../types.ts';
1+
import type { Answers, Question } from '../types.ts';
22
import { makeTheme } from '@inquirer/core';
33

44
type RendererFunction<A extends Answers = Answers> = (question: Question<A>) => string;

0 commit comments

Comments
 (0)