@kiwicom/smart-faq
Version:
63 lines (58 loc) • 1.6 kB
JavaScript
// @flow
import * as React from 'react';
import { MemoryRouter } from 'react-router';
import LogContext from '@kiwicom/nitro/lib/services/log/context';
import { mount } from 'enzyme';
import SearchBar from '../SearchBar';
import { SearchState } from '../../../SmartFAQ/context/SearchState';
const searchContext = {
searchText: 'Hola hola',
queriesBeforeClick: 5,
isVisible: true,
toggleSearch: jest.fn(),
enableSearch: jest.fn(),
disableSearch: jest.fn(),
resetQueriesCount: jest.fn(),
incrementQueriesCount: jest.fn(),
changeSearchText: jest.fn(),
clearSearch: jest.fn(),
};
describe('SearchTracking', () => {
it('input query should track query', done => {
const log = jest.fn();
const result = mount(
<MemoryRouter>
<SearchState.Provider value={searchContext}>
<LogContext.Provider value={{ log }}>
<SearchBar />
</LogContext.Provider>
</SearchState.Provider>
</MemoryRouter>,
);
result
.find('input[data-test="SearchBarInput"]')
.first()
.simulate('change', { target: { value: 'queeery' } });
setTimeout(() => {
const calls = log.mock.calls;
expect(calls).toHaveLength(1);
expect(calls[0]).toEqual([
{
category: 'SmartFAQ',
subCategory: 'FAQs',
action: 'search',
destinations: {
bigQuery: true,
exponea: true,
ga: false,
logmole: false,
},
},
{
searchedText: 'queeery',
},
]);
done();
}, 400);
});
});