| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- import Vue from 'vue'
- import { formatComponentName, warn } from 'core/util/debug'
- describe('Debug utilities', () => {
- it('properly format component names', () => {
- const vm = new Vue()
- expect(formatComponentName(vm)).toBe('<Root>')
- vm.$root = null
- vm.$options.name = 'hello-there'
- expect(formatComponentName(vm)).toBe('<HelloThere>')
- vm.$options.name = null
- vm.$options._componentTag = 'foo-bar-1'
- expect(formatComponentName(vm)).toBe('<FooBar1>')
- vm.$options._componentTag = null
- vm.$options.__file = '/foo/bar/baz/SomeThing.vue'
- expect(formatComponentName(vm)).toBe(`<SomeThing> at ${vm.$options.__file}`)
- expect(formatComponentName(vm, false)).toBe('<SomeThing>')
- vm.$options.__file = 'C:\\foo\\bar\\baz\\windows_file.vue'
- expect(formatComponentName(vm)).toBe(`<WindowsFile> at ${vm.$options.__file}`)
- expect(formatComponentName(vm, false)).toBe('<WindowsFile>')
- })
- it('generate correct component hierarchy trace', () => {
- const one = {
- name: 'one',
- render: h => h(two)
- }
- const two = {
- name: 'two',
- render: h => h(three)
- }
- const three = {
- name: 'three'
- }
- new Vue({
- render: h => h(one)
- }).$mount()
- expect(
- `Failed to mount component: template or render function not defined.
- found in
- ---> <Three>
- <Two>
- <One>
- <Root>`
- ).toHaveBeenWarned()
- })
- it('generate correct component hierarchy trace (recursive)', () => {
- let i = 0
- const one = {
- name: 'one',
- render: h => i++ < 5 ? h(one) : h(two)
- }
- const two = {
- name: 'two',
- render: h => h(three)
- }
- const three = {
- name: 'three'
- }
- new Vue({
- render: h => h(one)
- }).$mount()
- expect(
- `Failed to mount component: template or render function not defined.
- found in
- ---> <Three>
- <Two>
- <One>... (5 recursive calls)
- <Root>`
- ).toHaveBeenWarned()
- })
- describe('warn', () => {
- const msg = 'message'
- const vm = new Vue()
- it('calls warnHandler if warnHandler is set', () => {
- Vue.config.warnHandler = jasmine.createSpy()
- warn(msg, vm)
- expect(Vue.config.warnHandler).toHaveBeenCalledWith(msg, vm, jasmine.any(String))
- Vue.config.warnHandler = null
- })
- it('calls console.error if silent is false', () => {
- Vue.config.silent = false
- warn(msg, vm)
- expect(msg).toHaveBeenWarned()
- expect(console.error).toHaveBeenCalled()
- })
- it('does not call console.error if silent is true', () => {
- Vue.config.silent = true
- warn(msg, vm)
- expect(console.error).not.toHaveBeenCalled()
- Vue.config.silent = false
- })
- })
- })
|