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
Boxiang Sun
gitlab-ce
Commits
a68b6315
Commit
a68b6315
authored
Oct 17, 2018
by
Aleksandr Soborov
Committed by
Rémy Coutable
Oct 17, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Extend Create New Merge Request test to also add a label
parent
d32ac958
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
150 additions
and
12 deletions
+150
-12
app/views/layouts/nav/sidebar/_project.html.haml
app/views/layouts/nav/sidebar/_project.html.haml
+2
-2
app/views/projects/labels/index.html.haml
app/views/projects/labels/index.html.haml
+1
-1
app/views/shared/issuable/_label_dropdown.html.haml
app/views/shared/issuable/_label_dropdown.html.haml
+1
-1
app/views/shared/issuable/_sidebar.html.haml
app/views/shared/issuable/_sidebar.html.haml
+1
-1
app/views/shared/labels/_form.html.haml
app/views/shared/labels/_form.html.haml
+4
-4
qa/qa.rb
qa/qa.rb
+6
-0
qa/qa/factory/resource/label.rb
qa/qa/factory/resource/label.rb
+39
-0
qa/qa/factory/resource/merge_request.rb
qa/qa/factory/resource/merge_request.rb
+4
-0
qa/qa/page/label/index.rb
qa/qa/page/label/index.rb
+15
-0
qa/qa/page/label/new.rb
qa/qa/page/label/new.rb
+30
-0
qa/qa/page/merge_request/new.rb
qa/qa/page/merge_request/new.rb
+10
-0
qa/qa/page/merge_request/show.rb
qa/qa/page/merge_request/show.rb
+11
-0
qa/qa/page/project/menu.rb
qa/qa/page/project/menu.rb
+13
-0
qa/qa/specs/features/browser_ui/3_create/merge_request/create_merge_request_spec.rb
...er_ui/3_create/merge_request/create_merge_request_spec.rb
+13
-3
No files found.
app/views/layouts/nav/sidebar/_project.html.haml
View file @
a68b6315
...
@@ -86,7 +86,7 @@
...
@@ -86,7 +86,7 @@
-
if
project_nav_tab?
:issues
-
if
project_nav_tab?
:issues
=
nav_link
(
controller:
@project
.
issues_enabled?
?
[
:issues
,
:labels
,
:milestones
,
:boards
]
:
:issues
)
do
=
nav_link
(
controller:
@project
.
issues_enabled?
?
[
:issues
,
:labels
,
:milestones
,
:boards
]
:
:issues
)
do
=
link_to
project_issues_path
(
@project
),
class:
'shortcuts-issues'
do
=
link_to
project_issues_path
(
@project
),
class:
'shortcuts-issues
qa-issues-item
'
do
.nav-icon-container
.nav-icon-container
=
sprite_icon
(
'issues'
)
=
sprite_icon
(
'issues'
)
%span
.nav-item-name
%span
.nav-item-name
...
@@ -115,7 +115,7 @@
...
@@ -115,7 +115,7 @@
=
boards_link_text
=
boards_link_text
=
nav_link
(
controller: :labels
)
do
=
nav_link
(
controller: :labels
)
do
=
link_to
project_labels_path
(
@project
),
title:
_
(
'Labels'
)
do
=
link_to
project_labels_path
(
@project
),
title:
_
(
'Labels'
)
,
class:
'qa-labels-link'
do
%span
%span
=
_
(
'Labels'
)
=
_
(
'Labels'
)
...
...
app/views/projects/labels/index.html.haml
View file @
a68b6315
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
-
if
can_admin_label
-
if
can_admin_label
-
content_for
(
:header_content
)
do
-
content_for
(
:header_content
)
do
.nav-controls
.nav-controls
=
link_to
_
(
'New label'
),
new_project_label_path
(
@project
),
class:
"btn btn-success"
=
link_to
_
(
'New label'
),
new_project_label_path
(
@project
),
class:
"btn btn-success
qa-label-create-new
"
-
if
labels_or_filters
-
if
labels_or_filters
#promote-label-modal
#promote-label-modal
...
...
app/views/shared/issuable/_label_dropdown.html.haml
View file @
a68b6315
...
@@ -20,7 +20,7 @@
...
@@ -20,7 +20,7 @@
=
hidden_field_tag
data_options
[
:field_name
],
use_id
?
label
.
try
(
:id
)
:
label
.
try
(
:title
),
id:
nil
=
hidden_field_tag
data_options
[
:field_name
],
use_id
?
label
.
try
(
:id
)
:
label
.
try
(
:title
),
id:
nil
.dropdown
.dropdown
%button
.dropdown-menu-toggle.js-label-select.js-multiselect
{
class:
classes
.
join
(
' '
),
type:
"button"
,
data:
dropdown_data
}
%button
.dropdown-menu-toggle.js-label-select.js-multiselect
.qa-issuable-label
{
class:
classes
.
join
(
' '
),
type:
"button"
,
data:
dropdown_data
}
-
apply_is_default_styles
=
(
selected
.
nil?
||
selected
.
empty?
)
&&
!
no_default_styles
-
apply_is_default_styles
=
(
selected
.
nil?
||
selected
.
empty?
)
&&
!
no_default_styles
%span
.dropdown-toggle-text
{
class:
(
"is-default"
if
apply_is_default_styles
)
}
%span
.dropdown-toggle-text
{
class:
(
"is-default"
if
apply_is_default_styles
)
}
=
multi_label_name
(
selected
,
label_name
)
=
multi_label_name
(
selected
,
label_name
)
...
...
app/views/shared/issuable/_sidebar.html.haml
View file @
a68b6315
...
@@ -98,7 +98,7 @@
...
@@ -98,7 +98,7 @@
=
icon
(
'spinner spin'
,
class:
'hidden block-loading'
,
'aria-hidden'
:
'true'
)
=
icon
(
'spinner spin'
,
class:
'hidden block-loading'
,
'aria-hidden'
:
'true'
)
-
if
can_edit_issuable
-
if
can_edit_issuable
=
link_to
_
(
'Edit'
),
'#'
,
class:
'js-sidebar-dropdown-toggle edit-link float-right'
=
link_to
_
(
'Edit'
),
'#'
,
class:
'js-sidebar-dropdown-toggle edit-link float-right'
.value.issuable-show-labels.dont-hide.hide-collapsed
{
class:
(
"has-labels"
if
selected_labels
.
any?
)
}
.value.issuable-show-labels.dont-hide.hide-collapsed
.qa-labels-block
{
class:
(
"has-labels"
if
selected_labels
.
any?
)
}
-
if
selected_labels
.
any?
-
if
selected_labels
.
any?
-
selected_labels
.
each
do
|
label
|
-
selected_labels
.
each
do
|
label
|
=
link_to_label
(
label
,
subject:
issuable
.
project
,
type:
issuable
.
to_ability_name
)
=
link_to_label
(
label
,
subject:
issuable
.
project
,
type:
issuable
.
to_ability_name
)
...
...
app/views/shared/labels/_form.html.haml
View file @
a68b6315
...
@@ -4,18 +4,18 @@
...
@@ -4,18 +4,18 @@
.form-group.row
.form-group.row
=
f
.
label
:title
,
class:
'col-form-label col-sm-2'
=
f
.
label
:title
,
class:
'col-form-label col-sm-2'
.col-sm-10
.col-sm-10
=
f
.
text_field
:title
,
class:
"form-control"
,
required:
true
,
autofocus:
true
=
f
.
text_field
:title
,
class:
"form-control
qa-label-title
"
,
required:
true
,
autofocus:
true
.form-group.row
.form-group.row
=
f
.
label
:description
,
class:
'col-form-label col-sm-2'
=
f
.
label
:description
,
class:
'col-form-label col-sm-2'
.col-sm-10
.col-sm-10
=
f
.
text_field
:description
,
class:
"form-control js-quick-submit"
=
f
.
text_field
:description
,
class:
"form-control js-quick-submit
qa-label-description
"
.form-group.row
.form-group.row
=
f
.
label
:color
,
"Background color"
,
class:
'col-form-label col-sm-2'
=
f
.
label
:color
,
"Background color"
,
class:
'col-form-label col-sm-2'
.col-sm-10
.col-sm-10
.input-group
.input-group
.input-group-prepend
.input-group-prepend
.input-group-text.label-color-preview
.input-group-text.label-color-preview
=
f
.
text_field
:color
,
class:
"form-control"
=
f
.
text_field
:color
,
class:
"form-control
qa-label-color
"
.form-text.text-muted
.form-text.text-muted
Choose any color.
Choose any color.
%br
%br
...
@@ -30,5 +30,5 @@
...
@@ -30,5 +30,5 @@
-
if
@label
.
persisted?
-
if
@label
.
persisted?
=
f
.
submit
'Save changes'
,
class:
'btn btn-success js-save-button'
=
f
.
submit
'Save changes'
,
class:
'btn btn-success js-save-button'
-
else
-
else
=
f
.
submit
'Create label'
,
class:
'btn btn-success js-save-button'
=
f
.
submit
'Create label'
,
class:
'btn btn-success js-save-button
qa-label-create-button
'
=
link_to
'Cancel'
,
back_path
,
class:
'btn btn-cancel'
=
link_to
'Cancel'
,
back_path
,
class:
'btn btn-cancel'
qa/qa.rb
View file @
a68b6315
...
@@ -45,6 +45,7 @@ module QA
...
@@ -45,6 +45,7 @@ module QA
autoload
:Group
,
'qa/factory/resource/group'
autoload
:Group
,
'qa/factory/resource/group'
autoload
:Issue
,
'qa/factory/resource/issue'
autoload
:Issue
,
'qa/factory/resource/issue'
autoload
:Project
,
'qa/factory/resource/project'
autoload
:Project
,
'qa/factory/resource/project'
autoload
:Label
,
'qa/factory/resource/label'
autoload
:MergeRequest
,
'qa/factory/resource/merge_request'
autoload
:MergeRequest
,
'qa/factory/resource/merge_request'
autoload
:ProjectImportedFromGithub
,
'qa/factory/resource/project_imported_from_github'
autoload
:ProjectImportedFromGithub
,
'qa/factory/resource/project_imported_from_github'
autoload
:MergeRequestFromFork
,
'qa/factory/resource/merge_request_from_fork'
autoload
:MergeRequestFromFork
,
'qa/factory/resource/merge_request_from_fork'
...
@@ -240,6 +241,11 @@ module QA
...
@@ -240,6 +241,11 @@ module QA
autoload
:Banner
,
'qa/page/layout/banner'
autoload
:Banner
,
'qa/page/layout/banner'
end
end
module
Label
autoload
:New
,
'qa/page/label/new'
autoload
:Index
,
'qa/page/label/index'
end
module
MergeRequest
module
MergeRequest
autoload
:New
,
'qa/page/merge_request/new'
autoload
:New
,
'qa/page/merge_request/new'
autoload
:Show
,
'qa/page/merge_request/show'
autoload
:Show
,
'qa/page/merge_request/show'
...
...
qa/qa/factory/resource/label.rb
0 → 100644
View file @
a68b6315
require
'securerandom'
module
QA
module
Factory
module
Resource
class
Label
<
Factory
::
Base
attr_accessor
:title
,
:description
,
:color
product
(
:title
)
{
|
factory
|
factory
.
title
}
dependency
Factory
::
Resource
::
Project
,
as: :project
do
|
project
|
project
.
name
=
'project-with-label'
end
def
initialize
@title
=
"qa-test-
#{
SecureRandom
.
hex
(
8
)
}
"
@description
=
'This is a test label'
@color
=
'#0033CC'
end
def
fabricate!
project
.
visit!
Page
::
Project
::
Menu
.
act
{
go_to_labels
}
Page
::
Label
::
Index
.
act
{
go_to_new_label
}
Page
::
Label
::
New
.
perform
do
|
page
|
page
.
fill_title
(
@title
)
page
.
fill_description
(
@description
)
page
.
fill_color
(
@color
)
page
.
create_label
end
end
end
end
end
end
qa/qa/factory/resource/merge_request.rb
View file @
a68b6315
...
@@ -56,6 +56,10 @@ module QA
...
@@ -56,6 +56,10 @@ module QA
page
.
fill_title
(
@title
)
page
.
fill_title
(
@title
)
page
.
fill_description
(
@description
)
page
.
fill_description
(
@description
)
page
.
choose_milestone
(
@milestone
)
if
@milestone
page
.
choose_milestone
(
@milestone
)
if
@milestone
labels
.
each
do
|
label
|
page
.
select_label
(
label
)
end
page
.
create_merge_request
page
.
create_merge_request
end
end
end
end
...
...
qa/qa/page/label/index.rb
0 → 100644
View file @
a68b6315
module
QA
module
Page
module
Label
class
Index
<
Page
::
Base
view
'app/views/projects/labels/index.html.haml'
do
element
:label_create_new
end
def
go_to_new_label
click_element
:label_create_new
end
end
end
end
end
qa/qa/page/label/new.rb
0 → 100644
View file @
a68b6315
module
QA
module
Page
module
Label
class
New
<
Page
::
Base
view
'app/views/shared/labels/_form.html.haml'
do
element
:label_title
element
:label_description
element
:label_color
element
:label_create_button
end
def
create_label
click_element
:label_create_button
end
def
fill_title
(
title
)
fill_element
:label_title
,
title
end
def
fill_description
(
description
)
fill_element
:label_description
,
description
end
def
fill_color
(
color
)
fill_element
:label_color
,
color
end
end
end
end
end
qa/qa/page/merge_request/new.rb
View file @
a68b6315
...
@@ -22,6 +22,10 @@ module QA
...
@@ -22,6 +22,10 @@ module QA
element
:issuable_dropdown_menu_milestone
element
:issuable_dropdown_menu_milestone
end
end
view
'app/views/shared/issuable/_label_dropdown.html.haml'
do
element
:issuable_label
end
def
create_merge_request
def
create_merge_request
click_element
:issuable_create_button
click_element
:issuable_create_button
end
end
...
@@ -40,6 +44,12 @@ module QA
...
@@ -40,6 +44,12 @@ module QA
click_on
milestone
.
title
click_on
milestone
.
title
end
end
end
end
def
select_label
(
label
)
click_element
:issuable_label
click_link
label
.
title
end
end
end
end
end
end
end
...
...
qa/qa/page/merge_request/show.rb
View file @
a68b6315
...
@@ -23,6 +23,10 @@ module QA
...
@@ -23,6 +23,10 @@ module QA
element
:squash_checkbox
element
:squash_checkbox
end
end
view
'app/views/shared/issuable/_sidebar.html.haml'
do
element
:labels_block
end
def
fast_forward_possible?
def
fast_forward_possible?
!
has_text?
(
'Fast-forward merge is not possible'
)
!
has_text?
(
'Fast-forward merge is not possible'
)
end
end
...
@@ -64,6 +68,13 @@ module QA
...
@@ -64,6 +68,13 @@ module QA
end
end
end
end
def
has_label?
(
label
)
page
.
within
(
element_selector_css
(
:labels_block
))
do
element
=
find
(
'span'
,
text:
label
)
!
element
.
nil?
end
end
def
merge!
def
merge!
# The merge button is disabled on load
# The merge button is disabled on load
wait
do
wait
do
...
...
qa/qa/page/project/menu.rb
View file @
a68b6315
...
@@ -22,6 +22,7 @@ module QA
...
@@ -22,6 +22,7 @@ module QA
element
:activity_link
,
"title: _('Activity')"
# rubocop:disable QA/ElementWithPattern
element
:activity_link
,
"title: _('Activity')"
# rubocop:disable QA/ElementWithPattern
element
:wiki_link_text
,
"Wiki"
# rubocop:disable QA/ElementWithPattern
element
:wiki_link_text
,
"Wiki"
# rubocop:disable QA/ElementWithPattern
element
:milestones_link
element
:milestones_link
element
:labels_link
end
end
view
'app/assets/javascripts/fly_out_nav.js'
do
view
'app/assets/javascripts/fly_out_nav.js'
do
...
@@ -104,8 +105,20 @@ module QA
...
@@ -104,8 +105,20 @@ module QA
end
end
end
end
def
go_to_labels
hover_issues
{
click_element
:labels_link
}
end
private
private
def
hover_issues
within_sidebar
do
find_element
(
:issues_item
).
hover
yield
end
end
def
hover_settings
def
hover_settings
within_sidebar
do
within_sidebar
do
find
(
'.qa-settings-item'
).
hover
find
(
'.qa-settings-item'
).
hover
...
...
qa/qa/specs/features/browser_ui/3_create/merge_request/create_merge_request_spec.rb
View file @
a68b6315
...
@@ -16,16 +16,26 @@ module QA
...
@@ -16,16 +16,26 @@ module QA
milestone
.
project
=
current_project
milestone
.
project
=
current_project
end
end
new_label
=
Factory
::
Resource
::
Label
.
fabricate!
do
|
label
|
label
.
project
=
current_project
label
.
title
=
'qa-mr-test-label'
label
.
description
=
'Merge Request label'
end
Factory
::
Resource
::
MergeRequest
.
fabricate!
do
|
merge_request
|
Factory
::
Resource
::
MergeRequest
.
fabricate!
do
|
merge_request
|
merge_request
.
title
=
'This is a merge request with a milestone'
merge_request
.
title
=
'This is a merge request with a milestone'
merge_request
.
description
=
'Great feature with milestone'
merge_request
.
description
=
'Great feature with milestone'
merge_request
.
project
=
current_project
merge_request
.
project
=
current_project
merge_request
.
milestone
=
current_milestone
merge_request
.
milestone
=
current_milestone
merge_request
.
labels
.
push
(
new_label
)
end
end
expect
(
page
).
to
have_content
(
'This is a merge request with a milestone'
)
Page
::
MergeRequest
::
Show
.
perform
do
|
merge_request
|
expect
(
page
).
to
have_content
(
'Great feature with milestone'
)
expect
(
merge_request
).
to
have_content
(
'This is a merge request with a milestone'
)
expect
(
page
).
to
have_content
(
/Opened [\w\s]+ ago/
)
expect
(
merge_request
).
to
have_content
(
'Great feature with milestone'
)
expect
(
merge_request
).
to
have_content
(
/Opened [\w\s]+ ago/
)
expect
(
merge_request
).
to
have_label
(
new_label
.
title
)
end
Page
::
Issuable
::
Sidebar
.
perform
do
|
sidebar
|
Page
::
Issuable
::
Sidebar
.
perform
do
|
sidebar
|
expect
(
sidebar
).
to
have_milestone
(
current_milestone
.
title
)
expect
(
sidebar
).
to
have_milestone
(
current_milestone
.
title
)
...
...
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