import { assert } from './testUtils'
describe('compiler: transform class', () => {
test(`static class`, () => {
assert(
``,
``,
`(_ctx, _cache) => {
return {}
}`
)
assert(
``,
``,
`(_ctx, _cache) => {
return {}
}`
)
assert(
``,
``,
`(_ctx, _cache) => {
return {}
}`
)
})
test('v-bind:class basic', () => {
assert(
``,
``,
`(_ctx, _cache) => {
return { a: _normalizeClass(_ctx.foo) }
}`
)
assert(
``,
``,
`(_ctx, _cache) => {
return { a: _normalizeClass(_ctx.foo | _ctx.bar) }
}`
)
})
test('v-bind:class basic + class ', () => {
assert(
``,
``,
`(_ctx, _cache) => {
return { a: _normalizeClass(_ctx.foo) }
}`
)
assert(
``,
``,
`(_ctx, _cache) => {
return { a: _normalizeClass(_ctx.foo) }
}`
)
})
test('v-bind:class object syntax', () => {
assert(
``,
``,
`(_ctx, _cache) => {
return { a: \`\${_ctx.isRed}\` ? 1 : 0 }
}`
)
assert(
``,
``,
`(_ctx, _cache) => {
return { a: _ctx.ok ? 1 : 0, b: _ctx.handle(_ctx.ok) ? 1 : 0, c: _ctx.ok > 1 ? 1 : 0, d: _ctx.j ? 1 : 0, e: _ctx.k, f: _ctx.l, g: _ctx.m ? 1 : 0, h: _normalizeClass(_ctx.n), i: _normalizeClass({ a: true }), j: _normalizeClass({ b: _ctx.o }) }
}`
)
})
test('v-bind:class object syntax + class', () => {
assert(
``,
``,
`(_ctx, _cache) => {
return { a: _ctx.isRed ? 1 : 0 }
}`
)
assert(
``,
``,
`(_ctx, _cache) => {
return { a: _ctx.isRed ? 1 : 0 }
}`
)
assert(
``,
``,
`(_ctx, _cache) => {
return { a: _ctx.ok ? 1 : 0, b: _ctx.handle(_ctx.ok) ? 1 : 0, c: _ctx.ok > 1 ? 1 : 0, d: _ctx.j ? 1 : 0, e: _ctx.k, f: _ctx.l, g: _ctx.m ? 1 : 0, h: _normalizeClass(_ctx.n), i: _normalizeClass({ a: true }), j: _normalizeClass({ b: _ctx.o }) }
}`
)
assert(
``,
``,
`(_ctx, _cache) => {
return { a: _ctx.ok ? 1 : 0, b: _ctx.handle(_ctx.ok) ? 1 : 0, c: _ctx.ok > 1 ? 1 : 0, d: _ctx.j ? 1 : 0, e: _ctx.k, f: _ctx.l, g: _ctx.m ? 1 : 0, h: _normalizeClass(_ctx.n), i: _normalizeClass({ a: true }), j: _normalizeClass({ b: _ctx.o }) }
}`
)
})
test('v-bind:class array syntax', () => {
assert(
``,
``,
`(_ctx, _cache) => {
return { a: _normalizeClass(_ctx.classA), b: _normalizeClass(\`\${_ctx.classB}\`) }
}`
)
assert(
``,
``,
`(_ctx, _cache) => {
return { a: _normalizeClass(_ctx.classA), b: _normalizeClass(_ctx.classB) }
}`
)
assert(
``,
``,
`(_ctx, _cache) => {
return { a: _normalizeClass(_ctx.classA), b: _normalizeClass(_ctx.classB), c: _normalizeClass({ classC: _ctx.isC, classD: _ctx.isD }), d: _normalizeClass(_ctx.isF ? 'classF' : ''), e: _normalizeClass(_ctx.isG && 'classG'), f: _normalizeClass(_ctx.classH), g: _normalizeClass([_ctx.classI, _ctx.classJ]), h: _normalizeClass(_ctx.handle(_ctx.classK)) }
}`
)
})
test('v-bind:class array syntax + class', () => {
assert(
``,
``,
`(_ctx, _cache) => {
return { a: _normalizeClass(_ctx.classA), b: _normalizeClass(_ctx.classB) }
}`
)
assert(
``,
``,
`(_ctx, _cache) => {
return { a: _normalizeClass(_ctx.classA), b: _normalizeClass(_ctx.classB) }
}`
)
assert(
``,
``,
`(_ctx, _cache) => {
return { a: _normalizeClass(_ctx.classA), b: _normalizeClass(_ctx.classB), c: _normalizeClass({ classC: _ctx.isC, classD: _ctx.isD }), d: _normalizeClass(_ctx.isF ? 'classF' : ''), e: _normalizeClass(_ctx.isG && 'classG'), f: _normalizeClass(_ctx.classH), g: _normalizeClass([_ctx.classI, _ctx.classJ]), h: _normalizeClass(_ctx.handle(_ctx.classK)) }
}`
)
assert(
``,
``,
`(_ctx, _cache) => {
return { a: _normalizeClass(_ctx.classA), b: _normalizeClass(_ctx.classB), c: _normalizeClass({ classC: _ctx.isC, classD: _ctx.isD }), d: _normalizeClass(_ctx.isF ? 'classF' : ''), e: _normalizeClass(_ctx.isG && 'classG'), f: _normalizeClass(_ctx.classH), g: _normalizeClass([_ctx.classI, _ctx.classJ]), h: _normalizeClass(_ctx.handle(_ctx.classK)) }
}`
)
})
})