@kiwicom/smart-faq
Version:
Smart FAQ
61 lines (57 loc) • 1.62 kB
JavaScript
// @flow
import * as React from 'react';
import { MemoryRouter } from 'react-router';
import { mount } from 'enzyme';
import TrackedFAQArticle from '../TrackedFAQArticle';
import { SearchState } from '../../../SmartFAQ/context/SearchState';
const mockRefType: any = null;
let queriesBeforeClick = 5; //eslint-disable-line
const article = {
id: 'asdsadsa342dfse',
originalId: '23',
perex: 'aa',
title: 'llk',
$refType: mockRefType,
};
const searchState = {
searchText: 'Hola hola',
isVisible: false,
resetQueriesCount: jest.fn(() => {
queriesBeforeClick = 0;
}),
queriesBeforeClick,
changeSearchText: jest.fn(),
incrementQueriesCount: jest.fn(),
toggleSearch: jest.fn(),
enableSearch: jest.fn(),
disableSearch: jest.fn(),
};
window.infinario = {
track: jest.fn(),
};
describe('TrackedFAQArticle', () => {
it('click should track queriesBeforeClick and reset queriesCounter', () => {
const result = mount(
<MemoryRouter>
<SearchState.Provider value={searchState}>
<TrackedFAQArticle
isSearchResult
article={article}
categoryId="444"
/>
</SearchState.Provider>
</MemoryRouter>,
);
result
.find('a[data-cy="faq-article-link"]')
.first()
.simulate('click');
expect(window.infinario.track.mock.calls).toHaveLength(1);
expect(window.infinario.track.mock.calls[0][1]).toEqual({
action: 'articleClicked',
queriesBeforeClick: 5,
});
expect(queriesBeforeClick).toEqual(0);
expect(searchState.resetQueriesCount.mock.calls).toHaveLength(1);
});
});