1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
require 'spec_helper'
feature 'Group show page', js: true do
let(:group) { create(:group) }
let(:path) { group_path(group) }
context 'when signed in' do
let(:user) do
create(:group_member, :developer, user: create(:user), group: group ).user
end
before do
sign_in(user)
end
it_behaves_like "an autodiscoverable RSS feed with current_user's RSS token" do
before do
visit path
end
end
context 'subgroups', :nested_groups do
let!(:subgroup) { create(:group, parent: group) }
let!(:subsub_group) { create(:group, parent: subgroup) }
let!(:project) { create(:project, namespace: subsub_group) }
subject(:visit_subgroups) { visit subgroups_group_path(group) }
it 'only shows the direct children by default' do
visit_subgroups
expect(page).to have_selector('.groups-list-tree-container .group-list-tree', count: 1)
expect(page).to have_content(subgroup.name)
expect(page).not_to have_content(subsub_group.name)
end
context 'nested projects' do
def expand_groups
visit_subgroups
find("#group-#{subgroup.id}").trigger('click')
wait_for_requests
find("#group-#{subsub_group.id}").trigger('click')
wait_for_requests
end
it 'allows expanding to see a subgroups projects' do
expand_groups
expect(page).to have_content(project.name)
end
it 'shows a link to the group page if there are more than 10 projects' do
create_list(:project, 10, namespace: subsub_group)
expand_groups
expect(page).to have_link('1 more project')
end
end
describe 'filtering subgroups' do
let!(:other_subgroup) { create(:group, parent: group) }
it 'shows the parent of the group matching a search' do
visit_subgroups
expect(page).to have_content(subgroup.name)
expect(page).to have_content(other_subgroup.name)
fill_in 'filter_groups', with: subsub_group.name
wait_for_requests
expect(page).to have_content(subgroup.name)
expect(page).not_to have_content(other_subgroup.name)
end
end
end
end
context 'when signed out' do
it_behaves_like "an autodiscoverable RSS feed without an RSS token" do
before do
visit group_path(group)
end
end
end
end
|