2019-10-12 21:52:04 +05:30
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2019-12-04 20:38:33 +05:30
|
|
|
require 'spec_helper'
|
2018-03-17 18:26:18 +05:30
|
|
|
|
2020-06-23 00:09:42 +05:30
|
|
|
RSpec.describe 'Dropdown emoji', :js do
|
2018-03-17 18:26:18 +05:30
|
|
|
include FilteredSearchHelpers
|
|
|
|
|
|
|
|
let!(:project) { create(:project, :public) }
|
|
|
|
let!(:user) { create(:user, name: 'administrator', username: 'root') }
|
|
|
|
let!(:issue) { create(:issue, project: project) }
|
|
|
|
let!(:award_emoji_star) { create(:award_emoji, name: 'star', user: user, awardable: issue) }
|
|
|
|
let(:filtered_search) { find('.filtered-search') }
|
|
|
|
let(:js_dropdown_emoji) { '#js-dropdown-my-reaction' }
|
2020-03-13 15:44:24 +05:30
|
|
|
let(:filter_dropdown) { find("#{js_dropdown_emoji} .filter-dropdown") }
|
2018-03-17 18:26:18 +05:30
|
|
|
|
|
|
|
before do
|
2018-11-18 11:00:15 +05:30
|
|
|
project.add_maintainer(user)
|
2018-03-17 18:26:18 +05:30
|
|
|
create_list(:award_emoji, 2, user: user, name: 'thumbsup')
|
|
|
|
create_list(:award_emoji, 1, user: user, name: 'thumbsdown')
|
|
|
|
create_list(:award_emoji, 3, user: user, name: 'star')
|
|
|
|
end
|
|
|
|
|
|
|
|
context 'when user not logged in' do
|
|
|
|
before do
|
|
|
|
visit project_issues_path(project)
|
|
|
|
end
|
|
|
|
|
|
|
|
describe 'behavior' do
|
2020-03-13 15:44:24 +05:30
|
|
|
it 'does not open when the search bar has my-reaction=' do
|
|
|
|
filtered_search.set('my-reaction=')
|
2018-03-17 18:26:18 +05:30
|
|
|
|
|
|
|
expect(page).not_to have_css(js_dropdown_emoji)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
context 'when user loggged in' do
|
|
|
|
before do
|
|
|
|
sign_in(user)
|
|
|
|
|
|
|
|
visit project_issues_path(project)
|
|
|
|
end
|
|
|
|
|
|
|
|
describe 'behavior' do
|
2020-03-13 15:44:24 +05:30
|
|
|
it 'opens when the search bar has my-reaction=' do
|
2020-04-08 14:13:33 +05:30
|
|
|
filtered_search.set('my-reaction:=')
|
2018-03-17 18:26:18 +05:30
|
|
|
|
|
|
|
expect(page).to have_css(js_dropdown_emoji, visible: true)
|
|
|
|
end
|
|
|
|
|
2019-07-07 11:18:12 +05:30
|
|
|
it 'loads all the emojis when opened' do
|
2020-04-08 14:13:33 +05:30
|
|
|
input_filtered_search('my-reaction:=', submit: false, extra_space: false)
|
2018-03-17 18:26:18 +05:30
|
|
|
|
2020-03-13 15:44:24 +05:30
|
|
|
expect_filtered_search_dropdown_results(filter_dropdown, 3)
|
2018-03-17 18:26:18 +05:30
|
|
|
end
|
|
|
|
|
|
|
|
it 'shows the most populated emoji at top of dropdown' do
|
2020-04-08 14:13:33 +05:30
|
|
|
input_filtered_search('my-reaction:=', submit: false, extra_space: false)
|
2018-03-17 18:26:18 +05:30
|
|
|
|
2020-03-13 15:44:24 +05:30
|
|
|
expect(first("#{js_dropdown_emoji} .filter-dropdown li")).to have_content(award_emoji_star.name)
|
2018-03-17 18:26:18 +05:30
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|