summaryrefslogtreecommitdiff
path: root/spec/features/groups/members/filter_members_spec.rb
diff options
context:
space:
mode:
authorShinya Maeda <shinya@gitlab.com>2018-05-14 17:20:47 +0900
committerShinya Maeda <shinya@gitlab.com>2018-05-14 17:20:47 +0900
commit1e76f289fb3f6e125594d2ec0169ecde25e4e335 (patch)
tree3087903b6f5aab8c74f3f0d76b2908cd5dc169e3 /spec/features/groups/members/filter_members_spec.rb
parenta74184eb5e692ef77fe3be28b1f4a40549c8fcff (diff)
parent40683268b2b5ad807194387d8345a30195e178c4 (diff)
downloadgitlab-ce-1e76f289fb3f6e125594d2ec0169ecde25e4e335.tar.gz
Merge branch 'master' into per-project-pipeline-iid
Diffstat (limited to 'spec/features/groups/members/filter_members_spec.rb')
-rw-r--r--spec/features/groups/members/filter_members_spec.rb54
1 files changed, 54 insertions, 0 deletions
diff --git a/spec/features/groups/members/filter_members_spec.rb b/spec/features/groups/members/filter_members_spec.rb
new file mode 100644
index 00000000000..5ddb5894624
--- /dev/null
+++ b/spec/features/groups/members/filter_members_spec.rb
@@ -0,0 +1,54 @@
+require 'spec_helper'
+
+feature 'Groups > Members > Filter members' do
+ let(:user) { create(:user) }
+ let(:user_with_2fa) { create(:user, :two_factor_via_otp) }
+ let(:group) { create(:group) }
+
+ background do
+ group.add_owner(user)
+ group.add_master(user_with_2fa)
+
+ sign_in(user)
+ end
+
+ scenario 'shows all members' do
+ visit_members_list
+
+ expect(first_member).to include(user.name)
+ expect(second_member).to include(user_with_2fa.name)
+ expect(page).to have_css('.member-filter-2fa-dropdown .dropdown-toggle-text', text: '2FA: Everyone')
+ end
+
+ scenario 'shows only 2FA members' do
+ visit_members_list(two_factor: 'enabled')
+
+ expect(first_member).to include(user_with_2fa.name)
+ expect(members_list.size).to eq(1)
+ expect(page).to have_css('.member-filter-2fa-dropdown .dropdown-toggle-text', text: '2FA: Enabled')
+ end
+
+ scenario 'shows only non 2FA members' do
+ visit_members_list(two_factor: 'disabled')
+
+ expect(first_member).to include(user.name)
+ expect(members_list.size).to eq(1)
+ expect(page).to have_css('.member-filter-2fa-dropdown .dropdown-toggle-text', text: '2FA: Disabled')
+ end
+
+ def visit_members_list(options = {})
+ visit group_group_members_path(group.to_param, options)
+ end
+
+ def members_list
+ page.all('ul.content-list > li')
+ end
+
+ def first_member
+ members_list.first.text
+ end
+
+ def second_member
+ members_list.last.text
+ end
+end