Skip to content
代码片段 群组 项目
提交 219ec6bc 编辑于 作者: Mark Lapierre's avatar Mark Lapierre
浏览文件

Merge branch 'andrey-improve-vsa-specs' into 'master'

No related branches found
No related tags found
无相关合并请求
......@@ -19,6 +19,14 @@ class ValueStreamAnalytics < QA::Page::Base
element :vsa_path_navigation
end
view "app/assets/javascripts/analytics/shared/components/value_stream_metrics.vue" do
element :vsa_metrics
end
view "ee/app/assets/javascripts/analytics/cycle_analytics/components/duration_chart.vue" do
element :vsa_duration_chart
end
# Create new value stream from default template
#
# @param [String] name
......@@ -49,6 +57,32 @@ def create_new_custom_value_stream(name, stages)
create_value_stream
end
# VSA page has stages
#
# @param [Array<String>] stage_names
# @return [Boolean]
def has_stages?(stage_names)
within_element(:vsa_path_navigation) do
stage_names.all? { |stage_name| find_button(stage_name, wait: 5) }
end
end
# VSA page has lifecycle metrics container
#
# @param [Integer] wait
# @return [Boolean]
def has_lifecycle_metrics?(wait: 0)
has_element?(:vsa_metrics, wait: wait)
end
# VSA page has duration overview chart
#
# @param [Integer] wait
# @return [Boolean]
def has_overview_chart?(wait: 0)
has_element?(:vsa_duration_overview_chart, wait: wait)
end
private
def select_value_stream_type(value = 'default')
......
......@@ -69,6 +69,13 @@ def api_related_mrs_path
"#{api_get_path}/related_merge_requests"
end
# Close issue
#
# @return [void]
def close
api_put_to(api_put_path, state_event: "close")
end
def set_issue_assignees(assignee_ids:)
put_body = { assignee_ids: assignee_ids }
response = put Runtime::API::Request.new(api_client, api_put_path).url, put_body
......
......@@ -2,11 +2,21 @@
module QA
RSpec.describe 'Plan', :requires_admin, product_group: :optimize do
shared_examples "value stream analytics" do
it "shows vsa dashboard" do
EE::Page::Group::ValueStreamAnalytics.perform do |vsa_page|
expect(vsa_page).to have_stages(stage_names)
expect(vsa_page).to have_text("'#{vsa_name}' is collecting the data. This can take a few minutes.")
end
end
end
describe 'Value stream analytics' do
let(:vsa_name) { "test-vsa" }
let(:admin_api_client) { Runtime::API::Client.as_admin }
let(:user_api_client) { Runtime::API::Client.new(user: user) }
let(:user) do
let!(:user) do
Resource::User.fabricate_via_api! do |resource|
resource.api_client = admin_api_client
end
......@@ -19,47 +29,58 @@ module QA
end
end
let(:project) do
Resource::Project.fabricate_via_api! do |resource|
resource.api_client = user_api_client
resource.group = group
end
end
before do
group.add_member(user, Resource::Members::AccessLevel::MAINTAINER)
Flow::Login.sign_in(as: user)
group.visit!
Page::Group::Menu.perform(&:go_to_value_stream_analytics)
project.visit!
Page::Project::Menu.perform(&:go_to_value_stream_analytics)
end
it(
"can create value stream analytics from default template",
testcase: "https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/414821"
) do
EE::Page::Group::ValueStreamAnalytics.perform do |vsa_page|
vsa_page.create_new_value_stream_from_default_template(vsa_name)
context "with default template", testcase: "https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/414821" do
let(:stage_names) { %w[Issue Plan Code Test Review Staging] }
expect(vsa_page).to have_element(:vsa_path_navigation)
expect(vsa_page).to have_text("'#{vsa_name}' is collecting the data. This can take a few minutes.")
before do
EE::Page::Group::ValueStreamAnalytics.perform do |vsa_page|
vsa_page.create_new_value_stream_from_default_template(vsa_name)
end
end
it_behaves_like "value stream analytics"
end
it(
"can create custom value stream analytics",
testcase: "https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/415068"
) do
EE::Page::Group::ValueStreamAnalytics.perform do |vsa_page|
vsa_page.create_new_custom_value_stream(vsa_name, [
context "with custom template", testcase: "https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/415068" do
let(:stage_names) { stages.pluck(:name) }
let(:stages) do
[
{
name: "issues closed stage",
name: "issues closed",
start_event: "Issue created",
end_event: "Issue closed"
},
{
name: "mrs closed stage",
name: "mrs merged",
start_event: "Merge request created",
end_event: "Merge request closed"
end_event: "Merge request merged"
}
])
]
end
expect(vsa_page).to have_element(:vsa_path_navigation)
expect(vsa_page).to have_text("'#{vsa_name}' is collecting the data. This can take a few minutes.")
before do
EE::Page::Group::ValueStreamAnalytics.perform do |vsa_page|
vsa_page.create_new_custom_value_stream(vsa_name, stages)
end
end
it_behaves_like "value stream analytics"
end
end
end
......
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册