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 @@
...
@@ -24,7 +24,7 @@
=
form_tag
group_group_members_path
(
@group
),
method: :get
,
class:
'form-inline member-search-form'
do
=
form_tag
group_group_members_path
(
@group
),
method: :get
,
class:
'form-inline member-search-form'
do
.form-group
.form-group
=
search_field_tag
:search
,
params
[
:search
],
{
placeholder:
'Find existing member by name'
,
class:
'form-control'
,
spellcheck:
false
}
=
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"
)
=
icon
(
"search"
)
%ul
.content-list
%ul
.content-list
-
@members
.
each
do
|
member
|
-
@members
.
each
do
|
member
|
...
...
app/views/projects/project_members/_team.html.haml
View file @
d262daa4
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
=
form_tag
namespace_project_project_members_path
(
@project
.
namespace
,
@project
),
method: :get
,
class:
'form-inline member-search-form'
do
=
form_tag
namespace_project_project_members_path
(
@project
.
namespace
,
@project
),
method: :get
,
class:
'form-inline member-search-form'
do
.form-group
.form-group
=
search_field_tag
:search
,
params
[
:search
],
{
placeholder:
'Find existing member by name'
,
class:
'form-control'
,
spellcheck:
false
}
=
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"
)
=
icon
(
"search"
)
%ul
.content-list
%ul
.content-list
-
members
.
each
do
|
project_member
|
-
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
...
@@ -2,7 +2,6 @@ Feature: Groups
Background
:
Background
:
Given
I sign in as
"John Doe"
Given
I sign in as
"John Doe"
And
"John Doe"
is owner of group
"Owned"
And
"John Doe"
is owner of group
"Owned"
And
"John Doe"
is guest of group
"Guest"
Scenario
:
I
should have back to group button
Scenario
:
I
should have back to group button
When
I visit group
"Owned"
page
When
I visit group
"Owned"
page
...
@@ -24,13 +23,6 @@ Feature: Groups
...
@@ -24,13 +23,6 @@ Feature: Groups
When
I visit group
"Owned"
merge requests page
When
I visit group
"Owned"
merge requests page
Then
I should see merge requests from group
"Owned"
assigned to me
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
Scenario
:
I
should see edit group
"Owned"
page
When
I visit group
"Owned"
settings page
When
I visit group
"Owned"
settings page
And
I change group
"Owned"
name to
"new-name"
And
I change group
"Owned"
name to
"new-name"
...
@@ -51,127 +43,6 @@ Feature: Groups
...
@@ -51,127 +43,6 @@ Feature: Groups
Then
I should not see group
"Owned"
avatar
Then
I should not see group
"Owned"
avatar
And
I should not see the
"Remove avatar"
button
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
# Group projects in settings
Scenario
:
I
should see all projects in the project list in settings
Scenario
:
I
should see all projects in the project list in settings
Given
Group
"Owned"
has archived project
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
...
@@ -3,16 +3,11 @@ class Spinach::Features::Groups < Spinach::FeatureSteps
include
SharedPaths
include
SharedPaths
include
SharedGroup
include
SharedGroup
include
SharedUser
include
SharedUser
include
Select2Helper
step
'I should see back to dashboard button'
do
step
'I should see back to dashboard button'
do
expect
(
page
).
to
have_content
'Go to dashboard'
expect
(
page
).
to
have_content
'Go to dashboard'
end
end
step
'gitlab user "Mike"'
do
create
(
:user
,
name:
"Mike"
)
end
step
'I should see group "Owned"'
do
step
'I should see group "Owned"'
do
expect
(
page
).
to
have_content
'@owned'
expect
(
page
).
to
have_content
'@owned'
end
end
...
@@ -33,59 +28,6 @@ class Spinach::Features::Groups < Spinach::FeatureSteps
...
@@ -33,59 +28,6 @@ class Spinach::Features::Groups < Spinach::FeatureSteps
expect
(
page
).
to
have_content
'Public-project'
expect
(
page
).
to
have_content
'Public-project'
end
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
step
'I should see group "Owned" projects list'
do
owned_group
.
projects
.
each
do
|
project
|
owned_group
.
projects
.
each
do
|
project
|
expect
(
page
).
to
have_link
project
.
name
expect
(
page
).
to
have_link
project
.
name
...
@@ -108,33 +50,6 @@ class Spinach::Features::Groups < Spinach::FeatureSteps
...
@@ -108,33 +50,6 @@ class Spinach::Features::Groups < Spinach::FeatureSteps
end
end
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
step
'project from group "Owned" has issues assigned to me'
do
create
:issue
,
create
:issue
,
project:
project
,
project:
project
,
...
@@ -196,67 +111,6 @@ class Spinach::Features::Groups < Spinach::FeatureSteps
...
@@ -196,67 +111,6 @@ class Spinach::Features::Groups < Spinach::FeatureSteps
expect
(
page
).
not_to
have_link
(
"Remove avatar"
)
expect
(
page
).
not_to
have_link
(
"Remove avatar"
)
end
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
step
'Group "Owned" has archived project'
do
group
=
Group
.
find_by
(
name:
'Owned'
)
group
=
Group
.
find_by
(
name:
'Owned'
)
create
(
:project
,
namespace:
group
,
archived:
true
,
path:
"archived-project"
)
create
(
:project
,
namespace:
group
,
archived:
true
,
path:
"archived-project"
)
...
@@ -266,60 +120,7 @@ class Spinach::Features::Groups < Spinach::FeatureSteps
...
@@ -266,60 +120,7 @@ class Spinach::Features::Groups < Spinach::FeatureSteps
expect
(
page
).
to
have_xpath
(
"//span[@class='label label-warning']"
,
text:
'archived'
)
expect
(
page
).
to
have_xpath
(
"//span[@class='label label-warning']"
,
text:
'archived'
)
end
end
step
'I fill milestone name'
do
private
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
def
assigned_to_me
(
key
)
def
assigned_to_me
(
key
)
project
.
send
(
key
).
where
(
assignee_id:
current_user
.
id
)
project
.
send
(
key
).
where
(
assignee_id:
current_user
.
id
)
...
@@ -328,29 +129,4 @@ class Spinach::Features::Groups < Spinach::FeatureSteps
...
@@ -328,29 +129,4 @@ class Spinach::Features::Groups < Spinach::FeatureSteps
def
project
def
project
owned_group
.
projects
.
first
owned_group
.
projects
.
first
end
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
end
features/steps/shared/group.rb
View file @
d262daa4
...
@@ -41,4 +41,8 @@ module SharedGroup
...
@@ -41,4 +41,8 @@ module SharedGroup
project
.
team
<<
[
user
,
:master
]
project
.
team
<<
[
user
,
:master
]
@project_count
+=
1
@project_count
+=
1
end
end
def
owned_group
@owned_group
||=
Group
.
find_by
(
name:
"Owned"
)
end
end
end
features/steps/shared/user.rb
View file @
d262daa4
...
@@ -9,6 +9,10 @@ module SharedUser
...
@@ -9,6 +9,10 @@ module SharedUser
user_exists
(
"Mary Jane"
,
{
username:
"mary_jane"
})
user_exists
(
"Mary Jane"
,
{
username:
"mary_jane"
})
end
end
step
'gitlab user "Mike"'
do
create
(
:user
,
name:
"Mike"
)
end
protected
protected
def
user_exists
(
name
,
options
=
{})
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