From: Evan You Date: Tue, 10 Mar 2020 21:13:27 +0000 (-0400) Subject: test: fix & improve ssr warning assertion X-Git-Tag: v3.0.0-alpha.9~40 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7af089d429f2412409ffa53ed0473b9d726aaf2d;p=thirdparty%2Fvuejs%2Fcore.git test: fix & improve ssr warning assertion --- diff --git a/packages/server-renderer/__tests__/renderToString.spec.ts b/packages/server-renderer/__tests__/renderToString.spec.ts index ee5cfa013b..07d0e2f4f1 100644 --- a/packages/server-renderer/__tests__/renderToString.spec.ts +++ b/packages/server-renderer/__tests__/renderToString.spec.ts @@ -8,11 +8,11 @@ import { ref, defineComponent } from 'vue' -import { escapeHtml, mockWarn } from '@vue/shared' +import { escapeHtml, mockError } from '@vue/shared' import { renderToString, renderComponent } from '../src/renderToString' import { ssrRenderSlot } from '../src/helpers/ssrRenderSlot' -mockWarn() +mockError() describe('ssr: renderToString', () => { test('should apply app context', async () => { @@ -104,7 +104,7 @@ describe('ssr: renderToString', () => { await renderToString(createApp({ template: `<` })) expect( - '[Vue warn]: Template compilation error: Unexpected EOF in tag.\n' + + 'Template compilation error: Unexpected EOF in tag.\n' + '1 | <\n' + ' | ^' ).toHaveBeenWarned() diff --git a/packages/server-renderer/__tests__/ssrSuspense.spec.ts b/packages/server-renderer/__tests__/ssrSuspense.spec.ts index 893c69efab..38e016981a 100644 --- a/packages/server-renderer/__tests__/ssrSuspense.spec.ts +++ b/packages/server-renderer/__tests__/ssrSuspense.spec.ts @@ -2,17 +2,10 @@ import { createApp, h, Suspense } from 'vue' import { renderToString } from '../src/renderToString' import { ssrRenderSuspense } from '../src/helpers/ssrRenderSuspense' import { ssrRenderComponent } from '../src' +import { mockError } from '@vue/shared' describe('SSR Suspense', () => { - let logError: jest.SpyInstance - - beforeEach(() => { - logError = jest.spyOn(console, 'error').mockImplementation(() => {}) - }) - - afterEach(() => { - logError.mockRestore() - }) + mockError() const ResolvingAsync = { async setup() { @@ -41,7 +34,6 @@ describe('SSR Suspense', () => { }) expect(await renderToString(app)).toBe(`
async
`) - expect(logError).not.toHaveBeenCalled() }) test('with async component', async () => { @@ -58,7 +50,6 @@ describe('SSR Suspense', () => { }) expect(await renderToString(app)).toBe(`
async
`) - expect(logError).not.toHaveBeenCalled() }) test('fallback', async () => { @@ -78,7 +69,7 @@ describe('SSR Suspense', () => { }) expect(await renderToString(app)).toBe(`
fallback
`) - expect(logError).toHaveBeenCalled() + expect('Uncaught error in async setup').toHaveBeenWarned() }) }) @@ -94,7 +85,6 @@ describe('SSR Suspense', () => { } expect(await renderToString(createApp(Comp))).toBe(`
async
`) - expect(logError).not.toHaveBeenCalled() }) test('fallback', async () => { @@ -108,7 +98,7 @@ describe('SSR Suspense', () => { } expect(await renderToString(createApp(Comp))).toBe(`
fallback
`) - expect(logError).toHaveBeenCalled() + expect('Uncaught error in async setup').toHaveBeenWarned() }) test('2 components', async () => { @@ -124,7 +114,6 @@ describe('SSR Suspense', () => { expect(await renderToString(createApp(Comp))).toBe( `
async
async
` ) - expect(logError).not.toHaveBeenCalled() }) test('resolving component + rejecting component', async () => { @@ -138,7 +127,7 @@ describe('SSR Suspense', () => { } expect(await renderToString(createApp(Comp))).toBe(`
fallback
`) - expect(logError).toHaveBeenCalled() + expect('Uncaught error in async setup').toHaveBeenWarned() }) test('failing suspense in passing suspense', async () => { @@ -160,7 +149,7 @@ describe('SSR Suspense', () => { expect(await renderToString(createApp(Comp))).toBe( `
async
fallback 2
` ) - expect(logError).toHaveBeenCalled() + expect('Uncaught error in async setup').toHaveBeenWarned() }) test('passing suspense in failing suspense', async () => { @@ -182,7 +171,7 @@ describe('SSR Suspense', () => { expect(await renderToString(createApp(Comp))).toBe( `
fallback 1
` ) - expect(logError).toHaveBeenCalled() + expect('Uncaught error in async setup').toHaveBeenWarned() }) }) }) diff --git a/packages/shared/src/mockWarn.ts b/packages/shared/src/mockWarn.ts index f134fbbc9a..abd5db5167 100644 --- a/packages/shared/src/mockWarn.ts +++ b/packages/shared/src/mockWarn.ts @@ -8,7 +8,9 @@ declare global { } } -export function mockWarn() { +export const mockError = () => mockWarn(true) + +export function mockWarn(asError = false) { expect.extend({ toHaveBeenWarned(received: string) { asserted.add(received) @@ -79,7 +81,7 @@ export function mockWarn() { beforeEach(() => { asserted.clear() - warn = jest.spyOn(console, 'warn') + warn = jest.spyOn(console, asError ? 'error' : 'warn') warn.mockImplementation(() => {}) })