| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- import Vue from 'vue'
- describe('Directive v-html', () => {
- it('should render html', () => {
- const vm = new Vue({
- template: '<div v-html="a"></div>',
- data: { a: 'hello' }
- }).$mount()
- expect(vm.$el.innerHTML).toBe('hello')
- })
- it('should encode html entities', () => {
- const vm = new Vue({
- template: '<div v-html="a"></div>',
- data: { a: '<span><</span>' }
- }).$mount()
- expect(vm.$el.innerHTML).toBe('<span><</span>')
- })
- it('should work inline', () => {
- const vm = new Vue({
- template: `<div v-html="'<span><</span>'"></div>`
- }).$mount()
- expect(vm.$el.innerHTML).toBe('<span><</span>')
- })
- it('should work inline in DOM', () => {
- const el = document.createElement('div')
- el.innerHTML = `<div v-html="'<span><</span>'"></div>`
- const vm = new Vue({ el })
- expect(vm.$el.children[0].innerHTML).toBe('<span><</span>')
- })
- it('should support all value types', done => {
- const vm = new Vue({
- template: '<div v-html="a"></div>',
- data: { a: false }
- }).$mount()
- waitForUpdate(() => {
- expect(vm.$el.innerHTML).toBe('false')
- vm.a = []
- }).then(() => {
- expect(vm.$el.innerHTML).toBe('[]')
- vm.a = {}
- }).then(() => {
- expect(vm.$el.innerHTML).toBe('{}')
- vm.a = 123
- }).then(() => {
- expect(vm.$el.innerHTML).toBe('123')
- vm.a = 0
- }).then(() => {
- expect(vm.$el.innerHTML).toBe('0')
- vm.a = ' '
- }).then(() => {
- expect(vm.$el.innerHTML).toBe(' ')
- vm.a = ' '
- }).then(() => {
- expect(vm.$el.innerHTML).toBe(' ')
- vm.a = null
- }).then(() => {
- expect(vm.$el.innerHTML).toBe('')
- vm.a = undefined
- }).then(() => {
- expect(vm.$el.innerHTML).toBe('')
- }).then(done)
- })
- })
|