summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhil Hughes <me@iamphill.com>2016-09-13 09:50:15 +0100
committerPhil Hughes <me@iamphill.com>2016-09-13 09:50:15 +0100
commitb0c01f637e6d2f761d8afc74f7efb8e300202f71 (patch)
treea1675b9b6191dca2060215e35ef1b7b7b9b29883
parent7af46a3e5642d3821fcc4bc7fb71197a49b9293c (diff)
downloadgitlab-ce-members-ui-dropdown.tar.gz
Added dropdown testmembers-ui-dropdown
-rw-r--r--spec/features/projects/members/new_member_dropdown_spec.rb87
1 files changed, 87 insertions, 0 deletions
diff --git a/spec/features/projects/members/new_member_dropdown_spec.rb b/spec/features/projects/members/new_member_dropdown_spec.rb
new file mode 100644
index 00000000000..89d777c89bf
--- /dev/null
+++ b/spec/features/projects/members/new_member_dropdown_spec.rb
@@ -0,0 +1,87 @@
+require 'spec_helper'
+
+feature 'New project member dropdown', feature: true, js: true do
+ include WaitForAjax
+
+ let(:user) { create(:user) }
+ let!(:user2) { create(:user) }
+ let!(:group) { create(:group) }
+ let!(:group2) { create(:group) }
+ let(:project) { create(:project) }
+
+ background do
+ project.team << [user, :master]
+ login_as(user)
+ visit namespace_project_project_members_path(project.namespace, project)
+ end
+
+ it 'displays list of groups and users' do
+ open_dropdown
+
+ page.within '.dropdown-members' do
+ expect(page).to have_content(user2.name)
+ expect(page).to have_content(group.name)
+ expect(page).to have_content(group2.name)
+ end
+ end
+
+ it 'adds a user' do
+ open_dropdown
+
+ page.within '.dropdown-members' do
+ click_link user2.name
+ end
+
+ expect(find('#js-members-input').value).to eq(user2.name)
+
+ click_button 'Add to project'
+ expect(page).to have_selector('.project_member', count: 2)
+ end
+
+ it 'adds a group' do
+ open_dropdown
+
+ page.within '.dropdown-members' do
+ click_link group.name
+ end
+
+ expect(find('#js-members-input').value).to eq group.name
+
+ click_button 'Add to project'
+ expect(page).to have_selector('.group_member', count: 1)
+ end
+
+ it 'adds multiple groups' do
+ open_dropdown
+
+ page.within '.dropdown-members' do
+ click_link group.name
+ click_link group2.name
+ end
+
+ expect(find('#js-members-input').value).to eq("#{group.name},#{group2.name}")
+
+ click_button 'Add to project'
+ expect(page).to have_selector('.group_member', count: 2)
+ end
+
+ it 'adds a user & a group' do
+ open_dropdown
+
+ page.within '.dropdown-members' do
+ click_link user2.name
+ click_link group.name
+ end
+
+ expect(find('#js-members-input').value).to eq("#{user2.name},#{group.name}")
+
+ click_button 'Add to project'
+ expect(page).to have_selector('.project_member', count: 2)
+ expect(page).to have_selector('.group_member', count: 1)
+ end
+
+ def open_dropdown
+ find('#js-members-input').click
+ wait_for_ajax
+ end
+end