Skip to content

Commit 7af089d

Browse files
committed
test: fix & improve ssr warning assertion
1 parent 80c625d commit 7af089d

File tree

3 files changed

+14
-23
lines changed

3 files changed

+14
-23
lines changed

packages/server-renderer/__tests__/renderToString.spec.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ import {
88
ref,
99
defineComponent
1010
} from 'vue'
11-
import { escapeHtml, mockWarn } from '@vue/shared'
11+
import { escapeHtml, mockError } from '@vue/shared'
1212
import { renderToString, renderComponent } from '../src/renderToString'
1313
import { ssrRenderSlot } from '../src/helpers/ssrRenderSlot'
1414

15-
mockWarn()
15+
mockError()
1616

1717
describe('ssr: renderToString', () => {
1818
test('should apply app context', async () => {
@@ -104,7 +104,7 @@ describe('ssr: renderToString', () => {
104104
await renderToString(createApp({ template: `<` }))
105105

106106
expect(
107-
'[Vue warn]: Template compilation error: Unexpected EOF in tag.\n' +
107+
'Template compilation error: Unexpected EOF in tag.\n' +
108108
'1 | <\n' +
109109
' | ^'
110110
).toHaveBeenWarned()

packages/server-renderer/__tests__/ssrSuspense.spec.ts

+7-18
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,10 @@ import { createApp, h, Suspense } from 'vue'
22
import { renderToString } from '../src/renderToString'
33
import { ssrRenderSuspense } from '../src/helpers/ssrRenderSuspense'
44
import { ssrRenderComponent } from '../src'
5+
import { mockError } from '@vue/shared'
56

67
describe('SSR Suspense', () => {
7-
let logError: jest.SpyInstance
8-
9-
beforeEach(() => {
10-
logError = jest.spyOn(console, 'error').mockImplementation(() => {})
11-
})
12-
13-
afterEach(() => {
14-
logError.mockRestore()
15-
})
8+
mockError()
169

1710
const ResolvingAsync = {
1811
async setup() {
@@ -41,7 +34,6 @@ describe('SSR Suspense', () => {
4134
})
4235

4336
expect(await renderToString(app)).toBe(`<div>async</div>`)
44-
expect(logError).not.toHaveBeenCalled()
4537
})
4638

4739
test('with async component', async () => {
@@ -58,7 +50,6 @@ describe('SSR Suspense', () => {
5850
})
5951

6052
expect(await renderToString(app)).toBe(`<div>async</div>`)
61-
expect(logError).not.toHaveBeenCalled()
6253
})
6354

6455
test('fallback', async () => {
@@ -78,7 +69,7 @@ describe('SSR Suspense', () => {
7869
})
7970

8071
expect(await renderToString(app)).toBe(`<div>fallback</div>`)
81-
expect(logError).toHaveBeenCalled()
72+
expect('Uncaught error in async setup').toHaveBeenWarned()
8273
})
8374
})
8475

@@ -94,7 +85,6 @@ describe('SSR Suspense', () => {
9485
}
9586

9687
expect(await renderToString(createApp(Comp))).toBe(`<div>async</div>`)
97-
expect(logError).not.toHaveBeenCalled()
9888
})
9989

10090
test('fallback', async () => {
@@ -108,7 +98,7 @@ describe('SSR Suspense', () => {
10898
}
10999

110100
expect(await renderToString(createApp(Comp))).toBe(`<div>fallback</div>`)
111-
expect(logError).toHaveBeenCalled()
101+
expect('Uncaught error in async setup').toHaveBeenWarned()
112102
})
113103

114104
test('2 components', async () => {
@@ -124,7 +114,6 @@ describe('SSR Suspense', () => {
124114
expect(await renderToString(createApp(Comp))).toBe(
125115
`<div><div>async</div><div>async</div></div>`
126116
)
127-
expect(logError).not.toHaveBeenCalled()
128117
})
129118

130119
test('resolving component + rejecting component', async () => {
@@ -138,7 +127,7 @@ describe('SSR Suspense', () => {
138127
}
139128

140129
expect(await renderToString(createApp(Comp))).toBe(`<div>fallback</div>`)
141-
expect(logError).toHaveBeenCalled()
130+
expect('Uncaught error in async setup').toHaveBeenWarned()
142131
})
143132

144133
test('failing suspense in passing suspense', async () => {
@@ -160,7 +149,7 @@ describe('SSR Suspense', () => {
160149
expect(await renderToString(createApp(Comp))).toBe(
161150
`<div><div>async</div><div>fallback 2</div></div>`
162151
)
163-
expect(logError).toHaveBeenCalled()
152+
expect('Uncaught error in async setup').toHaveBeenWarned()
164153
})
165154

166155
test('passing suspense in failing suspense', async () => {
@@ -182,7 +171,7 @@ describe('SSR Suspense', () => {
182171
expect(await renderToString(createApp(Comp))).toBe(
183172
`<div>fallback 1</div>`
184173
)
185-
expect(logError).toHaveBeenCalled()
174+
expect('Uncaught error in async setup').toHaveBeenWarned()
186175
})
187176
})
188177
})

packages/shared/src/mockWarn.ts

+4-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ declare global {
88
}
99
}
1010

11-
export function mockWarn() {
11+
export const mockError = () => mockWarn(true)
12+
13+
export function mockWarn(asError = false) {
1214
expect.extend({
1315
toHaveBeenWarned(received: string) {
1416
asserted.add(received)
@@ -79,7 +81,7 @@ export function mockWarn() {
7981

8082
beforeEach(() => {
8183
asserted.clear()
82-
warn = jest.spyOn(console, 'warn')
84+
warn = jest.spyOn(console, asError ? 'error' : 'warn')
8385
warn.mockImplementation(() => {})
8486
})
8587

0 commit comments

Comments
 (0)