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
2580edc2
Commit
2580edc2
authored
May 10, 2021
by
Ezekiel Kigbo
Committed by
Max Woolf
May 10, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Additional feature specs for new VSA features
parent
2c9210d6
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
99 additions
and
57 deletions
+99
-57
ee/spec/features/groups/analytics/cycle_analytics/charts_spec.rb
.../features/groups/analytics/cycle_analytics/charts_spec.rb
+56
-17
ee/spec/features/groups/analytics/cycle_analytics/filters_and_data_spec.rb
...groups/analytics/cycle_analytics/filters_and_data_spec.rb
+8
-0
ee/spec/features/groups/analytics/cycle_analytics/multiple_value_streams_spec.rb
.../analytics/cycle_analytics/multiple_value_streams_spec.rb
+3
-37
locale/gitlab.pot
locale/gitlab.pot
+0
-3
spec/support/helpers/cycle_analytics_helpers.rb
spec/support/helpers/cycle_analytics_helpers.rb
+32
-0
No files found.
ee/spec/features/groups/analytics/cycle_analytics/charts_spec.rb
View file @
2580edc2
...
@@ -22,14 +22,24 @@ RSpec.describe 'Value stream analytics charts', :js do
...
@@ -22,14 +22,24 @@ RSpec.describe 'Value stream analytics charts', :js do
stage
.
find
(
'[data-testid="more-actions-toggle"]'
).
click
stage
.
find
(
'[data-testid="more-actions-toggle"]'
).
click
end
end
before_all
do
group
.
add_owner
(
user
)
end
before
do
before
do
stub_licensed_features
(
cycle_analytics_for_groups:
true
)
stub_licensed_features
(
cycle_analytics_for_groups:
true
)
group
.
add_owner
(
user
)
sign_in
(
user
)
sign_in
(
user
)
end
end
shared_examples
'has all the default stages'
do
it
'has all the default stages in the duration dropdown'
do
toggle_duration_chart_dropdown
expect
(
duration_chart_stages
).
to
eq
(
translated_default_stage_names
+
[
latest_custom_stage_name
])
end
end
context
'Duration chart'
do
context
'Duration chart'
do
duration_stage_selector
=
'.js-dropdown-stages'
duration_stage_selector
=
'.js-dropdown-stages'
stage_nav_selector
=
'.stage-nav'
stage_nav_selector
=
'.stage-nav'
...
@@ -37,7 +47,7 @@ RSpec.describe 'Value stream analytics charts', :js do
...
@@ -37,7 +47,7 @@ RSpec.describe 'Value stream analytics charts', :js do
let
(
:duration_chart_dropdown
)
{
page
.
find
(
duration_stage_selector
)
}
let
(
:duration_chart_dropdown
)
{
page
.
find
(
duration_stage_selector
)
}
let
(
:first_default_stage
)
{
page
.
find
(
'.stage-nav-item-cell'
,
text:
'Issue'
).
ancestor
(
'.stage-nav-item'
)
}
let
(
:first_default_stage
)
{
page
.
find
(
'.stage-nav-item-cell'
,
text:
'Issue'
).
ancestor
(
'.stage-nav-item'
)
}
let
(
:
nav
)
{
page
.
find
(
stage_nav_selector
)
}
let
(
:
custom_value_stream_name
)
{
"New created value stream"
}
let_it_be
(
:translated_default_stage_names
)
do
let_it_be
(
:translated_default_stage_names
)
do
Gitlab
::
Analytics
::
CycleAnalytics
::
DefaultStages
.
names
.
map
do
|
name
|
Gitlab
::
Analytics
::
CycleAnalytics
::
DefaultStages
.
names
.
map
do
|
name
|
...
@@ -54,31 +64,61 @@ RSpec.describe 'Value stream analytics charts', :js do
...
@@ -54,31 +64,61 @@ RSpec.describe 'Value stream analytics charts', :js do
duration_chart_dropdown
.
click
duration_chart_dropdown
.
click
end
end
def
hide_vsa_stage
(
index
=
0
)
page
.
find_button
(
_
(
'Edit'
)).
click
page
.
find
(
"[data-testid='stage-action-hide-
#{
index
}
']"
).
click
page
.
find_button
(
_
(
'Save Value Stream'
)).
click
wait_for_requests
end
def
latest_custom_stage_name
index
=
duration_chart_stages
.
length
"Cool custom stage - name
#{
index
}
"
end
before
do
before
do
stub_feature_flags
(
value_stream_analytics_path_navigation:
false
)
select_group
(
group
)
select_group
(
group
,
stage_table_selector
)
create_custom_value_stream
(
custom_value_stream_name
)
end
end
it
'has all the default stages'
do
it_behaves_like
'has all the default stages'
it
'hidden stages will not appear in the duration chart dropdown'
do
first_stage_name
=
duration_chart_stages
.
first
hide_vsa_stage
toggle_duration_chart_dropdown
toggle_duration_chart_dropdown
expect
(
duration_chart_stages
).
to
eq
(
translated_default_stage_names
)
expect
(
duration_chart_stages
).
not_to
include
(
first_stage_name
)
end
end
context
'hidden stage'
do
context
'With the path navigation feature flag disabled'
do
let
(
:nav
)
{
page
.
find
(
stage_nav_selector
)
}
before
do
before
do
toggle_more_options
(
first_default_stage
)
stub_feature_flags
(
value_stream_analytics_path_navigation:
false
)
select_group
(
group
,
stage_table_selector
)
end
click_button
(
_
(
'Hide stage'
))
it_behaves_like
'has all the default stages'
# wait for the stage list to laod
context
'hidden stage'
do
expect
(
nav
).
to
have_content
(
s_
(
'CycleAnalyticsStage|Plan'
))
before
do
end
toggle_more_options
(
first_default_stage
)
click_button
(
_
(
'Hide stage'
))
end
it
'will not appear in the duration chart dropdown'
do
# wait for the stage list to laod
expect
(
nav
).
to
have_content
(
s_
(
'CycleAnalyticsStage|Plan'
))
it
'will not appear in the duration chart dropdown'
do
toggle_duration_chart_dropdown
toggle_duration_chart_dropdown
expect
(
duration_chart_stages
).
not_to
include
(
s_
(
'CycleAnalyticsStage|Issue'
))
expect
(
duration_chart_stages
).
not_to
include
(
s_
(
'CycleAnalyticsStage|Issue'
))
end
end
end
end
end
end
end
...
@@ -89,7 +129,6 @@ RSpec.describe 'Value stream analytics charts', :js do
...
@@ -89,7 +129,6 @@ RSpec.describe 'Value stream analytics charts', :js do
before
do
before
do
stub_licensed_features
(
cycle_analytics_for_groups:
true
,
type_of_work_analytics:
true
)
stub_licensed_features
(
cycle_analytics_for_groups:
true
,
type_of_work_analytics:
true
)
group
.
add_owner
(
user
)
project
.
add_maintainer
(
user
)
project
.
add_maintainer
(
user
)
sign_in
(
user
)
sign_in
(
user
)
...
...
ee/spec/features/groups/analytics/cycle_analytics/filters_and_data_spec.rb
View file @
2580edc2
...
@@ -139,9 +139,17 @@ RSpec.describe 'Group value stream analytics filters and data', :js do
...
@@ -139,9 +139,17 @@ RSpec.describe 'Group value stream analytics filters and data', :js do
expect
(
page
).
to
have_selector
(
path_nav_selector
)
expect
(
page
).
to
have_selector
(
path_nav_selector
)
end
end
it
'each stage will have median values'
do
stage_medians
=
page
.
all
(
'.gl-path-button span'
).
collect
(
&
:text
)
expect
(
stage_medians
).
to
eq
([
"-"
]
*
7
)
end
it
'displays the default list of stages'
do
it
'displays the default list of stages'
do
path_nav
=
page
.
find
(
path_nav_selector
)
path_nav
=
page
.
find
(
path_nav_selector
)
expect
(
path_nav
).
to
have_content
(
_
(
"Overview"
))
%w[Issue Plan Code Test Review Staging]
.
each
do
|
item
|
%w[Issue Plan Code Test Review Staging]
.
each
do
|
item
|
string_id
=
"CycleAnalytics|
#{
item
}
"
string_id
=
"CycleAnalytics|
#{
item
}
"
expect
(
path_nav
).
to
have_content
(
s_
(
string_id
))
expect
(
path_nav
).
to
have_content
(
s_
(
string_id
))
...
...
ee/spec/features/groups/analytics/cycle_analytics/multiple_value_streams_spec.rb
View file @
2580edc2
...
@@ -13,10 +13,8 @@ RSpec.describe 'Multiple value streams', :js do
...
@@ -13,10 +13,8 @@ RSpec.describe 'Multiple value streams', :js do
end
end
end
end
let
(
:value_stream_selector
)
{
'[data-testid="dropdown-value-streams"]'
}
let
(
:extended_form_fields_selector
)
{
'[data-testid="extended-form-fields"]'
}
let
(
:extended_form_fields_selector
)
{
'[data-testid="extended-form-fields"]'
}
let
(
:custom_value_stream_name
)
{
"New created value stream"
}
let
(
:custom_value_stream_name
)
{
"New created value stream"
}
let
(
:value_stream_dropdown
)
{
page
.
find
(
value_stream_selector
)
}
let!
(
:default_value_stream
)
{
create
(
:cycle_analytics_group_value_stream
,
group:
group
,
name:
'default'
)
}
let!
(
:default_value_stream
)
{
create
(
:cycle_analytics_group_value_stream
,
group:
group
,
name:
'default'
)
}
3
.
times
do
|
i
|
3
.
times
do
|
i
|
...
@@ -29,10 +27,6 @@ RSpec.describe 'Multiple value streams', :js do
...
@@ -29,10 +27,6 @@ RSpec.describe 'Multiple value streams', :js do
sign_in
(
user
)
sign_in
(
user
)
end
end
def
toggle_value_stream_dropdown
value_stream_dropdown
.
click
end
def
select_value_stream
(
value_stream_name
)
def
select_value_stream
(
value_stream_name
)
toggle_value_stream_dropdown
toggle_value_stream_dropdown
...
@@ -40,34 +34,6 @@ RSpec.describe 'Multiple value streams', :js do
...
@@ -40,34 +34,6 @@ RSpec.describe 'Multiple value streams', :js do
wait_for_requests
wait_for_requests
end
end
def
add_custom_stage_to_form
page
.
find_button
(
s_
(
'CreateValueStreamForm|Add another stage'
)).
click
index
=
page
.
all
(
'[data-testid="value-stream-stage-fields"]'
).
length
last_stage
=
page
.
all
(
'[data-testid="value-stream-stage-fields"]'
).
last
within
last_stage
do
find
(
'[name*="custom-stage-name-"]'
).
fill_in
with:
"Cool custom stage - name
#{
index
}
"
select_dropdown_option_by_value
"custom-stage-start-event-"
,
:merge_request_created
select_dropdown_option_by_value
"custom-stage-end-event-"
,
:merge_request_merged
end
end
def
create_value_stream
fill_in
'create-value-stream-name'
,
with:
custom_value_stream_name
page
.
find_button
(
_
(
'Create Value Stream'
)).
click
wait_for_requests
end
def
create_custom_value_stream
toggle_value_stream_dropdown
page
.
find_button
(
_
(
'Create new Value Stream'
)).
click
add_custom_stage_to_form
create_value_stream
end
describe
'Create value stream'
do
describe
'Create value stream'
do
before
do
before
do
select_group
(
group
)
select_group
(
group
)
...
@@ -81,7 +47,7 @@ RSpec.describe 'Multiple value streams', :js do
...
@@ -81,7 +47,7 @@ RSpec.describe 'Multiple value streams', :js do
end
end
it
'can create a value stream'
do
it
'can create a value stream'
do
create_value_stream
save_value_stream
(
custom_value_stream_name
)
expect
(
page
).
to
have_text
(
_
(
"'%{name}' Value Stream created"
)
%
{
name:
custom_value_stream_name
})
expect
(
page
).
to
have_text
(
_
(
"'%{name}' Value Stream created"
)
%
{
name:
custom_value_stream_name
})
end
end
...
@@ -94,7 +60,7 @@ RSpec.describe 'Multiple value streams', :js do
...
@@ -94,7 +60,7 @@ RSpec.describe 'Multiple value streams', :js do
page
.
find
(
"[data-testid='stage-action-hide-3']"
).
click
page
.
find
(
"[data-testid='stage-action-hide-3']"
).
click
page
.
find
(
"[data-testid='stage-action-hide-1']"
).
click
page
.
find
(
"[data-testid='stage-action-hide-1']"
).
click
create_value_stream
save_value_stream
(
custom_value_stream_name
)
expect
(
page
).
to
have_text
(
_
(
"'%{name}' Value Stream created"
)
%
{
name:
custom_value_stream_name
})
expect
(
page
).
to
have_text
(
_
(
"'%{name}' Value Stream created"
)
%
{
name:
custom_value_stream_name
})
expect
(
page
.
find
(
'[data-testid="gl-path-nav"]'
)).
to
have_text
(
"Cool custom stage - name"
)
expect
(
page
.
find
(
'[data-testid="gl-path-nav"]'
)).
to
have_text
(
"Cool custom stage - name"
)
...
@@ -105,7 +71,7 @@ RSpec.describe 'Multiple value streams', :js do
...
@@ -105,7 +71,7 @@ RSpec.describe 'Multiple value streams', :js do
before
do
before
do
select_group
(
group
)
select_group
(
group
)
create_custom_value_stream
create_custom_value_stream
(
custom_value_stream_name
)
page
.
find_button
(
_
(
'Edit'
)).
click
page
.
find_button
(
_
(
'Edit'
)).
click
end
end
...
...
locale/gitlab.pot
View file @
2580edc2
...
@@ -9241,9 +9241,6 @@ msgstr ""
...
@@ -9241,9 +9241,6 @@ msgstr ""
msgid "Create Project"
msgid "Create Project"
msgstr ""
msgstr ""
msgid "Create Value Stream"
msgstr ""
msgid "Create a GitLab account first, and then connect it to your %{label} account."
msgid "Create a GitLab account first, and then connect it to your %{label} account."
msgstr ""
msgstr ""
...
...
spec/support/helpers/cycle_analytics_helpers.rb
View file @
2580edc2
...
@@ -3,6 +3,38 @@
...
@@ -3,6 +3,38 @@
module
CycleAnalyticsHelpers
module
CycleAnalyticsHelpers
include
GitHelpers
include
GitHelpers
def
toggle_value_stream_dropdown
page
.
find
(
'[data-testid="dropdown-value-streams"]'
).
click
end
def
add_custom_stage_to_form
page
.
find_button
(
s_
(
'CreateValueStreamForm|Add another stage'
)).
click
index
=
page
.
all
(
'[data-testid="value-stream-stage-fields"]'
).
length
last_stage
=
page
.
all
(
'[data-testid="value-stream-stage-fields"]'
).
last
within
last_stage
do
find
(
'[name*="custom-stage-name-"]'
).
fill_in
with:
"Cool custom stage - name
#{
index
}
"
select_dropdown_option_by_value
"custom-stage-start-event-"
,
:merge_request_created
select_dropdown_option_by_value
"custom-stage-end-event-"
,
:merge_request_merged
end
end
def
save_value_stream
(
custom_value_stream_name
)
fill_in
'create-value-stream-name'
,
with:
custom_value_stream_name
page
.
find_button
(
s_
(
'CreateValueStreamForm|Create Value Stream'
)).
click
wait_for_requests
end
def
create_custom_value_stream
(
custom_value_stream_name
)
toggle_value_stream_dropdown
page
.
find_button
(
_
(
'Create new Value Stream'
)).
click
add_custom_stage_to_form
save_value_stream
(
custom_value_stream_name
)
end
def
wait_for_stages_to_load
(
selector
=
'.js-path-navigation'
)
def
wait_for_stages_to_load
(
selector
=
'.js-path-navigation'
)
expect
(
page
).
to
have_selector
selector
expect
(
page
).
to
have_selector
selector
wait_for_requests
wait_for_requests
...
...
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