2019-08-02 17:54:07 +01:00
|
|
|
// Copyright (C) 2019 Storj Labs, Inc.
|
|
|
|
// See LICENSE for copying information.
|
|
|
|
|
|
|
|
import { mount, shallowMount } from '@vue/test-utils';
|
|
|
|
import * as sinon from 'sinon';
|
|
|
|
import SearchComponent from '@/components/common/SearchComponent.vue';
|
|
|
|
|
|
|
|
describe('SearchComponent.vue', () => {
|
|
|
|
it('renders correctly', () => {
|
|
|
|
const wrapper = shallowMount(SearchComponent);
|
|
|
|
|
|
|
|
expect(wrapper).toMatchSnapshot();
|
|
|
|
});
|
|
|
|
|
|
|
|
it('renders correctly with default props', () => {
|
|
|
|
const wrapper = shallowMount(SearchComponent);
|
|
|
|
|
|
|
|
expect(wrapper.find('input').props('placeHolder')).toMatch('');
|
|
|
|
expect(wrapper.find('input').props('search')).toMatch('');
|
|
|
|
});
|
|
|
|
|
|
|
|
it('functions onMouseEnter/onMouseLeave work correctly', () => {
|
|
|
|
const wrapper = mount(SearchComponent);
|
|
|
|
|
|
|
|
wrapper.vm.onMouseEnter();
|
|
|
|
|
2019-08-05 11:18:32 +01:00
|
|
|
expect(wrapper.vm.style.width).toMatch('602px');
|
2019-08-02 17:54:07 +01:00
|
|
|
|
|
|
|
wrapper.vm.onMouseLeave();
|
|
|
|
|
|
|
|
expect(wrapper.vm.searchQuery).toMatch('');
|
2019-08-05 11:18:32 +01:00
|
|
|
expect(wrapper.vm.style.width).toMatch('56px');
|
2019-08-02 17:54:07 +01:00
|
|
|
});
|
|
|
|
|
|
|
|
it('function onInput works correctly', () => {
|
|
|
|
let onMouseLeaveSpy = sinon.spy();
|
|
|
|
let processSearchQuerySpy = sinon.spy();
|
|
|
|
|
|
|
|
const wrapper = mount(SearchComponent, {
|
|
|
|
methods: {
|
|
|
|
onMouseLeave: onMouseLeaveSpy,
|
|
|
|
processSearchQuery: processSearchQuerySpy,
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
wrapper.vm.onInput();
|
|
|
|
|
|
|
|
expect(onMouseLeaveSpy.callCount).toBe(1);
|
|
|
|
expect(processSearchQuerySpy.callCount).toBe(1);
|
|
|
|
});
|
|
|
|
});
|