Skip to content

Commit f78bea9

Browse files
authored
fix: trim trailing white spaces in code block (#9591)
1 parent 70d4c2e commit f78bea9

File tree

15 files changed

+129
-131
lines changed

15 files changed

+129
-131
lines changed

packages/vitest/src/node/printError.ts

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -469,10 +469,8 @@ export function generateCodeFrame(
469469
return ''
470470
}
471471

472-
res.push(
473-
lineNo(j + 1)
474-
+ truncateString(lines[j].replace(/\t/g, ' '), columns - 5 - indent),
475-
)
472+
const truncatedLine = truncateString(lines[j].replace(/\t/g, ' '), columns - 5 - indent).trimEnd()
473+
res.push(lineNo(j + 1) + (truncatedLine ? ' ' + truncatedLine : truncatedLine))
476474

477475
if (j === i) {
478476
// push underline
@@ -481,12 +479,12 @@ export function generateCodeFrame(
481479
1,
482480
end > count ? lineLength - pad : end - start,
483481
)
484-
res.push(lineNo() + ' '.repeat(pad) + c.red('^'.repeat(length)))
482+
res.push(lineNo() + ' '.repeat(pad + 1) + c.red('^'.repeat(length)))
485483
}
486484
else if (j > i) {
487485
if (end > count) {
488486
const length = Math.max(1, Math.min(end - count, lineLength))
489-
res.push(lineNo() + c.red('^'.repeat(length)))
487+
res.push(lineNo() + ' ' + c.red('^'.repeat(length)))
490488
}
491489
count += lineLength + 1
492490
}
@@ -503,5 +501,5 @@ export function generateCodeFrame(
503501
}
504502

505503
function lineNo(no: number | string = '') {
506-
return c.gray(`${String(no).padStart(3, ' ')}| `)
504+
return c.gray(`${String(no).padStart(3, ' ')}|`)
507505
}

test/browser/specs/__snapshots__/expect-element-no-awaited.test.ts.snap

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ await expect.element(locator).toBeInTheDocument()
1111
1212
❯ expect-element.test.js:18:33
1313
16| const element = page.getByText("Hello Vitest!");
14-
17|
14+
17|
1515
18| expect.element(element).toBeInTheDocument();
1616
| ^
1717
19| })
18-
20|
18+
20|
1919
2020
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯
2121

test/cli/test/__snapshots__/list.test.ts.snap

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,18 @@
33
exports[`basic output shows error 1`] = `
44
"Error: describe error
55
❯ describe-error.test.ts:4:9
6-
2|
6+
2|
77
3| describe('describe error', () => {
88
4| throw new Error('describe error')
99
| ^
10-
5|
10+
5|
1111
6| it('wont run', () => {
1212
1313
Error: top level error
1414
top-level-error.test.ts:1:7
1515
1| throw new Error('top level error')
1616
| ^
17-
2|
17+
2|
1818
1919
"
2020
`;
@@ -78,37 +78,37 @@ exports[`correctly outputs all tests with args: "--typecheck.only" 1`] = `
7878
exports[`json output shows error 1`] = `
7979
"Error: describe error
8080
❯ describe-error.test.ts:4:9
81-
2|
81+
2|
8282
3| describe('describe error', () => {
8383
4| throw new Error('describe error')
8484
| ^
85-
5|
85+
5|
8686
6| it('wont run', () => {
8787
8888
Error: top level error
8989
top-level-error.test.ts:1:7
9090
1| throw new Error('top level error')
9191
| ^
92-
2|
92+
2|
9393
9494
"
9595
`;
9696
9797
exports[`json with a file output shows error 1`] = `
9898
"Error: describe error
9999
❯ describe-error.test.ts:4:9
100-
2|
100+
2|
101101
3| describe('describe error', () => {
102102
4| throw new Error('describe error')
103103
| ^
104-
5|
104+
5|
105105
6| it('wont run', () => {
106106
107107
Error: top level error
108108
top-level-error.test.ts:1:7
109109
1| throw new Error('top level error')
110110
| ^
111-
2|
111+
2|
112112
113113
"
114114
`;

test/cli/test/__snapshots__/stacktraces.test.ts.snap

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ exports[`stacktrace filtering > filters stacktraces 1`] = `
77
FAIL error-with-stack.test.js > error in deps
88
Error: Something truly horrible has happened!
99
❯ d error-with-stack.test.js:20:9
10-
18|
10+
18|
1111
19| function d() {
1212
20| throw new Error('Something truly horrible has happened!')
1313
| ^
1414
21| }
15-
22|
15+
22|
1616
❯ c error-with-stack.test.js:16:3
1717
❯ a error-with-stack.test.js:8:3
1818
❯ error-with-stack.test.js:4:3
@@ -31,12 +31,12 @@ Error: __TEST_STACK__
3131
❯ innerTestStack (NODE_MODULES)/@test/test-dep-error/index.js:10:9
3232
❯ testStack (NODE_MODULES)/@test/test-dep-error/index.js:4:3
3333
❯ error-in-package.test.js:8:12
34-
6|
34+
6|
3535
7| test('js', () => {
3636
8| testStack()
3737
| ^
3838
9| })
39-
10|
39+
10|
4040
4141
⎯⎯[1/4]⎯
4242
@@ -48,7 +48,7 @@ Error: __TEST_STACK_TS__
4848
22| throw new Error('__TEST_STACK_TS__')
4949
| ^
5050
23| }
51-
24|
51+
24|
5252
❯ testStack (NODE_MODULES)/@test/test-dep-error/ts.ts:12:3
5353
❯ error-in-package.test.js:12:14
5454
@@ -59,12 +59,12 @@ Error: __TEST_STACK_TRANSPILED__
5959
❯ innerTestStack (NODE_MODULES)/@test/test-dep-error/transpiled.js:7:9
6060
❯ testStack (NODE_MODULES)/@test/test-dep-error/transpiled.js:3:3
6161
❯ error-in-package.test.js:16:22
62-
14|
62+
14|
6363
15| test('transpiled', () => {
6464
16| testStackTranspiled()
6565
| ^
6666
17| })
67-
18|
67+
18|
6868
6969
⎯⎯[3/4]⎯
7070
@@ -73,12 +73,12 @@ Error: __TEST_STACK_TRANSPILED_INLINE__
7373
❯ innerTestStack (NODE_MODULES)/@test/test-dep-error/transpiled-inline.js:7:9
7474
❯ testStack (NODE_MODULES)/@test/test-dep-error/transpiled-inline.js:3:3
7575
❯ error-in-package.test.js:20:28
76-
18|
76+
18|
7777
19| test('transpiled inline', () => {
7878
20| testStackTranspiledInline()
7979
| ^
8080
21| })
81-
22|
81+
22|
8282
8383
⎯⎯[4/4]⎯
8484
@@ -92,12 +92,12 @@ exports[`stacktrace in dependency package > inline 1`] = `
9292
FAIL error-in-package.test.js > js
9393
Error: __TEST_STACK__
9494
❯ innerTestStack (NODE_MODULES)/@test/test-dep-error/index.js:10:9
95-
8|
95+
8|
9696
9| function innerTestStack() {
9797
10| throw new Error('__TEST_STACK__')
9898
| ^
9999
11| }
100-
12|
100+
12|
101101
❯ testStack (NODE_MODULES)/@test/test-dep-error/index.js:4:3
102102
❯ error-in-package.test.js:8:12
103103
@@ -111,7 +111,7 @@ Error: __TEST_STACK_TS__
111111
22| throw new Error('__TEST_STACK_TS__')
112112
| ^
113113
23| }
114-
24|
114+
24|
115115
❯ testStack (NODE_MODULES)/@test/test-dep-error/ts.ts:12:3
116116
❯ error-in-package.test.js:12:14
117117
@@ -122,12 +122,12 @@ Error: __TEST_STACK_TRANSPILED__
122122
❯ innerTestStack (NODE_MODULES)/@test/test-dep-error/transpiled.ts:22:9
123123
❯ testStack (NODE_MODULES)/@test/test-dep-error/transpiled.ts:12:3
124124
❯ error-in-package.test.js:16:22
125-
14|
125+
14|
126126
15| test('transpiled', () => {
127127
16| testStackTranspiled()
128128
| ^
129129
17| })
130-
18|
130+
18|
131131
132132
⎯⎯[3/4]⎯
133133
@@ -136,12 +136,12 @@ Error: __TEST_STACK_TRANSPILED_INLINE__
136136
❯ innerTestStack (NODE_MODULES)/@test/test-dep-error/transpiled-inline.ts:22:9
137137
❯ testStack (NODE_MODULES)/@test/test-dep-error/transpiled-inline.ts:12:3
138138
❯ error-in-package.test.js:20:28
139-
18|
139+
18|
140140
19| test('transpiled inline', () => {
141141
20| testStackTranspiledInline()
142142
| ^
143143
21| })
144-
22|
144+
22|
145145
146146
⎯⎯[4/4]⎯
147147
@@ -155,12 +155,12 @@ exports[`stacktrace in vmThreads 1`] = `
155155
FAIL error-with-stack.test.js > error in deps
156156
Error: Something truly horrible has happened!
157157
❯ d error-with-stack.test.js:20:9
158-
18|
158+
18|
159159
19| function d() {
160160
20| throw new Error('Something truly horrible has happened!')
161161
| ^
162162
21| }
163-
22|
163+
22|
164164
❯ c error-with-stack.test.js:16:3
165165
❯ b error-with-stack.test.js:12:3
166166
❯ a error-with-stack.test.js:8:3
@@ -183,7 +183,7 @@ ReferenceError: bar is not defined
183183
3| return bar()
184184
| ^
185185
4| }
186-
5|
186+
5|
187187
❯ error-in-deps.test.js:5:6
188188
189189
⎯⎯[1/1]⎯
@@ -204,7 +204,7 @@ imba-parser error: Unexpected 'CALL_END'
204204

205205
exports[`stacktraces should respect sourcemaps > add.test.ts 1`] = `
206206
" ❯ add.test.ts:12:24
207-
10|
207+
10|
208208
11| it('add', () => {
209209
12| expect(add(a.count)).toBe(100)
210210
| ^
@@ -220,13 +220,13 @@ exports[`stacktraces should respect sourcemaps > add-in-imba.test.imba 1`] = `
220220
8| expect(add(1)).toBe 3
221221
| ^
222222
9| expect(add(1, 2, 3)).toBe 6
223-
10|
223+
10|
224224
"
225225
`;
226226
227227
exports[`stacktraces should respect sourcemaps > add-in-js.test.js 1`] = `
228228
" ❯ add-in-js.test.js:6:17
229-
4|
229+
4|
230230
5| it('add', () => {
231231
6| expect(add()).toBe(100)
232232
| ^
@@ -245,63 +245,63 @@ exports[`stacktraces should respect sourcemaps > error-in-deps.test.js 1`] = `
245245
246246
exports[`stacktraces should respect sourcemaps > error-in-package.test.js 1`] = `
247247
" ❯ error-in-package.test.js:8:12
248-
6|
248+
6|
249249
7| test('js', () => {
250250
8| testStack()
251251
| ^
252252
9| })
253-
10|
253+
10|
254254
"
255255
`;
256256
257257
exports[`stacktraces should respect sourcemaps > error-with-stack.test.js 1`] = `
258258
" ❯ d error-with-stack.test.js:20:9
259-
18|
259+
18|
260260
19| function d() {
261261
20| throw new Error('Something truly horrible has happened!')
262262
| ^
263263
21| }
264-
22|
264+
22|
265265
❯ c error-with-stack.test.js:16:3"
266266
`;
267267
268268
exports[`stacktraces should respect sourcemaps > mocked-global.test.js 1`] = `
269269
" ❯ mocked-global.test.js:6:13
270-
4|
270+
4|
271271
5| test('failed', () => {
272272
6| expect(1).toBe(2)
273273
| ^
274274
7| })
275-
8|
275+
8|
276276
"
277277
`;
278278
279279
exports[`stacktraces should respect sourcemaps > mocked-imported.test.js 1`] = `
280280
" ❯ mocked-imported.test.js:6:13
281-
4|
281+
4|
282282
5| test('failed', () => {
283283
6| expect(1).toBe(2)
284284
| ^
285285
7| })
286-
8|
286+
8|
287287
"
288288
`;
289289
290290
exports[`stacktraces should respect sourcemaps > mocked-imported.test.ts 1`] = `
291291
" ❯ mocked-imported.test.ts:6:13
292-
4|
292+
4|
293293
5| test('failed', () => {
294294
6| expect(1).toBe(2)
295295
| ^
296296
7| })
297-
8|
297+
8|
298298
"
299299
`;
300300
301301
exports[`stacktraces should respect sourcemaps > require-assertions.test.js 1`] = `
302302
" ❯ require-assertions.test.js:3:5
303303
1| import { test } from 'vitest'
304-
2|
304+
2|
305305
3| test('assertion is not called', () => {
306306
| ^
307307
4| // no expect

test/cli/test/annotations.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -508,7 +508,7 @@ describe('reporters', () => {
508508
11| throw new Error('thrown error')
509509
| ^
510510
12| })
511-
13|
511+
13|
512512
513513
❯ basic.test.ts:9:15 notice
514514
↳ printed
@@ -549,7 +549,7 @@ describe('reporters', () => {
549549
6| throw new Error('thrown error')
550550
| ^
551551
7| })
552-
8|
552+
8|
553553
554554
❯ basic.test.ts:5:15 notice
555555
↳ printed
@@ -587,7 +587,7 @@ describe('reporters', () => {
587587
6| throw new Error('thrown error')
588588
| ^
589589
7| })
590-
8|
590+
8|
591591
592592
❯ basic.test.ts:5:15 notice
593593
↳ printed 1
@@ -602,7 +602,7 @@ describe('reporters', () => {
602602
6| throw new Error('thrown error')
603603
| ^
604604
7| })
605-
8|
605+
8|
606606
607607
❯ basic.test.ts:5:15 notice
608608
↳ printed 2

0 commit comments

Comments
 (0)