UNPKG

vue-instantsearch

Version:

👀 Lightning-fast Algolia search for Vue apps

77 lines (67 loc) • 1.91 kB
import { mount } from '../../../test/utils'; import RelevantSort from '../RelevantSort.vue'; import { __setState } from '../../mixins/widget'; jest.mock('../../mixins/widget'); describe('renders correctly', () => { test('no virtual replica', () => { __setState({ isVirtualReplica: false, isRelevantSorted: false, }); const wrapper = mount(RelevantSort); expect(wrapper).toHaveEmptyHTML(); }); test('not relevant sorted', () => { __setState({ isVirtualReplica: true, isRelevantSorted: false, }); const wrapper = mount(RelevantSort); expect(wrapper.html()).toMatchInlineSnapshot(` <div class="ais-RelevantSort"> <div class="ais-RelevantSort-text"> </div> <button class="ais-RelevantSort-button" type="button" > See relevant results </button> </div> `); }); test('relevant sorted', () => { __setState({ isVirtualReplica: true, isRelevantSorted: true, }); const wrapper = mount(RelevantSort); expect(wrapper.html()).toMatchInlineSnapshot(` <div class="ais-RelevantSort"> <div class="ais-RelevantSort-text"> </div> <button class="ais-RelevantSort-button" type="button" > See all results </button> </div> `); }); }); it("calls the connector's refine function with 0 and undefined", async () => { __setState({ isRelevantSorted: true, isVirtualReplica: true, refine: jest.fn(() => { wrapper.vm.state.isRelevantSorted = !wrapper.vm.state.isRelevantSorted; }), }); const wrapper = mount(RelevantSort); const button = wrapper.find('button'); await button.trigger('click'); expect(wrapper.vm.state.refine).toHaveBeenLastCalledWith(0); await button.trigger('click'); expect(wrapper.vm.state.refine).toHaveBeenLastCalledWith(undefined); await button.trigger('click'); expect(wrapper.vm.state.refine).toHaveBeenLastCalledWith(0); });