2019-11-08 03:06:48 +00:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2018-08-15 13:25:17 +00:00
|
|
|
require 'spec_helper'
|
|
|
|
|
|
|
|
describe Gitlab::GroupSearchResults do
|
|
|
|
let(:user) { create(:user) }
|
|
|
|
|
|
|
|
describe 'user search' do
|
|
|
|
let(:group) { create(:group) }
|
|
|
|
|
|
|
|
it 'returns the users belonging to the group matching the search query' do
|
|
|
|
user1 = create(:user, username: 'gob_bluth')
|
|
|
|
create(:group_member, :developer, user: user1, group: group)
|
|
|
|
|
|
|
|
user2 = create(:user, username: 'michael_bluth')
|
|
|
|
create(:group_member, :developer, user: user2, group: group)
|
|
|
|
|
|
|
|
create(:user, username: 'gob_2018')
|
|
|
|
|
2018-12-11 13:05:49 +00:00
|
|
|
result = described_class.new(user, anything, group, 'gob').objects('users')
|
|
|
|
|
|
|
|
expect(result).to eq [user1]
|
2018-08-15 13:25:17 +00:00
|
|
|
end
|
|
|
|
|
2019-07-24 09:20:54 +00:00
|
|
|
it 'returns the user belonging to the subgroup matching the search query' do
|
2018-08-15 13:25:17 +00:00
|
|
|
user1 = create(:user, username: 'gob_bluth')
|
|
|
|
subgroup = create(:group, parent: group)
|
|
|
|
create(:group_member, :developer, user: user1, group: subgroup)
|
|
|
|
|
|
|
|
create(:user, username: 'gob_2018')
|
|
|
|
|
2018-12-11 13:05:49 +00:00
|
|
|
result = described_class.new(user, anything, group, 'gob').objects('users')
|
|
|
|
|
|
|
|
expect(result).to eq [user1]
|
|
|
|
end
|
|
|
|
|
2019-07-24 09:20:54 +00:00
|
|
|
it 'returns the user belonging to the parent group matching the search query' do
|
2018-12-11 13:05:49 +00:00
|
|
|
user1 = create(:user, username: 'gob_bluth')
|
|
|
|
parent_group = create(:group, children: [group])
|
|
|
|
create(:group_member, :developer, user: user1, group: parent_group)
|
|
|
|
|
|
|
|
create(:user, username: 'gob_2018')
|
|
|
|
|
|
|
|
result = described_class.new(user, anything, group, 'gob').objects('users')
|
|
|
|
|
|
|
|
expect(result).to eq [user1]
|
2018-08-15 13:25:17 +00:00
|
|
|
end
|
2018-09-17 15:37:20 +00:00
|
|
|
|
2019-07-24 09:20:54 +00:00
|
|
|
it 'does not return the user belonging to the private subgroup' do
|
2018-09-17 15:37:20 +00:00
|
|
|
user1 = create(:user, username: 'gob_bluth')
|
|
|
|
subgroup = create(:group, :private, parent: group)
|
|
|
|
create(:group_member, :developer, user: user1, group: subgroup)
|
|
|
|
|
|
|
|
create(:user, username: 'gob_2018')
|
|
|
|
|
2018-12-11 13:05:49 +00:00
|
|
|
result = described_class.new(user, anything, group, 'gob').objects('users')
|
|
|
|
|
|
|
|
expect(result).to eq []
|
2018-09-17 15:37:20 +00:00
|
|
|
end
|
2018-12-17 13:30:49 +00:00
|
|
|
|
|
|
|
it 'does not return the user belonging to an unrelated group' do
|
|
|
|
user = create(:user, username: 'gob_bluth')
|
|
|
|
unrelated_group = create(:group)
|
|
|
|
create(:group_member, :developer, user: user, group: unrelated_group)
|
|
|
|
|
|
|
|
result = described_class.new(user, anything, group, 'gob').objects('users')
|
|
|
|
|
|
|
|
expect(result).to eq []
|
|
|
|
end
|
2020-01-15 18:08:34 +00:00
|
|
|
|
|
|
|
it 'sets include_subgroups flag by default' do
|
|
|
|
result = described_class.new(user, anything, group, 'gob')
|
|
|
|
|
|
|
|
expect(result.issuable_params[:include_subgroups]).to eq(true)
|
|
|
|
end
|
2018-08-15 13:25:17 +00:00
|
|
|
end
|
|
|
|
end
|