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
0
Merge Requests
0
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
iv
gitlab-ce
Commits
d262daa4
Commit
d262daa4
authored
Nov 25, 2015
by
Dmitriy Zaporozhets
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Split group feature tests
Signed-off-by:
Dmitriy Zaporozhets
<
dmitriy.zaporozhets@gmail.com
>
parent
561634c7
Changes
10
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
380 additions
and
356 deletions
+380
-356
app/views/groups/group_members/index.html.haml
app/views/groups/group_members/index.html.haml
+1
-1
app/views/projects/project_members/_team.html.haml
app/views/projects/project_members/_team.html.haml
+1
-1
features/group/members.feature
features/group/members.feature
+105
-0
features/group/milestones.feature
features/group/milestones.feature
+30
-0
features/groups.feature
features/groups.feature
+0
-129
features/steps/group/members.rb
features/steps/group/members.rb
+147
-0
features/steps/group/milestones.rb
features/steps/group/milestones.rb
+87
-0
features/steps/groups.rb
features/steps/groups.rb
+1
-225
features/steps/shared/group.rb
features/steps/shared/group.rb
+4
-0
features/steps/shared/user.rb
features/steps/shared/user.rb
+4
-0
No files found.
app/views/groups/group_members/index.html.haml
View file @
d262daa4
...
...
@@ -24,7 +24,7 @@
=
form_tag
group_group_members_path
(
@group
),
method: :get
,
class:
'form-inline member-search-form'
do
.form-group
=
search_field_tag
:search
,
params
[
:search
],
{
placeholder:
'Find existing member by name'
,
class:
'form-control'
,
spellcheck:
false
}
=
button_tag
class:
'btn'
do
=
button_tag
class:
'btn'
,
title:
'Search'
do
=
icon
(
"search"
)
%ul
.content-list
-
@members
.
each
do
|
member
|
...
...
app/views/projects/project_members/_team.html.haml
View file @
d262daa4
...
...
@@ -8,7 +8,7 @@
=
form_tag
namespace_project_project_members_path
(
@project
.
namespace
,
@project
),
method: :get
,
class:
'form-inline member-search-form'
do
.form-group
=
search_field_tag
:search
,
params
[
:search
],
{
placeholder:
'Find existing member by name'
,
class:
'form-control'
,
spellcheck:
false
}
=
button_tag
class:
'btn'
do
=
button_tag
class:
'btn'
,
title:
'Search'
do
=
icon
(
"search"
)
%ul
.content-list
-
members
.
each
do
|
project_member
|
...
...
features/group/members.feature
0 → 100644
View file @
d262daa4
Feature
:
Group Members
Background
:
Given
I sign in as
"John Doe"
And
"John Doe"
is owner of group
"Owned"
And
"John Doe"
is guest of group
"Guest"
@javascript
Scenario
:
I
should add user to group
"Owned"
Given
User
"Mary Jane"
exists
When
I visit group
"Owned"
members page
And
I select user
"Mary Jane"
from list with role
"Reporter"
Then
I should see user
"Mary Jane"
in team list
@javascript
Scenario
:
Add user to group
Given
gitlab user
"Mike"
When
I visit group
"Owned"
members page
When
I select
"Mike"
as
"Reporter"
Then
I should see
"Mike"
in team list as
"Reporter"
@javascript
Scenario
:
Ignore add user to group when is already Owner
Given
gitlab user
"Mike"
When
I visit group
"Owned"
members page
When
I select
"Mike"
as
"Reporter"
Then
I should see
"Mike"
in team list as
"Owner"
@javascript
Scenario
:
Invite user to group
When
I visit group
"Owned"
members page
When
I select
"sjobs@apple.com"
as
"Reporter"
Then
I should see
"sjobs@apple.com"
in team list as invited
"Reporter"
@javascript
Scenario
:
Edit group member permissions
Given
"Mary Jane"
is guest of group
"Owned"
And
I visit group
"Owned"
members page
When
I change the
"Mary Jane"
role to
"Developer"
Then
I should see
"Mary Jane"
as
"Developer"
# Leave
@javascript
Scenario
:
Owner should be able to remove himself from group if he is not the last owner
Given
"Mary Jane"
is owner of group
"Owned"
When
I visit group
"Owned"
members page
Then
I should see user
"John Doe"
in team list
Then
I should see user
"Mary Jane"
in team list
When
I click on the
"Remove User From Group"
button for
"John Doe"
And
I visit group
"Owned"
members page
Then
I should not see user
"John Doe"
in team list
Then
I should see user
"Mary Jane"
in team list
@javascript
Scenario
:
Owner should not be able to remove himself from group if he is the last owner
Given
"Mary Jane"
is guest of group
"Owned"
When
I visit group
"Owned"
members page
Then
I should see user
"John Doe"
in team list
Then
I should see user
"Mary Jane"
in team list
Then
I should not see the
"Remove User From Group"
button for
"John Doe"
@javascript
Scenario
:
Guest should be able to remove himself from group
Given
"Mary Jane"
is guest of group
"Guest"
When
I visit group
"Guest"
members page
Then
I should see user
"John Doe"
in team list
Then
I should see user
"Mary Jane"
in team list
When
I click on the
"Remove User From Group"
button for
"John Doe"
When
I visit group
"Guest"
members page
Then
I should not see user
"John Doe"
in team list
Then
I should see user
"Mary Jane"
in team list
@javascript
Scenario
:
Guest should be able to remove himself from group even if he is the only user in the group
When
I visit group
"Guest"
members page
Then
I should see user
"John Doe"
in team list
When
I click on the
"Remove User From Group"
button for
"John Doe"
When
I visit group
"Guest"
members page
Then
I should not see user
"John Doe"
in team list
# Remove others
Scenario
:
Owner should be able to remove other users from group
Given
"Mary Jane"
is owner of group
"Owned"
When
I visit group
"Owned"
members page
Then
I should see user
"John Doe"
in team list
Then
I should see user
"Mary Jane"
in team list
When
I click on the
"Remove User From Group"
button for
"Mary Jane"
When
I visit group
"Owned"
members page
Then
I should see user
"John Doe"
in team list
Then
I should not see user
"Mary Jane"
in team list
Scenario
:
Guest should not be able to remove other users from group
Given
"Mary Jane"
is guest of group
"Guest"
When
I visit group
"Guest"
members page
Then
I should see user
"John Doe"
in team list
Then
I should see user
"Mary Jane"
in team list
Then
I should not see the
"Remove User From Group"
button for
"Mary Jane"
Scenario
:
Search member by name
Given
"Mary Jane"
is guest of group
"Guest"
And
I visit group
"Guest"
members page
When
I search for 'Mary' member
Then
I should see user
"Mary Jane"
in team list
Then
I should not see user
"John Doe"
in team list
features/group/milestones.feature
0 → 100644
View file @
d262daa4
Feature
:
Group Milestones
Background
:
Given
I sign in as
"John Doe"
And
"John Doe"
is owner of group
"Owned"
Scenario
:
I
should see group
"Owned"
milestone index page with no milestones
When
I visit group
"Owned"
page
And
I click on group milestones
Then
I should see group milestones index page has no milestones
Scenario
:
I
should see group
"Owned"
milestone index page with milestones
Given
Group has projects with milestones
When
I visit group
"Owned"
page
And
I click on group milestones
Then
I should see group milestones index page with milestones
Scenario
:
I
should see group
"Owned"
milestone show page
Given
Group has projects with milestones
When
I visit group
"Owned"
page
And
I click on group milestones
And
I click on one group milestone
Then
I should see group milestone with descriptions and expiry date
And
I should see group milestone with all issues and MRs assigned to that milestone
Scenario
:
Create multiple milestones with one form
Given
I visit group
"Owned"
milestones page
And
I click new milestone button
And
I fill milestone name
When
I press create mileston button
Then
milestone in each project should be created
features/groups.feature
View file @
d262daa4
...
...
@@ -2,7 +2,6 @@ Feature: Groups
Background
:
Given
I sign in as
"John Doe"
And
"John Doe"
is owner of group
"Owned"
And
"John Doe"
is guest of group
"Guest"
Scenario
:
I
should have back to group button
When
I visit group
"Owned"
page
...
...
@@ -24,13 +23,6 @@ Feature: Groups
When
I visit group
"Owned"
merge requests page
Then
I should see merge requests from group
"Owned"
assigned to me
@javascript
Scenario
:
I
should add user to projects in group
"Owned"
Given
User
"Mary Jane"
exists
When
I visit group
"Owned"
members page
And
I select user
"Mary Jane"
from list with role
"Reporter"
Then
I should see user
"Mary Jane"
in team list
Scenario
:
I
should see edit group
"Owned"
page
When
I visit group
"Owned"
settings page
And
I change group
"Owned"
name to
"new-name"
...
...
@@ -51,127 +43,6 @@ Feature: Groups
Then
I should not see group
"Owned"
avatar
And
I should not see the
"Remove avatar"
button
@javascript
Scenario
:
Add user to group
Given
gitlab user
"Mike"
When
I visit group
"Owned"
members page
When
I select
"Mike"
as
"Reporter"
Then
I should see
"Mike"
in team list as
"Reporter"
@javascript
Scenario
:
Ignore add user to group when is already Owner
Given
gitlab user
"Mike"
When
I visit group
"Owned"
members page
When
I select
"Mike"
as
"Reporter"
Then
I should see
"Mike"
in team list as
"Owner"
@javascript
Scenario
:
Invite user to group
When
I visit group
"Owned"
members page
When
I select
"sjobs@apple.com"
as
"Reporter"
Then
I should see
"sjobs@apple.com"
in team list as invited
"Reporter"
@javascript
Scenario
:
Edit group member permissions
Given
"Mary Jane"
is guest of group
"Owned"
And
I visit group
"Owned"
members page
When
I change the
"Mary Jane"
role to
"Developer"
Then
I should see
"Mary Jane"
as
"Developer"
# Leave
@javascript
Scenario
:
Owner should be able to remove himself from group if he is not the last owner
Given
"Mary Jane"
is owner of group
"Owned"
When
I visit group
"Owned"
members page
Then
I should see user
"John Doe"
in team list
Then
I should see user
"Mary Jane"
in team list
When
I click on the
"Remove User From Group"
button for
"John Doe"
And
I visit group
"Owned"
members page
Then
I should not see user
"John Doe"
in team list
Then
I should see user
"Mary Jane"
in team list
@javascript
Scenario
:
Owner should not be able to remove himself from group if he is the last owner
Given
"Mary Jane"
is guest of group
"Owned"
When
I visit group
"Owned"
members page
Then
I should see user
"John Doe"
in team list
Then
I should see user
"Mary Jane"
in team list
Then
I should not see the
"Remove User From Group"
button for
"John Doe"
@javascript
Scenario
:
Guest should be able to remove himself from group
Given
"Mary Jane"
is guest of group
"Guest"
When
I visit group
"Guest"
members page
Then
I should see user
"John Doe"
in team list
Then
I should see user
"Mary Jane"
in team list
When
I click on the
"Remove User From Group"
button for
"John Doe"
When
I visit group
"Guest"
members page
Then
I should not see user
"John Doe"
in team list
Then
I should see user
"Mary Jane"
in team list
@javascript
Scenario
:
Guest should be able to remove himself from group even if he is the only user in the group
When
I visit group
"Guest"
members page
Then
I should see user
"John Doe"
in team list
When
I click on the
"Remove User From Group"
button for
"John Doe"
When
I visit group
"Guest"
members page
Then
I should not see user
"John Doe"
in team list
# Remove others
Scenario
:
Owner should be able to remove other users from group
Given
"Mary Jane"
is owner of group
"Owned"
When
I visit group
"Owned"
members page
Then
I should see user
"John Doe"
in team list
Then
I should see user
"Mary Jane"
in team list
When
I click on the
"Remove User From Group"
button for
"Mary Jane"
When
I visit group
"Owned"
members page
Then
I should see user
"John Doe"
in team list
Then
I should not see user
"Mary Jane"
in team list
Scenario
:
Guest should not be able to remove other users from group
Given
"Mary Jane"
is guest of group
"Guest"
When
I visit group
"Guest"
members page
Then
I should see user
"John Doe"
in team list
Then
I should see user
"Mary Jane"
in team list
Then
I should not see the
"Remove User From Group"
button for
"Mary Jane"
Scenario
:
Search member by name
Given
"Mary Jane"
is guest of group
"Guest"
And
I visit group
"Guest"
members page
When
I search for 'Mary' member
Then
I should see user
"Mary Jane"
in team list
Then
I should not see user
"John Doe"
in team list
# Group milestones
Scenario
:
I
should see group
"Owned"
milestone index page with no milestones
When
I visit group
"Owned"
page
And
I click on group milestones
Then
I should see group milestones index page has no milestones
Scenario
:
I
should see group
"Owned"
milestone index page with milestones
Given
Group has projects with milestones
When
I visit group
"Owned"
page
And
I click on group milestones
Then
I should see group milestones index page with milestones
Scenario
:
I
should see group
"Owned"
milestone show page
Given
Group has projects with milestones
When
I visit group
"Owned"
page
And
I click on group milestones
And
I click on one group milestone
Then
I should see group milestone with descriptions and expiry date
And
I should see group milestone with all issues and MRs assigned to that milestone
Scenario
:
Create multiple milestones with one form
Given
I visit group
"Owned"
milestones page
And
I click new milestone button
And
I fill milestone name
When
I press create mileston button
Then
milestone in each project should be created
# Group projects in settings
Scenario
:
I
should see all projects in the project list in settings
Given
Group
"Owned"
has archived project
...
...
features/steps/group/members.rb
0 → 100644
View file @
d262daa4
class
Spinach::Features::GroupMembers
<
Spinach
::
FeatureSteps
include
SharedAuthentication
include
SharedPaths
include
SharedGroup
include
SharedUser
include
Select2Helper
step
'I select "Mike" as "Reporter"'
do
user
=
User
.
find_by
(
name:
"Mike"
)
page
.
within
".users-group-form"
do
select2
(
user
.
id
,
from:
"#user_ids"
,
multiple:
true
)
select
"Reporter"
,
from:
"access_level"
end
click_button
"Add users to group"
end
step
'I select "Mike" as "Master"'
do
user
=
User
.
find_by
(
name:
"Mike"
)
page
.
within
".users-group-form"
do
select2
(
user
.
id
,
from:
"#user_ids"
,
multiple:
true
)
select
"Master"
,
from:
"access_level"
end
click_button
"Add users to group"
end
step
'I should see "Mike" in team list as "Reporter"'
do
page
.
within
'.content-list'
do
expect
(
page
).
to
have_content
(
'Mike'
)
expect
(
page
).
to
have_content
(
'Reporter'
)
end
end
step
'I should see "Mike" in team list as "Owner"'
do
page
.
within
'.content-list'
do
expect
(
page
).
to
have_content
(
'Mike'
)
expect
(
page
).
to
have_content
(
'Owner'
)
end
end
step
'I select "sjobs@apple.com" as "Reporter"'
do
page
.
within
".users-group-form"
do
select2
(
"sjobs@apple.com"
,
from:
"#user_ids"
,
multiple:
true
)
select
"Reporter"
,
from:
"access_level"
end
click_button
"Add users to group"
end
step
'I should see "sjobs@apple.com" in team list as invited "Reporter"'
do
page
.
within
'.content-list'
do
expect
(
page
).
to
have_content
(
'sjobs@apple.com'
)
expect
(
page
).
to
have_content
(
'invited'
)
expect
(
page
).
to
have_content
(
'Reporter'
)
end
end
step
'I select user "Mary Jane" from list with role "Reporter"'
do
user
=
User
.
find_by
(
name:
"Mary Jane"
)
||
create
(
:user
,
name:
"Mary Jane"
)
page
.
within
".users-group-form"
do
select2
(
user
.
id
,
from:
"#user_ids"
,
multiple:
true
)
select
"Reporter"
,
from:
"access_level"
end
click_button
"Add users to group"
end
step
'I should see user "John Doe" in team list'
do
expect
(
group_members_list
).
to
have_content
(
"John Doe"
)
end
step
'I should not see user "John Doe" in team list'
do
expect
(
group_members_list
).
not_to
have_content
(
"John Doe"
)
end
step
'I should see user "Mary Jane" in team list'
do
expect
(
group_members_list
).
to
have_content
(
"Mary Jane"
)
end
step
'I should not see user "Mary Jane" in team list'
do
expect
(
group_members_list
).
not_to
have_content
(
"Mary Jane"
)
end
step
'I click on the "Remove User From Group" button for "John Doe"'
do
find
(
:css
,
'li'
,
text:
"John Doe"
).
find
(
:css
,
'a.btn-remove'
).
click
# poltergeist always confirms popups.
end
step
'I click on the "Remove User From Group" button for "Mary Jane"'
do
find
(
:css
,
'li'
,
text:
"Mary Jane"
).
find
(
:css
,
'a.btn-remove'
).
click
# poltergeist always confirms popups.
end
step
'I should not see the "Remove User From Group" button for "John Doe"'
do
expect
(
find
(
:css
,
'li'
,
text:
"John Doe"
)).
not_to
have_selector
(
:css
,
'a.btn-remove'
)
# poltergeist always confirms popups.
end
step
'I should not see the "Remove User From Group" button for "Mary Jane"'
do
expect
(
find
(
:css
,
'li'
,
text:
"Mary Jane"
)).
not_to
have_selector
(
:css
,
'a.btn-remove'
)
# poltergeist always confirms popups.
end
step
'I search for \'Mary\' member'
do
page
.
within
'.member-search-form'
do
fill_in
'search'
,
with:
'Mary'
click_button
'Search'
end
end
step
'I change the "Mary Jane" role to "Developer"'
do
member
=
mary_jane_member
page
.
within
"#group_member_
#{
member
.
id
}
"
do
find
(
".js-toggle-button"
).
click
page
.
within
"#edit_group_member_
#{
member
.
id
}
"
do
select
'Developer'
,
from:
'group_member_access_level'
click_on
'Save'
end
end
end
step
'I should see "Mary Jane" as "Developer"'
do
member
=
mary_jane_member
page
.
within
"#group_member_
#{
member
.
id
}
"
do
page
.
within
'.member-access-level'
do
expect
(
page
).
to
have_content
"Developer"
end
end
end
private
def
mary_jane_member
user
=
User
.
find_by
(
name:
"Mary Jane"
)
owned_group
.
members
.
find_by
(
user_id:
user
.
id
)
end
def
group_members_list
find
(
".panel .content-list"
)
end
end
features/steps/group/milestones.rb
0 → 100644
View file @
d262daa4
class
Spinach::Features::GroupMilestones
<
Spinach
::
FeatureSteps
include
SharedAuthentication
include
SharedPaths
include
SharedGroup
include
SharedUser
step
'I click on group milestones'
do
click_link
'Milestones'
end
step
'I should see group milestones index page has no milestones'
do
expect
(
page
).
to
have_content
(
'No milestones to show'
)
end
step
'Group has projects with milestones'
do
group_milestone
end
step
'I should see group milestones index page with milestones'
do
expect
(
page
).
to
have_content
(
'Version 7.2'
)
expect
(
page
).
to
have_content
(
'GL-113'
)
expect
(
page
).
to
have_link
(
'3 Issues'
,
href:
issues_group_path
(
"owned"
,
milestone_title:
"Version 7.2"
))
expect
(
page
).
to
have_link
(
'0 Merge Requests'
,
href:
merge_requests_group_path
(
"owned"
,
milestone_title:
"GL-113"
))
end
step
'I click on one group milestone'
do
click_link
'GL-113'
end
step
'I should see group milestone with descriptions and expiry date'
do
expect
(
page
).
to
have_content
(
'expires at Aug 20, 2114'
)
end
step
'I should see group milestone with all issues and MRs assigned to that milestone'
do
expect
(
page
).
to
have_content
(
'Milestone GL-113'
)
expect
(
page
).
to
have_content
(
'Progress: 0 closed – 3 open'
)
issue
=
Milestone
.
find_by
(
name:
'GL-113'
).
issues
.
first
expect
(
page
).
to
have_link
(
issue
.
title
,
href:
namespace_project_issue_path
(
issue
.
project
.
namespace
,
issue
.
project
,
issue
))
end
step
'I fill milestone name'
do
fill_in
'milestone_title'
,
with:
'v2.9.0'
end
step
'I click new milestone button'
do
click_link
"New Milestone"
end
step
'I press create mileston button'
do
click_button
"Create Milestone"
end
step
'milestone in each project should be created'
do
group
=
Group
.
find_by
(
name:
'Owned'
)
expect
(
page
).
to
have_content
"Milestone v2.9.0"
expect
(
group
.
projects
).
to
be_present
group
.
projects
.
each
do
|
project
|
expect
(
page
).
to
have_content
project
.
name
end
end
private
def
group_milestone
group
=
owned_group
%w(gitlabhq gitlab-ci cookbook-gitlab)
.
each
do
|
path
|
project
=
create
:project
,
path:
path
,
group:
group
milestone
=
create
:milestone
,
title:
"Version 7.2"
,
project:
project
create
:issue
,
project:
project
,
assignee:
current_user
,
author:
current_user
,
milestone:
milestone
milestone
=
create
:milestone
,
title:
"GL-113"
,
project:
project
,
due_date:
'2114-08-20'
,
description:
'Lorem Ipsum is simply dummy text'
create
:issue
,
project:
project
,
assignee:
current_user
,
author:
current_user
,
milestone:
milestone
end
end
end
features/steps/groups.rb
View file @
d262daa4
...
...
@@ -3,16 +3,11 @@ class Spinach::Features::Groups < Spinach::FeatureSteps
include
SharedPaths
include
SharedGroup
include
SharedUser
include
Select2Helper
step
'I should see back to dashboard button'
do
expect
(
page
).
to
have_content
'Go to dashboard'
end
step
'gitlab user "Mike"'
do
create
(
:user
,
name:
"Mike"
)
end
step
'I should see group "Owned"'
do
expect
(
page
).
to
have_content
'@owned'
end
...
...
@@ -33,59 +28,6 @@ class Spinach::Features::Groups < Spinach::FeatureSteps
expect
(
page
).
to
have_content
'Public-project'
end
step
'I select "Mike" as "Reporter"'
do
user
=
User
.
find_by
(
name:
"Mike"
)
page
.
within
".users-group-form"
do
select2
(
user
.
id
,
from:
"#user_ids"
,
multiple:
true
)
select
"Reporter"
,
from:
"access_level"
end
click_button
"Add users to group"
end
step
'I select "Mike" as "Master"'
do
user
=
User
.
find_by
(
name:
"Mike"
)
page
.
within
".users-group-form"
do
select2
(
user
.
id
,
from:
"#user_ids"
,
multiple:
true
)
select
"Master"
,
from:
"access_level"
end
click_button
"Add users to group"
end
step
'I should see "Mike" in team list as "Reporter"'
do
page
.
within
'.content-list'
do
expect
(
page
).
to
have_content
(
'Mike'
)
expect
(
page
).
to
have_content
(
'Reporter'
)
end
end
step
'I should see "Mike" in team list as "Owner"'
do
page
.
within
'.content-list'
do
expect
(
page
).
to
have_content
(
'Mike'
)
expect
(
page
).
to
have_content
(
'Owner'
)
end
end
step
'I select "sjobs@apple.com" as "Reporter"'
do
page
.
within
".users-group-form"
do
select2
(
"sjobs@apple.com"
,
from:
"#user_ids"
,
multiple:
true
)
select
"Reporter"
,
from:
"access_level"
end
click_button
"Add users to group"
end
step
'I should see "sjobs@apple.com" in team list as invited "Reporter"'
do
page
.
within
'.content-list'
do
expect
(
page
).
to
have_content
(
'sjobs@apple.com'
)
expect
(
page
).
to
have_content
(
'invited'
)
expect
(
page
).
to
have_content
(
'Reporter'
)
end
end
step
'I should see group "Owned" projects list'
do
owned_group
.
projects
.
each
do
|
project
|
expect
(
page
).
to
have_link
project
.
name
...
...
@@ -108,33 +50,6 @@ class Spinach::Features::Groups < Spinach::FeatureSteps
end
end
step
'I select user "Mary Jane" from list with role "Reporter"'
do
user
=
User
.
find_by
(
name:
"Mary Jane"
)
||
create
(
:user
,
name:
"Mary Jane"
)
page
.
within
".users-group-form"
do
select2
(
user
.
id
,
from:
"#user_ids"
,
multiple:
true
)
select
"Reporter"
,
from:
"access_level"
end
click_button
"Add users to group"
end
step
'I should see user "John Doe" in team list'
do
expect
(
group_members_list
).
to
have_content
(
"John Doe"
)
end
step
'I should not see user "John Doe" in team list'
do
expect
(
group_members_list
).
not_to
have_content
(
"John Doe"
)
end
step
'I should see user "Mary Jane" in team list'
do
expect
(
group_members_list
).
to
have_content
(
"Mary Jane"
)
end
step
'I should not see user "Mary Jane" in team list'
do
expect
(
group_members_list
).
not_to
have_content
(
"Mary Jane"
)
end
step
'project from group "Owned" has issues assigned to me'
do
create
:issue
,
project:
project
,
...
...
@@ -196,67 +111,6 @@ class Spinach::Features::Groups < Spinach::FeatureSteps
expect
(
page
).
not_to
have_link
(
"Remove avatar"
)
end
step
'I click on the "Remove User From Group" button for "John Doe"'
do
find
(
:css
,
'li'
,
text:
"John Doe"
).
find
(
:css
,
'a.btn-remove'
).
click
# poltergeist always confirms popups.
end
step
'I click on the "Remove User From Group" button for "Mary Jane"'
do
find
(
:css
,
'li'
,
text:
"Mary Jane"
).
find
(
:css
,
'a.btn-remove'
).
click
# poltergeist always confirms popups.
end
step
'I should not see the "Remove User From Group" button for "John Doe"'
do
expect
(
find
(
:css
,
'li'
,
text:
"John Doe"
)).
not_to
have_selector
(
:css
,
'a.btn-remove'
)
# poltergeist always confirms popups.
end
step
'I should not see the "Remove User From Group" button for "Mary Jane"'
do
expect
(
find
(
:css
,
'li'
,
text:
"Mary Jane"
)).
not_to
have_selector
(
:css
,
'a.btn-remove'
)
# poltergeist always confirms popups.
end
step
'I search for \'Mary\' member'
do
page
.
within
'.member-search-form'
do
fill_in
'search'
,
with:
'Mary'
click_button
'Search'
end
end
step
'I click on group milestones'
do
click_link
'Milestones'
end
step
'I should see group milestones index page has no milestones'
do
expect
(
page
).
to
have_content
(
'No milestones to show'
)
end
step
'Group has projects with milestones'
do
group_milestone
end
step
'I should see group milestones index page with milestones'
do
expect
(
page
).
to
have_content
(
'Version 7.2'
)
expect
(
page
).
to
have_content
(
'GL-113'
)
expect
(
page
).
to
have_link
(
'2 Issues'
,
href:
issues_group_path
(
"owned"
,
milestone_title:
"Version 7.2"
))
expect
(
page
).
to
have_link
(
'3 Merge Requests'
,
href:
merge_requests_group_path
(
"owned"
,
milestone_title:
"GL-113"
))
end
step
'I click on one group milestone'
do
click_link
'GL-113'
end
step
'I should see group milestone with descriptions and expiry date'
do
expect
(
page
).
to
have_content
(
'expires at Aug 20, 2114'
)
end
step
'I should see group milestone with all issues and MRs assigned to that milestone'
do
expect
(
page
).
to
have_content
(
'Milestone GL-113'
)
expect
(
page
).
to
have_content
(
'Progress: 0 closed – 4 open'
)
expect
(
page
).
to
have_link
(
@issue1
.
title
,
href:
namespace_project_issue_path
(
@project1
.
namespace
,
@project1
,
@issue1
))
expect
(
page
).
to
have_link
(
@mr3
.
title
,
href:
namespace_project_merge_request_path
(
@project3
.
namespace
,
@project3
,
@mr3
))
end
step
'Group "Owned" has archived project'
do
group
=
Group
.
find_by
(
name:
'Owned'
)
create
(
:project
,
namespace:
group
,
archived:
true
,
path:
"archived-project"
)
...
...
@@ -266,60 +120,7 @@ class Spinach::Features::Groups < Spinach::FeatureSteps
expect
(
page
).
to
have_xpath
(
"//span[@class='label label-warning']"
,
text:
'archived'
)
end
step
'I fill milestone name'
do
fill_in
'milestone_title'
,
with:
'v2.9.0'
end
step
'I click new milestone button'
do
click_link
"New Milestone"
end
step
'I press create mileston button'
do
click_button
"Create Milestone"
end
step
'milestone in each project should be created'
do
group
=
Group
.
find_by
(
name:
'Owned'
)
expect
(
page
).
to
have_content
"Milestone v2.9.0"
expect
(
group
.
projects
).
to
be_present
group
.
projects
.
each
do
|
project
|
expect
(
page
).
to
have_content
project
.
name
end
end
step
'I change the "Mary Jane" role to "Developer"'
do
member
=
mary_jane_member
page
.
within
"#group_member_
#{
member
.
id
}
"
do
find
(
".js-toggle-button"
).
click
page
.
within
"#edit_group_member_
#{
member
.
id
}
"
do
select
'Developer'
,
from:
'group_member_access_level'
click_on
'Save'
end
end
end
step
'I should see "Mary Jane" as "Developer"'
do
member
=
mary_jane_member
page
.
within
"#group_member_
#{
member
.
id
}
"
do
page
.
within
'.member-access-level'
do
expect
(
page
).
to
have_content
"Developer"
end
end
end
protected
def
owned_group
@owned_group
||=
Group
.
find_by
(
name:
"Owned"
)
end
def
mary_jane_member
user
=
User
.
find_by
(
name:
"Mary Jane"
)
owned_group
.
members
.
find_by
(
user_id:
user
.
id
)
end
private
def
assigned_to_me
(
key
)
project
.
send
(
key
).
where
(
assignee_id:
current_user
.
id
)
...
...
@@ -328,29 +129,4 @@ class Spinach::Features::Groups < Spinach::FeatureSteps
def
project
owned_group
.
projects
.
first
end
def
group_milestone
group
=
owned_group
%w(gitlabhq gitlab-ci cookbook-gitlab)
.
each
do
|
path
|
project
=
create
:project
,
path:
path
,
group:
group
milestone
=
create
:milestone
,
title:
"Version 7.2"
,
project:
project
create
:issue
,
project:
project
,
assignee:
current_user
,
author:
current_user
,
milestone:
milestone
milestone
=
create
:milestone
,
title:
"GL-113"
,
project:
project
create
:issue
,
project:
project
,
assignee:
current_user
,
author:
current_user
,
milestone:
milestone
end
end
def
group_members_list
find
(
".panel .content-list"
)
end
end
features/steps/shared/group.rb
View file @
d262daa4
...
...
@@ -41,4 +41,8 @@ module SharedGroup
project
.
team
<<
[
user
,
:master
]
@project_count
+=
1
end
def
owned_group
@owned_group
||=
Group
.
find_by
(
name:
"Owned"
)
end
end
features/steps/shared/user.rb
View file @
d262daa4
...
...
@@ -9,6 +9,10 @@ module SharedUser
user_exists
(
"Mary Jane"
,
{
username:
"mary_jane"
})
end
step
'gitlab user "Mike"'
do
create
(
:user
,
name:
"Mike"
)
end
protected
def
user_exists
(
name
,
options
=
{})
...
...
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