From: Eduardo San Martin Morote Date: Tue, 12 May 2020 14:26:02 +0000 (+0200) Subject: test: add basic ssr test X-Git-Tag: v4.0.0-alpha.12~19 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5031dc29b641083cb2a331746ea0a171f5b4840c;p=thirdparty%2Fvuejs%2Frouter.git test: add basic ssr test --- diff --git a/__tests__/ssr.spec.ts b/__tests__/ssr.spec.ts new file mode 100644 index 00000000..d4b9f243 --- /dev/null +++ b/__tests__/ssr.spec.ts @@ -0,0 +1,58 @@ +/** + * @jest-environment node + */ +import { createRouter, createMemoryHistory } from '../src' +import { createSSRApp, resolveComponent, Component } from 'vue' +import { + renderToString, + ssrInterpolate, + ssrRenderComponent, +} from '@vue/server-renderer' + +describe('SSR', () => { + it('works', async () => { + const Home = { + ssrRender(ctx: any, push: any) { + push('Home') + }, + } + const Page = { + ssrRender(ctx: any, push: any) { + push(`${ssrInterpolate(ctx.$route.fullPath)}`) + }, + } + + const router = createRouter({ + history: createMemoryHistory(), + routes: [ + { path: '/', component: Home }, + { + path: '/:id', + component: Page, + }, + ], + }) + const App = { + ssrRender(ctx: any, push: any, parent: any) { + push( + ssrRenderComponent( + resolveComponent('router-view') as Component, + null, + null, + parent + ) + ) + }, + } + const app = createSSRApp(App) + app.use(router) + // const rootEl = document.createElement('div') + // document.body.appendChild(rootEl) + + router.push('/hello') + await router.isReady() + + const xxx = await renderToString(app) + expect(xxx).toMatchInlineSnapshot(`"/hello"`) + }) +}) diff --git a/package.json b/package.json index ffede521..e5db126c 100644 --- a/package.json +++ b/package.json @@ -75,6 +75,7 @@ "@types/webpack": "^4.41.12", "@types/webpack-env": "^1.15.2", "@vue/compiler-sfc": "3.0.0-beta.12", + "@vue/server-renderer": "^3.0.0-beta.12", "axios": "^0.19.2", "browserstack-local": "^1.4.5", "chalk": "^4.0.0", diff --git a/yarn.lock b/yarn.lock index c47f592d..4017ec9a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -972,6 +972,14 @@ "@vue/shared" "3.0.0-beta.12" csstype "^2.6.8" +"@vue/server-renderer@^3.0.0-beta.12": + version "3.0.0-beta.12" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.0.0-beta.12.tgz#a649aa5704cfc6b0140c9e90a3801f15c4b467e9" + integrity sha512-ssuF4VNDoCTQ/upeT195bfplgOlg2MMgI46C41v93QrrWs/21O2ksnsdfMWhe+qu+XdhFiZLe/Q7KWLCLgL5wA== + dependencies: + "@vue/compiler-ssr" "3.0.0-beta.12" + "@vue/shared" "3.0.0-beta.12" + "@vue/shared@3.0.0-beta.12": version "3.0.0-beta.12" resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.0.0-beta.12.tgz#cb7a2bb047919d2c944bf822032b0a8aa869ba1d"