diff options
Diffstat (limited to 'spec/frontend/notes/components/discussion_filter_spec.js')
-rw-r--r-- | spec/frontend/notes/components/discussion_filter_spec.js | 38 |
1 files changed, 20 insertions, 18 deletions
diff --git a/spec/frontend/notes/components/discussion_filter_spec.js b/spec/frontend/notes/components/discussion_filter_spec.js index 91ff796b9de..9f3655c53b9 100644 --- a/spec/frontend/notes/components/discussion_filter_spec.js +++ b/spec/frontend/notes/components/discussion_filter_spec.js @@ -25,6 +25,8 @@ describe('DiscussionFilter component', () => { const filterDiscussion = jest.fn(); + const findFilter = filterType => wrapper.find(`.dropdown-item[data-filter-type="${filterType}"]`); + const mountComponent = () => { const discussions = [ { @@ -74,22 +76,22 @@ describe('DiscussionFilter component', () => { }); it('renders the all filters', () => { - expect(wrapper.findAll('.dropdown-menu li').length).toBe(discussionFiltersMock.length); + expect(wrapper.findAll('.discussion-filter-container .dropdown-item').length).toBe( + discussionFiltersMock.length, + ); }); it('renders the default selected item', () => { expect( wrapper - .find('#discussion-filter-dropdown') + .find('#discussion-filter-dropdown .dropdown-item') .text() .trim(), ).toBe(discussionFiltersMock[0].title); }); it('updates to the selected item', () => { - const filterItem = wrapper.find( - `.dropdown-menu li[data-filter-type="${DISCUSSION_FILTER_TYPES.HISTORY}"] button`, - ); + const filterItem = findFilter(DISCUSSION_FILTER_TYPES.ALL); filterItem.trigger('click'); @@ -97,37 +99,37 @@ describe('DiscussionFilter component', () => { }); it('only updates when selected filter changes', () => { - wrapper - .find(`.dropdown-menu li[data-filter-type="${DISCUSSION_FILTER_TYPES.ALL}"] button`) - .trigger('click'); + findFilter(DISCUSSION_FILTER_TYPES.ALL).trigger('click'); expect(filterDiscussion).not.toHaveBeenCalled(); }); + it('disables timeline view if it was enabled', () => { + store.state.isTimelineEnabled = true; + + findFilter(DISCUSSION_FILTER_TYPES.HISTORY).trigger('click'); + + expect(wrapper.vm.$store.state.isTimelineEnabled).toBe(false); + }); + it('disables commenting when "Show history only" filter is applied', () => { - const filterItem = wrapper.find( - `.dropdown-menu li[data-filter-type="${DISCUSSION_FILTER_TYPES.HISTORY}"] button`, - ); - filterItem.trigger('click'); + findFilter(DISCUSSION_FILTER_TYPES.HISTORY).trigger('click'); expect(wrapper.vm.$store.state.commentsDisabled).toBe(true); }); it('enables commenting when "Show history only" filter is not applied', () => { - const filterItem = wrapper.find( - `.dropdown-menu li[data-filter-type="${DISCUSSION_FILTER_TYPES.ALL}"] button`, - ); - filterItem.trigger('click'); + findFilter(DISCUSSION_FILTER_TYPES.ALL).trigger('click'); expect(wrapper.vm.$store.state.commentsDisabled).toBe(false); }); it('renders a dropdown divider for the default filter', () => { const defaultFilter = wrapper.findAll( - `.dropdown-menu li[data-filter-type="${DISCUSSION_FILTER_TYPES.ALL}"] > *`, + `.discussion-filter-container .dropdown-item-wrapper > *`, ); - expect(defaultFilter.at(defaultFilter.length - 1).classes('dropdown-divider')).toBe(true); + expect(defaultFilter.at(1).classes('gl-new-dropdown-divider')).toBe(true); }); describe('Merge request tabs', () => { |