Skip to content

Commit 7954df4

Browse files
committed
fix(terminal-prompt): remove need for consumer to provide decisions
1 parent cff87ff commit 7954df4

File tree

4 files changed

+14
-9
lines changed

4 files changed

+14
-9
lines changed

src/prompts/terminal-prompt.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {prompt} from '@form8ion/overridable-prompts';
22

3-
export default function ({questions, decisions}) {
4-
return prompt(questions, decisions);
3+
export default function (decisions) {
4+
return ({questions}) => prompt(questions, decisions);
55
}

src/prompts/terminal-prompt.test.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,6 @@ describe('terminal prompt', () => {
1515
const answers = any.simpleObject();
1616
when(promptWithInquirer).calledWith(questions, decisions).mockResolvedValue(answers);
1717

18-
expect(await prompt({questions, decisions})).toEqual(answers);
18+
expect(await prompt(decisions)({questions})).toEqual(answers);
1919
});
2020
});

src/vcs/host/scaffolder.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {questionNames} from '../../prompts/question-names.js';
2-
import terminalPrompt from '../../prompts/terminal-prompt.js';
2+
import terminalPromptFactory from '../../prompts/terminal-prompt.js';
33
import promptForVcsHostDetails from './prompt.js';
44

55
export default async function (hosts, visibility, decisions, options) {
@@ -13,7 +13,7 @@ export default async function (hosts, visibility, decisions, options) {
1313
);
1414
const host = lowercasedHosts[chosenHost.toLowerCase()];
1515

16-
if (host) return host.scaffold({...options, owner}, {prompt: terminalPrompt});
16+
if (host) return host.scaffold({...options, owner}, {prompt: terminalPromptFactory(decisions)});
1717

1818
return {vcs: {}};
1919
}

src/vcs/host/scaffolder.test.js

+9-4
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@ import {describe, expect, it, vi} from 'vitest';
22
import any from '@travi/any';
33
import {when} from 'jest-when';
44

5-
import scaffoldVcsHost from './scaffolder.js';
6-
import promptForVcsHostDetails from './prompt.js';
75
import {questionNames} from '../../prompts/question-names.js';
8-
import terminalPrompt from '../../prompts/terminal-prompt.js';
6+
import terminalPromptFactory from '../../prompts/terminal-prompt.js';
7+
import promptForVcsHostDetails from './prompt.js';
8+
import scaffoldVcsHost from './scaffolder.js';
99

10+
vi.mock('../../prompts/terminal-prompt.js');
1011
vi.mock('./prompt');
1112

1213
describe('vcs host scaffolder', () => {
@@ -20,10 +21,14 @@ describe('vcs host scaffolder', () => {
2021
const chosenHostScaffolder = vi.fn();
2122
const hostPlugins = {...any.simpleObject(), [chosenHost.toLowerCase()]: {scaffold: chosenHostScaffolder}};
2223
const owner = any.word;
24+
const terminalPrompt = () => undefined;
25+
when(terminalPromptFactory).calledWith(decisions).mockReturnValue(terminalPrompt);
2326
when(promptForVcsHostDetails)
2427
.calledWith(hostPlugins, visibility, decisions)
2528
.mockResolvedValue({[questionNames.REPO_HOST]: chosenHost, [questionNames.REPO_OWNER]: owner});
26-
when(chosenHostScaffolder).calledWith({...options, owner}, {prompt: terminalPrompt}).mockResolvedValue(results);
29+
when(chosenHostScaffolder)
30+
.calledWith({...options, owner}, {prompt: terminalPrompt})
31+
.mockResolvedValue(results);
2732

2833
expect(await scaffoldVcsHost(hostPlugins, visibility, decisions, options))
2934
.toEqual(results);

0 commit comments

Comments
 (0)