Skip to content

Commit cff87ff

Browse files
committed
feat(vcs-host): provided the terminal-prompt to the vcs-host scaffolder
1 parent 493d939 commit cff87ff

File tree

4 files changed

+30
-3
lines changed

4 files changed

+30
-3
lines changed

src/prompts/terminal-prompt.js

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import {prompt} from '@form8ion/overridable-prompts';
2+
3+
export default function ({questions, decisions}) {
4+
return prompt(questions, decisions);
5+
}

src/prompts/terminal-prompt.test.js

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import {prompt as promptWithInquirer} from '@form8ion/overridable-prompts';
2+
3+
import {when} from 'jest-when';
4+
import {describe, it, vi, expect} from 'vitest';
5+
import any from '@travi/any';
6+
7+
import prompt from './terminal-prompt.js';
8+
9+
vi.mock('@form8ion/overridable-prompts');
10+
11+
describe('terminal prompt', () => {
12+
it('should present the provided questions using inquirer', async () => {
13+
const questions = any.listOf(any.simpleObject);
14+
const decisions = any.simpleObject();
15+
const answers = any.simpleObject();
16+
when(promptWithInquirer).calledWith(questions, decisions).mockResolvedValue(answers);
17+
18+
expect(await prompt({questions, decisions})).toEqual(answers);
19+
});
20+
});

src/vcs/host/scaffolder.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
import promptForVcsHostDetails from './prompt.js';
21
import {questionNames} from '../../prompts/question-names.js';
2+
import terminalPrompt from '../../prompts/terminal-prompt.js';
3+
import promptForVcsHostDetails from './prompt.js';
34

45
export default async function (hosts, visibility, decisions, options) {
56
const {
@@ -12,7 +13,7 @@ export default async function (hosts, visibility, decisions, options) {
1213
);
1314
const host = lowercasedHosts[chosenHost.toLowerCase()];
1415

15-
if (host) return host.scaffold({...options, owner});
16+
if (host) return host.scaffold({...options, owner}, {prompt: terminalPrompt});
1617

1718
return {vcs: {}};
1819
}

src/vcs/host/scaffolder.test.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import {when} from 'jest-when';
55
import scaffoldVcsHost from './scaffolder.js';
66
import promptForVcsHostDetails from './prompt.js';
77
import {questionNames} from '../../prompts/question-names.js';
8+
import terminalPrompt from '../../prompts/terminal-prompt.js';
89

910
vi.mock('./prompt');
1011

@@ -22,7 +23,7 @@ describe('vcs host scaffolder', () => {
2223
when(promptForVcsHostDetails)
2324
.calledWith(hostPlugins, visibility, decisions)
2425
.mockResolvedValue({[questionNames.REPO_HOST]: chosenHost, [questionNames.REPO_OWNER]: owner});
25-
when(chosenHostScaffolder).calledWith({...options, owner}).mockResolvedValue(results);
26+
when(chosenHostScaffolder).calledWith({...options, owner}, {prompt: terminalPrompt}).mockResolvedValue(results);
2627

2728
expect(await scaffoldVcsHost(hostPlugins, visibility, decisions, options))
2829
.toEqual(results);

0 commit comments

Comments
 (0)