Skip to content
代码片段 群组 项目
提交 2f47a34d 编辑于 作者: Stan Hu's avatar Stan Hu
浏览文件

Merge branch '396665-cablett-vsa-project-level-specs' into 'master'

No related branches found
No related tags found
无相关合并请求
......@@ -219,7 +219,7 @@ def vsa_stages(selected_group)
context 'without valid query parameters set' do
before do
create_value_stream_group_aggregation(group)
create_value_stream_aggregation(group)
end
context 'with created_after date > created_before date' do
......@@ -259,7 +259,7 @@ def vsa_stages(selected_group)
projects_dropdown = '.js-projects-dropdown-filter'
before do
create_value_stream_group_aggregation(group)
create_value_stream_aggregation(group)
end
context 'with project_ids set' do
......@@ -356,7 +356,7 @@ def vsa_stages(selected_group)
Gitlab::Analytics::CycleAnalytics::DefaultStages.all.map do |params|
group.cycle_analytics_stages.build(params.merge(value_stream: value_stream)).save!
end
create_value_stream_group_aggregation(group)
create_value_stream_aggregation(group)
select_group(group)
end
......
......@@ -256,7 +256,7 @@ def create_and_select_value_stream(name, with_aggregation = true)
end
it 'displays the value stream once an aggregation is run' do
create_value_stream_group_aggregation(group)
create_value_stream_aggregation(group)
reload_value_stream
......@@ -267,8 +267,8 @@ def create_and_select_value_stream(name, with_aggregation = true)
context 'with an aggregation created' do
before do
create_value_stream_group_aggregation(group)
create_value_stream_group_aggregation(sub_group)
create_value_stream_aggregation(group)
create_value_stream_aggregation(sub_group)
# ensure we have a value stream already available
create(:cycle_analytics_value_stream, namespace: group, name: 'default')
......
......@@ -8,11 +8,13 @@
let_it_be(:user) { create(:user) }
let_it_be(:group) { create(:group, name: 'CA-test-group') }
let_it_be(:project) { create(:project, :repository, namespace: group, group: group, name: 'Cool fun project') }
let_it_be(:project_namespace) { project.project_namespace }
let(:empty_state_selector) { '[data-testid="vsa-empty-state"]' }
let(:value_stream_selector) { '[data-testid="dropdown-value-streams"]' }
let(:duration_chart_selector) { '[data-testid="vsa-duration-chart"]' }
let(:metrics_groups_selector) { '[data-testid="vsa-metrics-group"]' }
let(:metrics_selector) { '[data-testid="vsa-metrics"]' }
before_all do
group.add_owner(user)
......@@ -37,19 +39,72 @@
end
end
context 'with the `cycle_analytics_for_projects` license' do
context 'with custom value streams feature available' do
let_it_be(:group) { create(:group, name: 'Project with custom value streams available') }
let_it_be(:project) do
create(:project, :repository, namespace: group, group: group, name: 'Important project')
end
let_it_be(:project_namespace) { project.project_namespace }
before do
stub_licensed_features(cycle_analytics_for_projects: true)
stub_licensed_features(
cycle_analytics_for_projects: true,
cycle_analytics_for_groups: true,
group_level_analytics_dashboard: true
)
project.add_maintainer(user)
sign_in(user)
end
it 'renders the customizable VSA empty state' do
visit project_cycle_analytics_path(project)
context 'with no value stream' do
it 'renders the customizable VSA empty state' do
visit project_cycle_analytics_path(project)
expect(page).to have_selector(empty_state_selector)
expect(page).to have_text(s_('CycleAnalytics|Custom value streams to measure your DevSecOps lifecycle'))
end
end
expect(page).to have_selector(empty_state_selector)
expect(page).to have_text(s_('CycleAnalytics|Custom value streams to measure your DevSecOps lifecycle'))
context 'with a value stream created', :sidekiq_inline do
let_it_be(:value_stream_name) { 'My awesome splendiferous value stream' }
let_it_be(:stages) do
[
create(:cycle_analytics_stage, namespace: project_namespace, name: "Issue", relative_position: 1),
create(:cycle_analytics_stage, namespace: project_namespace, name: "Code", relative_position: 2)
]
end
let_it_be(:value_stream) do
create(:cycle_analytics_value_stream,
namespace: project_namespace,
name: value_stream_name,
stages: stages)
end
before do
# otherwise we get the "Data is collecting and loading"
create_value_stream_aggregation(project_namespace)
visit project_cycle_analytics_path(project)
wait_for_requests
find(value_stream_selector).click
click_button(value_stream_name, match: :first)
wait_for_requests
end
it 'displays data' do
expect(page).to have_content(value_stream_name)
expect(page).to have_selector(duration_chart_selector)
expect(page).to have_selector(metrics_selector)
metrics_tiles = page.find(metrics_selector)
expect(metrics_tiles).to have_content('Commit')
expect(metrics_tiles).to have_content('Deploy')
expect(metrics_tiles).to have_content('Deployment Frequency')
expect(metrics_tiles).to have_content('New Issue')
end
end
end
......
......@@ -91,13 +91,13 @@ def select_value_stream(value_stream_name)
wait_for_requests
end
def create_value_stream_group_aggregation(group)
aggregation = Analytics::CycleAnalytics::Aggregation.safe_create_for_namespace(group)
def create_value_stream_aggregation(group_or_project_namespace)
aggregation = Analytics::CycleAnalytics::Aggregation.safe_create_for_namespace(group_or_project_namespace)
Analytics::CycleAnalytics::AggregatorService.new(aggregation: aggregation).execute
end
def select_group_and_custom_value_stream(group, custom_value_stream_name)
create_value_stream_group_aggregation(group)
create_value_stream_aggregation(group)
select_group(group)
select_value_stream(custom_value_stream_name)
......
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册