github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/public/libs/vue-1.0.24/test/unit/specs/util/component_spec.js (about) 1 var _ = require('src/util') 2 3 describe('Util - component', function () { 4 it('checkComponentAttr', function () { 5 var el = document.createElement('component') 6 var mockOptions = { components: { 7 foo: {} 8 }} 9 10 // <component> with no is attr 11 var res = _.checkComponentAttr(el, mockOptions) 12 expect(res).toBeUndefined() 13 14 // static <component is="..."> 15 el.setAttribute('is', 'foo') 16 res = _.checkComponentAttr(el, mockOptions) 17 expect(res.id).toBe('foo') 18 expect(res.dynamic).toBeFalsy() 19 20 // <component :is="..."> 21 el.setAttribute(':is', 'foo') 22 res = _.checkComponentAttr(el, mockOptions) 23 expect(res.id).toBe('foo') 24 expect(res.dynamic).toBe(true) 25 26 // <test is="..."> 27 el = document.createElement('test') 28 el.setAttribute('is', 'foo') 29 res = _.checkComponentAttr(el, mockOptions) 30 expect(res.id).toBe('foo') 31 expect(res.dynamic).toBeUndefined() 32 33 // <test :is="..."> 34 el = document.createElement('test') 35 el.setAttribute(':is', 'foo') 36 res = _.checkComponentAttr(el, mockOptions) 37 expect(res.id).toBe('foo') 38 expect(res.dynamic).toBe(true) 39 40 // custom element, not defined 41 el = document.createElement('test') 42 res = _.checkComponentAttr(el, mockOptions) 43 expect(res).toBeUndefined() 44 45 // custom element, defined 46 el = document.createElement('foo') 47 res = _.checkComponentAttr(el, mockOptions) 48 expect(res.id).toBe('foo') 49 50 // is on undefined custom element 51 // should be preserved in case it is a native custom element usage 52 el = document.createElement('test2') 53 el.setAttribute('is', 'bar') 54 res = _.checkComponentAttr(el, mockOptions) 55 expect(res).toBeUndefined() 56 }) 57 })