Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
c93e8f24
Commit
c93e8f24
authored
Aug 31, 2017
by
Michael Kozono
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add post-nested group Share lock integration tests
parent
a1a4754b
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
86 additions
and
34 deletions
+86
-34
spec/features/projects/members/share_with_group_spec.rb
spec/features/projects/members/share_with_group_spec.rb
+86
-34
No files found.
spec/features/projects/members/share_with_group_spec.rb
View file @
c93e8f24
...
...
@@ -4,50 +4,106 @@ feature 'Project > Members > Share with Group', :js do
include
Select2Helper
include
ActionView
::
Helpers
::
DateHelper
describe
'Share Lock'
do
let
(
:master
)
{
create
(
:user
)
}
let
(
:group
)
{
create
(
:group
)
}
let!
(
:other_group
)
{
create
(
:group
)
}
let
(
:project
)
{
create
(
:project
,
namespace:
group
)
}
let
(
:master
)
{
create
(
:user
)
}
background
do
project
.
add_master
(
master
)
sign_in
(
master
)
describe
'Share Lock'
do
shared_examples
'the project can be shared with groups'
do
scenario
'the "Share with group" tab exists'
do
visit
project_settings_members_path
(
project
)
expect
(
page
).
to
have_selector
(
'#share-with-group-tab'
)
end
end
context
'when the group does not have "Share lock" enabled
'
do
before
do
shared_examples
'the project cannot be shared with groups
'
do
scenario
'the "Share with group" tab does not exist'
do
visit
project_settings_members_path
(
project
)
expect
(
page
).
to
have_selector
(
'#add-member-tab'
)
expect
(
page
).
not_to
have_selector
(
'#share-with-group-tab'
)
end
end
click_on
'share-with-group-tab'
context
'for a project in a root group'
do
let!
(
:group_to_share_with
)
{
create
(
:group
)
}
let
(
:project
)
{
create
(
:project
,
namespace:
create
(
:group
))
}
background
do
project
.
add_master
(
master
)
sign_in
(
master
)
end
select2
other_group
.
id
,
from:
'#link_group_id'
page
.
find
(
'body'
).
click
find
(
'.btn-create'
).
trigger
(
'click'
)
context
'when the group has "Share lock" disabled'
do
it_behaves_like
'the project can be shared with groups'
scenario
'the project can be shared with another group'
do
visit
project_settings_members_path
(
project
)
click_on
'share-with-group-tab'
select2
group_to_share_with
.
id
,
from:
'#link_group_id'
page
.
find
(
'body'
).
click
find
(
'.btn-create'
).
trigger
(
'click'
)
page
.
within
(
'.project-members-groups'
)
do
expect
(
page
).
to
have_content
(
group_to_share_with
.
name
)
end
end
end
scenario
'the group link appears in the existing groups list
'
do
page
.
within
(
'.project-members-groups'
)
do
expect
(
page
).
to
have_content
(
other_group
.
nam
e
)
context
'when the group has "Share lock" enabled
'
do
before
do
project
.
namespace
.
update_column
(
:share_with_group_lock
,
tru
e
)
end
it_behaves_like
'the project cannot be shared with groups'
end
end
context
'when the group has "Share lock" enabled'
do
before
do
group
.
update_column
(
:share_with_group_lock
,
true
)
visit
project_settings_members_path
(
project
)
context
'for a project in a subgroup'
,
:postgresql
do
let!
(
:group_to_share_with
)
{
create
(
:group
)
}
let
(
:root_group
)
{
create
(
:group
)
}
let
(
:subgroup
)
{
create
(
:group
,
parent:
root_group
)
}
let
(
:project
)
{
create
(
:project
,
namespace:
subgroup
)
}
background
do
project
.
add_master
(
master
)
sign_in
(
master
)
end
scenario
'the "Share with group" tab does not exist'
do
expect
(
page
).
to
have_selector
(
'#add-member-tab'
)
expect
(
page
).
not_to
have_selector
(
'#share-with-group-tab'
)
context
'when the root_group has "Share lock" disabled'
do
context
'when the subgroup has "Share lock" disabled'
do
it_behaves_like
'the project can be shared with groups'
end
context
'when the subgroup has "Share lock" enabled'
do
before
do
subgroup
.
update_column
(
:share_with_group_lock
,
true
)
end
it_behaves_like
'the project cannot be shared with groups'
end
end
context
'when the root_group has "Share lock" enabled'
do
before
do
root_group
.
update_column
(
:share_with_group_lock
,
true
)
end
context
'when the subgroup has "Share lock" disabled (parent overridden)'
do
it_behaves_like
'the project can be shared with groups'
end
context
'when the subgroup has "Share lock" enabled'
do
before
do
subgroup
.
update_column
(
:share_with_group_lock
,
true
)
end
it_behaves_like
'the project cannot be shared with groups'
end
end
end
end
describe
'setting an expiration date for a group link'
do
let
(
:master
)
{
create
(
:user
)
}
let
(
:project
)
{
create
(
:project
)
}
let!
(
:group
)
{
create
(
:group
)
}
...
...
@@ -83,17 +139,14 @@ feature 'Project > Members > Share with Group', :js do
describe
'the groups dropdown'
do
context
'with multiple groups to choose from'
do
let
(
:master
)
{
create
(
:user
)
}
let
(
:project
)
{
create
(
:project
)
}
let
(
:group
)
{
create
(
:group
)
}
background
do
project
.
add_master
(
master
)
sign_in
(
master
)
group_two
=
create
(
:group
)
group
.
add_owner
(
master
)
group_two
.
add_owner
(
master
)
create
(
:group
).
add_owner
(
master
)
create
(
:group
).
add_owner
(
master
)
visit
project_settings_members_path
(
project
)
execute_script
'GroupsSelect.PER_PAGE = 1;'
...
...
@@ -110,17 +163,16 @@ feature 'Project > Members > Share with Group', :js do
end
context
'for a project in a nested group'
do
let
(
:master
)
{
create
(
:user
)
}
let
(
:group
)
{
create
(
:group
)
}
let!
(
:nested_group
)
{
create
(
:group
,
parent:
group
)
}
let!
(
:
another_group
)
{
create
(
:group
)
}
let!
(
:
group_to_share_with
)
{
create
(
:group
)
}
let!
(
:project
)
{
create
(
:project
,
namespace:
nested_group
)
}
background
do
project
.
add_master
(
master
)
sign_in
(
master
)
group
.
add_master
(
master
)
another_group
.
add_master
(
master
)
group_to_share_with
.
add_master
(
master
)
end
scenario
'the groups dropdown does not show ancestors'
,
:nested_groups
do
...
...
@@ -130,7 +182,7 @@ feature 'Project > Members > Share with Group', :js do
click_link
'Search for a group'
page
.
within
'.select2-drop'
do
expect
(
page
).
to
have_content
(
another_group
.
name
)
expect
(
page
).
to
have_content
(
group_to_share_with
.
name
)
expect
(
page
).
not_to
have_content
(
group
.
name
)
end
end
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment