UNPKG

vuetify

Version:

Vue Material Component Framework

70 lines (52 loc) 2.45 kB
// Lib import { mount } from '@vue/test-utils' // Components import VBtn from '../../../components/VBtn' // Services import goTo, { Goto } from '../index' import { Application } from '../../application/index' // Types import { VuetifyServiceContract } from 'vuetify/types/services' describe('$vuetify.goTo', () => { (global as any).performance = require('perf_hooks').performance let framework: Record<string, VuetifyServiceContract> = {} beforeEach(() => { framework = { application: new Application(), } goTo.framework = framework }) it('should throw error when target is undefined or null', async () => { expect(() => goTo(undefined)) .toThrow(new TypeError('Target must be a Number/Selector/HTMLElement/VueComponent, received undefined instead.')) expect(() => goTo(null)) .toThrow(new TypeError('Target must be a Number/Selector/HTMLElement/VueComponent, received null instead.')) }) it('should throw error when target element is not found', async () => { expect(() => goTo('#foo')) .toThrow(new Error('Target element "#foo" not found.')) }) it('should throw error when container element is not found', async () => { expect(() => goTo(0, { container: '#thisContainerDoesNotExist' })) .toThrow(new Error('Container element "#thisContainerDoesNotExist" not found.')) }) it('should throw error when container is undefined or null', async () => { expect(() => goTo(0, { container: undefined })) .toThrow(new TypeError('Container must be a Selector/HTMLElement/VueComponent, received undefined instead.')) expect(() => goTo(0, { container: null })) .toThrow(new TypeError('Container must be a Selector/HTMLElement/VueComponent, received null instead.')) expect(() => goTo(0, { container: 42 as any })) .toThrow(new TypeError('Container must be a Selector/HTMLElement/VueComponent, received Number instead.')) }) it('should throw error if easing does not exist', async () => { expect(() => goTo(1, { easing: 'thisEasingDoesNotExist' })) .toThrow(new TypeError('Easing function "thisEasingDoesNotExist" not found.')) }) it('should not throw error when using VueComponent as target', async () => { const btn = mount(VBtn) await expect(goTo(btn.vm, { duration: 0 })).resolves.not.toBeUndefined() }) it('should instantiate and return goto', () => { expect(new Goto()).toEqual(goTo) }) })