Skip to content

Commit c650c9a

Browse files
yyx990803hefeng
authored and
hefeng
committed
test: test for vuejs#8790
1 parent 456b830 commit c650c9a

File tree

2 files changed

+54
-0
lines changed

2 files changed

+54
-0
lines changed

test/ssr/fixtures/cache-opt-out.js

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import Vue from '../../../dist/vue.runtime.common.js'
2+
3+
const app = {
4+
name: 'app',
5+
props: ['id'],
6+
serverCacheKey: props => props.id === 1 ? false : props.id,
7+
render (h) {
8+
return h('div', '/test')
9+
}
10+
}
11+
12+
export default () => {
13+
return Promise.resolve(new Vue({
14+
render: h => h(app, { props: { id: 1 }})
15+
}))
16+
}

test/ssr/ssr-bundle-render.spec.js

+38
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,44 @@ function createAssertions (runInNewContext) {
231231
})
232232
})
233233

234+
it('render with cache (opt-out)', done => {
235+
const cache = {}
236+
const get = jasmine.createSpy('get')
237+
const set = jasmine.createSpy('set')
238+
const options = {
239+
runInNewContext,
240+
cache: {
241+
// async
242+
get: (key, cb) => {
243+
setTimeout(() => {
244+
get(key)
245+
cb(cache[key])
246+
}, 0)
247+
},
248+
set: (key, val) => {
249+
set(key, val)
250+
cache[key] = val
251+
}
252+
}
253+
}
254+
createRenderer('cache-opt-out.js', options, renderer => {
255+
const expected = '<div data-server-rendered="true">/test</div>'
256+
renderer.renderToString((err, res) => {
257+
expect(err).toBeNull()
258+
expect(res).toBe(expected)
259+
expect(get).not.toHaveBeenCalled()
260+
expect(set).not.toHaveBeenCalled()
261+
renderer.renderToString((err, res) => {
262+
expect(err).toBeNull()
263+
expect(res).toBe(expected)
264+
expect(get).not.toHaveBeenCalled()
265+
expect(set).not.toHaveBeenCalled()
266+
done()
267+
})
268+
})
269+
})
270+
})
271+
234272
it('renderToString (bundle format with code split)', done => {
235273
createRenderer('split.js', { runInNewContext, asBundle: true }, renderer => {
236274
const context = { url: '/test' }

0 commit comments

Comments
 (0)