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