| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- import { compile } from '../../../packages/weex-template-compiler'
- import { strToRegExp } from '../helpers/index'
- describe('compile style', () => {
- it('should be compiled', () => {
- const { render, staticRenderFns, errors } = compile(`<div style="a: x; b: y"></div>`)
- expect(render).not.toBeUndefined()
- expect(staticRenderFns).not.toBeUndefined()
- expect(staticRenderFns.length).toEqual(0)
- expect(render).toMatch(strToRegExp(`staticStyle:{a:"x",b:"y"}`))
- expect(errors).toEqual([])
- })
- it('should compile empty style value', () => {
- const { render, staticRenderFns, errors } = compile(`<div style=""></div>`)
- expect(render).not.toBeUndefined()
- expect(staticRenderFns).not.toBeUndefined()
- expect(staticRenderFns.length).toEqual(0)
- expect(render).toMatch(/[(^style|^staticStyle)]/)
- expect(errors).toEqual([])
- })
- it('should compile style value with trailing semicolon', () => {
- const { render, staticRenderFns, errors } = compile(`<div style="a: x; b: y;"></div>`)
- expect(render).not.toBeUndefined()
- expect(staticRenderFns).not.toBeUndefined()
- expect(staticRenderFns.length).toEqual(0)
- expect(render).toMatch(strToRegExp(`staticStyle:{a:"x",b:"y"}`))
- expect(errors).toEqual([])
- })
- it('should compile hyphenated style name & value', () => {
- const { render, staticRenderFns, errors } = compile(`<div style="-abc-def: x-y; abc-def: x-y"></div>`)
- expect(render).not.toBeUndefined()
- expect(staticRenderFns).not.toBeUndefined()
- expect(staticRenderFns.length).toEqual(0)
- expect(render).toMatch(strToRegExp(`staticStyle:{AbcDef:"x-y",abcDef:"x-y"}`))
- expect(errors).toEqual([])
- })
- it('should compile dynamic style', () => {
- const { render, staticRenderFns, errors } = compile(`<div style="a: x; b: {{y}}"></div>`)
- expect(render).not.toBeUndefined()
- expect(staticRenderFns).toEqual([])
- expect(render).toMatch(strToRegExp(`style:{a:"x",b:_s(y)}`))
- expect(errors).not.toBeUndefined()
- expect(errors.length).toEqual(1)
- expect(errors[0]).toMatch(strToRegExp(`b: {{y}}`))
- expect(errors[0]).toMatch(strToRegExp(`v-bind`))
- })
- it('should compile style binding of array', () => {
- const { render, staticRenderFns, errors } = compile(`<div v-bind:style="[a, b, c]"></div>`)
- expect(render).not.toBeUndefined()
- expect(staticRenderFns).toEqual([])
- expect(render).toMatch(strToRegExp(`style:[a, b, c]`))
- expect(errors).toEqual([])
- })
- it('should compile style binding of map', () => {
- const { render, staticRenderFns, errors } = compile(`<div v-bind:style="{ a: x, b: 'y' + z }"></div>`)
- expect(render).not.toBeUndefined()
- expect(staticRenderFns).toEqual([])
- expect(render).toMatch(strToRegExp(`style:{ a: x, b: 'y' + z }`))
- expect(errors).toEqual([])
- })
- it('should compile style binding of a variable', () => {
- const { render, staticRenderFns, errors } = compile(`<div v-bind:style="x"></div>`)
- expect(render).not.toBeUndefined()
- expect(staticRenderFns).toEqual([])
- expect(render).toMatch(strToRegExp(`style:x`))
- expect(errors).toEqual([])
- })
- it('should compile style binding by shorthand', () => {
- const { render, staticRenderFns, errors } = compile(`<div :style="[a, b, c]"></div>`)
- expect(render).not.toBeUndefined()
- expect(staticRenderFns).toEqual([])
- expect(render).toMatch(strToRegExp(`style:[a, b, c]`))
- expect(errors).toEqual([])
- })
- })
|