vue-carousel-3d
Version:
Beautiful, flexible and touch supported 3D Carousel for Vue.js
62 lines (45 loc) • 1.7 kB
JavaScript
/* eslint-disable */
const Vue = require('vue');
const utils = require('../utils');
import Carousel3d from "@/carousel-3d/Carousel3d";
import Slide from "@/carousel-3d/Slide";
describe('Controls', () => {
let vm;
let carouselInstance;
let $controls;
beforeEach(() => {
vm = new Vue({
el: document.createElement('div'),
render: (h) => h(Carousel3d, { props: { controlsVisible: true } }, [h(Slide), h(Slide), h(Slide), h(Slide)]),
});
carouselInstance = vm.$children[0];
$controls = vm.$el.querySelector('.carousel-3d-controls');
});
it('should mount successfully', () => {
expect($controls).toBeDefined();
return utils.expectToMatchSnapshot(vm);
});
it('should render a next button', () => {
expect(vm.$el.querySelector('.next')).toBeDefined();
return utils.expectToMatchSnapshot(vm);
});
it('should render a prev button', () => {
expect(vm.$el.querySelector('.prev')).toBeDefined();
return utils.expectToMatchSnapshot(vm);
});
it('should trigger onNext when next is clicked', () => {
vm.$el.querySelector('.next').click();
return carouselInstance.$nextTick().then(() => {
expect(carouselInstance.currentIndex).toBe(1);
return utils.expectToMatchSnapshot(vm);
});
});
it('should trigger onNext when next is clicked', () => {
vm.$el.querySelector('.prev').click();
return carouselInstance.$nextTick().then(() => {
expect(carouselInstance.currentIndex).toBe(3);
return utils.expectToMatchSnapshot(vm);
});
});
})