instantjob-recruiter-client
Version:
a set of tools for creating an instantjob recruiter react client
53 lines (50 loc) • 1.58 kB
JSX
import React from 'react'
import {mount} from 'enzyme'
import expect from 'expect'
import Fuse from 'fuse.js'
import sinon from 'sinon'
import SearchBar from 'components/search_bar'
describe('SearchBar', () => {
it('should render', () => {
const on_query_change = sinon.spy()
const element = mount(
<SearchBar
make_fuse={() => new Fuse([], {
keys: ["name"],
id: "id",
threshold: 0.2,
})}
on_query_change={on_query_change}
default_results={[1]}
/>
)
expect(element.html()).toExist()
expect(on_query_change.callCount).toEqual(1)
element.instance().set_query("blob")
expect(on_query_change.callCount).toEqual(2)
element.instance().set_query("blob")
expect(on_query_change.callCount).toEqual(2)
element.setProps({items: [{id: 1, name: ''}]})
expect(on_query_change.callCount).toEqual(2)
element.setProps({items: [{id: 1, name: 'blob'}]})
expect(on_query_change.callCount).toEqual(3)
element.instance().set_query("")
expect(on_query_change.callCount).toEqual(4)
})
it('should set default results at initialisation', () => {
const on_query_change = sinon.spy()
const default_results = [1]
const element = mount(
<SearchBar
make_fuse={() => new Fuse([], {
keys: ["name"],
id: "id",
threshold: 0.2,
})}
on_query_change={on_query_change}
default_results={default_results}
/>
)
expect(on_query_change.calledWith("", default_results)).toBeTruthy()
})
})