fix(compiler-ssr): handle v-model checkbox with true-value binding
This commit is contained in:
@@ -49,7 +49,7 @@ describe('ssr: v-model', () => {
|
||||
`)
|
||||
})
|
||||
|
||||
test('<input type="checkbox"', () => {
|
||||
test('<input type="checkbox">', () => {
|
||||
expect(compileWithWrapper(`<input type="checkbox" v-model="bar">`).code)
|
||||
.toMatchInlineSnapshot(`
|
||||
"const { ssrLooseContain: _ssrLooseContain, ssrRenderAttrs: _ssrRenderAttrs } = require(\\"@vue/server-renderer\\")
|
||||
@@ -81,6 +81,38 @@ describe('ssr: v-model', () => {
|
||||
}></div>\`)
|
||||
}"
|
||||
`)
|
||||
|
||||
expect(
|
||||
compileWithWrapper(
|
||||
`<input type="checkbox" :true-value="foo" :false-value="bar" v-model="baz">`
|
||||
).code
|
||||
).toMatchInlineSnapshot(`
|
||||
"const { ssrLooseEqual: _ssrLooseEqual, ssrRenderAttrs: _ssrRenderAttrs } = require(\\"@vue/server-renderer\\")
|
||||
|
||||
return function ssrRender(_ctx, _push, _parent, _attrs) {
|
||||
_push(\`<div\${
|
||||
_ssrRenderAttrs(_attrs)
|
||||
}><input type=\\"checkbox\\"\${
|
||||
(_ssrLooseEqual(_ctx.baz, _ctx.foo)) ? \\" checked\\" : \\"\\"
|
||||
}></div>\`)
|
||||
}"
|
||||
`)
|
||||
|
||||
expect(
|
||||
compileWithWrapper(
|
||||
`<input type="checkbox" true-value="foo" false-value="bar" v-model="baz">`
|
||||
).code
|
||||
).toMatchInlineSnapshot(`
|
||||
"const { ssrLooseEqual: _ssrLooseEqual, ssrRenderAttrs: _ssrRenderAttrs } = require(\\"@vue/server-renderer\\")
|
||||
|
||||
return function ssrRender(_ctx, _push, _parent, _attrs) {
|
||||
_push(\`<div\${
|
||||
_ssrRenderAttrs(_attrs)
|
||||
}><input type=\\"checkbox\\"\${
|
||||
(_ssrLooseEqual(_ctx.baz, \\"foo\\")) ? \\" checked\\" : \\"\\"
|
||||
}></div>\`)
|
||||
}"
|
||||
`)
|
||||
})
|
||||
|
||||
test('<textarea>', () => {
|
||||
|
||||
Reference in New Issue
Block a user