Skip to content

Commit f0caf47

Browse files
committed
edit note component test file, update note component test snapshot, fix note component overflow bug
1 parent c4bbe7d commit f0caf47

File tree

3 files changed

+80
-4
lines changed

3 files changed

+80
-4
lines changed

packages/prompts/src/note.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,20 +22,20 @@ const defaultNoteFormatter = (line: string): string => color.dim(line);
2222
export const note = (message = '', title = '', opts?: NoteOptions) => {
2323
const output: Writable = opts?.output ?? process.stdout;
2424
const format = opts?.format ?? defaultNoteFormatter;
25-
const wrapMsg = wrapAnsi(`\n${message}\n`, process.stdout.columns - 6);
25+
const wrapMsg = wrapAnsi(message, output.columns - 6);
26+
const lines = ['', ...wrapMsg.split('\n').map(format), ''];
2627
const titleLen = strip(title).length;
27-
const lines = wrapMsg.split('\n');
2828
const len = Math.max(
2929
lines.reduce((sum, ln) => {
3030
const line = strip(ln);
3131
return line.length > sum ? line.length : sum;
3232
}, 0),
3333
titleLen
34-
);
34+
);
3535
const header = `${color.green(S_STEP_SUBMIT)} ${color.reset(title)} ${color.gray(S_BAR_H.repeat(len - titleLen + 1) + S_CORNER_TOP_RIGHT)}`;
3636
const noteLines = lines.map(
3737
(line) =>
38-
`${color.gray(S_BAR)} ${format(line)}${' '.repeat(len - strip(line).length + 2)}${color.gray(S_BAR)}`
38+
`${color.gray(S_BAR)} ${line}${' '.repeat(len - strip(line).length + 2)}${color.gray(S_BAR)}`
3939
);
4040
const footer = `${color.gray(S_CONNECT_LEFT + S_BAR_H.repeat(len + 4) + S_CORNER_BOTTOM_RIGHT)}`;
4141
output.write(`${color.gray(S_BAR)}\n${header}\n${noteLines.join('\n')}\n${footer}\n`);

packages/prompts/test/__snapshots__/note.test.ts.snap

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,36 @@
11
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
22

3+
exports[`note (isCI = false) > don't overflow 1`] = `
4+
[
5+
"│
6+
◇ title ─────────────────────────────────────────────────────────────────╮
7+
│ │
8+
│ Eiusmod sint officia proident qui ex tempor laborum ut. Voluptate │
9+
│ dolore excepteur sunt adipisicing laborum non ea elit. Consectetur │
10+
│ exercitation ad laboris consectetur nisi minim labore culpa enim. │
11+
│ Eiusmod duis minim velit mollit nisi. Laboris magna qui fugiat sit │
12+
│ minim. Aliqua id aute sunt proident do tempor mollit nulla veniam │
13+
│ exercitation est ipsum occaecat nostrud. Exercitation ullamco │
14+
│ proident ex ut et in ut. │
15+
│ Dolore magna proident id in magna quis. Sunt et laboris Lorem │
16+
│ adipisicing nisi id proident qui enim laboris proident do. Fugiat eu │
17+
│ commodo exercitation ipsum in aliquip ipsum magna consequat laborum. │
18+
│ Id aute enim enim officia in do aliqua voluptate aute nulla proident. │
19+
│ Mollit pariatur exercitation sit mollit in exercitation culpa │
20+
│ deserunt sunt laboris aliquip cillum mollit ad. Aliquip exercitation │
21+
│ adipisicing qui laboris ea do occaecat elit magna commodo sint │
22+
│ adipisicing. │
23+
│ Fugiat veniam non nostrud reprehenderit tempor quis officia ad │
24+
│ reprehenderit. Veniam ut est irure est. Laboris reprehenderit dolor │
25+
│ dolor id laborum nulla velit et in sunt aliquip. Culpa voluptate │
26+
│ dolore enim ut incididunt dolor sint cupidatat enim. Irure sint │
27+
│ consectetur minim velit aliquip consequat enim ex in sunt. │
28+
│ │
29+
├─────────────────────────────────────────────────────────────────────────╯
30+
",
31+
]
32+
`;
33+
334
exports[`note (isCI = false) > formatter which adds colors works 1`] = `
435
[
536
"│
@@ -53,6 +84,37 @@ exports[`note (isCI = false) > renders message with title 1`] = `
5384
]
5485
`;
5586

87+
exports[`note (isCI = true) > don't overflow 1`] = `
88+
[
89+
"│
90+
◇ title ─────────────────────────────────────────────────────────────────╮
91+
│ │
92+
│ Eiusmod sint officia proident qui ex tempor laborum ut. Voluptate │
93+
│ dolore excepteur sunt adipisicing laborum non ea elit. Consectetur │
94+
│ exercitation ad laboris consectetur nisi minim labore culpa enim. │
95+
│ Eiusmod duis minim velit mollit nisi. Laboris magna qui fugiat sit │
96+
│ minim. Aliqua id aute sunt proident do tempor mollit nulla veniam │
97+
│ exercitation est ipsum occaecat nostrud. Exercitation ullamco │
98+
│ proident ex ut et in ut. │
99+
│ Dolore magna proident id in magna quis. Sunt et laboris Lorem │
100+
│ adipisicing nisi id proident qui enim laboris proident do. Fugiat eu │
101+
│ commodo exercitation ipsum in aliquip ipsum magna consequat laborum. │
102+
│ Id aute enim enim officia in do aliqua voluptate aute nulla proident. │
103+
│ Mollit pariatur exercitation sit mollit in exercitation culpa │
104+
│ deserunt sunt laboris aliquip cillum mollit ad. Aliquip exercitation │
105+
│ adipisicing qui laboris ea do occaecat elit magna commodo sint │
106+
│ adipisicing. │
107+
│ Fugiat veniam non nostrud reprehenderit tempor quis officia ad │
108+
│ reprehenderit. Veniam ut est irure est. Laboris reprehenderit dolor │
109+
│ dolor id laborum nulla velit et in sunt aliquip. Culpa voluptate │
110+
│ dolore enim ut incididunt dolor sint cupidatat enim. Irure sint │
111+
│ consectetur minim velit aliquip consequat enim ex in sunt. │
112+
│ │
113+
├─────────────────────────────────────────────────────────────────────────╯
114+
",
115+
]
116+
`;
117+
56118
exports[`note (isCI = true) > formatter which adds colors works 1`] = `
57119
[
58120
"│

packages/prompts/test/note.test.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,4 +63,18 @@ describe.each(['true', 'false'])('note (isCI = %s)', (isCI) => {
6363

6464
expect(output.buffer).toMatchSnapshot();
6565
});
66+
67+
test('don\'t overflow', () => {
68+
const lorem = [
69+
"Eiusmod sint officia proident qui ex tempor laborum ut. Voluptate dolore excepteur sunt adipisicing laborum non ea elit. Consectetur exercitation ad laboris consectetur nisi minim labore culpa enim. Eiusmod duis minim velit mollit nisi. Laboris magna qui fugiat sit minim. Aliqua id aute sunt proident do tempor mollit nulla veniam exercitation est ipsum occaecat nostrud. Exercitation ullamco proident ex ut et in ut.",
70+
"Dolore magna proident id in magna quis. Sunt et laboris Lorem adipisicing nisi id proident qui enim laboris proident do. Fugiat eu commodo exercitation ipsum in aliquip ipsum magna consequat laborum. Id aute enim enim officia in do aliqua voluptate aute nulla proident. Mollit pariatur exercitation sit mollit in exercitation culpa deserunt sunt laboris aliquip cillum mollit ad. Aliquip exercitation adipisicing qui laboris ea do occaecat elit magna commodo sint adipisicing.",
71+
"Fugiat veniam non nostrud reprehenderit tempor quis officia ad reprehenderit. Veniam ut est irure est. Laboris reprehenderit dolor dolor id laborum nulla velit et in sunt aliquip. Culpa voluptate dolore enim ut incididunt dolor sint cupidatat enim. Irure sint consectetur minim velit aliquip consequat enim ex in sunt.",
72+
];
73+
prompts.note(lorem.join("\n"), 'title', {
74+
input,
75+
output: Object.assign(output, { columns: 75 }),
76+
});
77+
78+
expect(output.buffer).toMatchSnapshot();
79+
});
6680
});

0 commit comments

Comments
 (0)