}"
`;
+exports[`stringify static html > serializing template string style 1`] = `
+"const { toDisplayString: _toDisplayString, normalizeClass: _normalizeClass, createElementVNode: _createElementVNode, createStaticVNode: _createStaticVNode, openBlock: _openBlock, createElementBlock: _createElementBlock } = Vue
+
+return function render(_ctx, _cache) {
+ return (_openBlock(), _createElementBlock("div", null, _cache[0] || (_cache[0] = [
+ _createStaticVNode("<div style=\\"color:red;\\"><span class=\\"foo bar\\">1 + false</span><span class=\\"foo bar\\">1 + false</span><span class=\\"foo bar\\">1 + false</span><span class=\\"foo bar\\">1 + false</span><span class=\\"foo bar\\">1 + false</span></div>", 1)
+ ])))
+}"
+`;
+
exports[`stringify static html > should bail for <option> elements with null values 1`] = `
"const { createElementVNode: _createElementVNode, openBlock: _openBlock, createElementBlock: _createElementBlock } = Vue
expect(code).toMatchSnapshot()
})
+ // #12391
+ test('serializing template string style', () => {
+ const { ast, code } = compileWithStringify(
+ `<div><div :style="\`color:red;\`">${repeat(
+ `<span :class="[{ foo: true }, { bar: true }]">{{ 1 }} + {{ false }}</span>`,
+ StringifyThresholds.ELEMENT_WITH_BINDING_COUNT,
+ )}</div></div>`,
+ )
+ // should be optimized now
+ expect(ast.cached).toMatchObject([
+ cachedArrayStaticNodeMatcher(
+ `<div style="color:red;">${repeat(
+ `<span class="foo bar">1 + false</span>`,
+ StringifyThresholds.ELEMENT_WITH_BINDING_COUNT,
+ )}</div>`,
+ 1,
+ ),
+ ])
+ expect(code).toMatchSnapshot()
+ })
+
test('escape', () => {
const { ast, code } = compileWithStringify(
`<div><div>${repeat(
})
describe('stringifyStyle', () => {
- test('should return empty string for undefined or string styles', () => {
+ test('should return empty string for undefined', () => {
expect(stringifyStyle(undefined)).toBe('')
expect(stringifyStyle('')).toBe('')
- expect(stringifyStyle('color: blue;')).toBe('')
+ expect(stringifyStyle('color: blue;')).toBe('color: blue;')
})
test('should return valid CSS string for normalized style object', () => {
export function stringifyStyle(
styles: NormalizedStyle | string | undefined,
): string {
+ if (!styles) return ''
+ if (isString(styles)) return styles
+
let ret = ''
- if (!styles || isString(styles)) {
- return ret
- }
for (const key in styles) {
const value = styles[key]
if (isString(value) || typeof value === 'number') {