Skip to content
代码片段 群组 项目
提交 63801d7b 编辑于 作者: Alexandru Croitor's avatar Alexandru Croitor
浏览文件

Merge branch '381001-add-controllers-for-vs-settings' into 'master'

No related branches found
No related tags found
无相关合并请求
...@@ -11,11 +11,7 @@ class ConfigurationEntity < Grape::Entity ...@@ -11,11 +11,7 @@ class ConfigurationEntity < Grape::Entity
private private
def events def events
(stage_events.events - stage_events.internal_events).sort_by(&:name) Gitlab::Analytics::CycleAnalytics::StageEvents.selectable_events
end
def stage_events
Gitlab::Analytics::CycleAnalytics::StageEvents
end end
end end
end end
......
...@@ -7,10 +7,27 @@ class Groups::Analytics::CycleAnalytics::ValueStreamsController < Groups::Analyt ...@@ -7,10 +7,27 @@ class Groups::Analytics::CycleAnalytics::ValueStreamsController < Groups::Analyt
render_403 unless can?(current_user, :read_group_cycle_analytics, @group) render_403 unless can?(current_user, :read_group_cycle_analytics, @group)
end end
before_action :load_stage_events, only: %i[new edit]
before_action :load_value_stream, only: %i[show edit update]
layout 'group'
def index def index
render json: Analytics::CycleAnalytics::ValueStreamSerializer.new.represent(value_streams) render json: Analytics::CycleAnalytics::ValueStreamSerializer.new.represent(value_streams)
end end
def new
render :new
end
def show
render json: Analytics::CycleAnalytics::ValueStreamSerializer.new.represent(@value_stream)
end
def edit
render :edit
end
def create def create
result = Analytics::CycleAnalytics::ValueStreams::CreateService.new(group: @group, params: create_params, current_user: current_user).execute result = Analytics::CycleAnalytics::ValueStreams::CreateService.new(group: @group, params: create_params, current_user: current_user).execute
...@@ -22,8 +39,7 @@ def create ...@@ -22,8 +39,7 @@ def create
end end
def update def update
value_stream = @group.value_streams.find(params[:id]) result = Analytics::CycleAnalytics::ValueStreams::UpdateService.new(group: @group, params: update_params, current_user: current_user, value_stream: @value_stream).execute
result = Analytics::CycleAnalytics::ValueStreams::UpdateService.new(group: @group, params: update_params, current_user: current_user, value_stream: value_stream).execute
if result.success? if result.success?
render json: serialize_value_stream(result), status: result.http_status render json: serialize_value_stream(result), status: result.http_status
...@@ -107,4 +123,15 @@ def serialize_value_stream(result) ...@@ -107,4 +123,15 @@ def serialize_value_stream(result)
def serialize_value_stream_error(result) def serialize_value_stream_error(result)
Analytics::CycleAnalytics::ValueStreamErrorsSerializer.new(result.payload[:value_stream]) Analytics::CycleAnalytics::ValueStreamErrorsSerializer.new(result.payload[:value_stream])
end end
def load_value_stream
@value_stream ||= @group.value_streams.find(params[:id])
end
def load_stage_events
@stage_events ||= begin
selectable_events = Gitlab::Analytics::CycleAnalytics::StageEvents.selectable_events
Analytics::CycleAnalytics::EventEntity.represent(selectable_events)
end
end
end end
- page_title s_("ValueStreamAnalytics|Edit Value Stream: %{name}") % { name: @value_stream.name }
- add_page_specific_style 'page_bundles/cycle_analytics'
- data_attributes = group_cycle_analytics_data(@group).merge(value_stream_id: @value_stream.id)
- data_attributes[:value_stream_url] = group_analytics_cycle_analytics_value_stream_path(group_id: @group, id: @value_stream.id)
- data_attributes[:stage_events] = @stage_events.to_json
#js-cycle-analytics-edit-vs-app{ data: data_attributes }
- page_title s_("ValueStreamAnalytics|New Value Stream")
- add_page_specific_style 'page_bundles/cycle_analytics'
- data_attributes = group_cycle_analytics_data(@group)
- data_attributes[:create_value_stream_url] = group_analytics_cycle_analytics_value_streams_path(group_id: @group)
- data_attributes[:stage_events] = @stage_events.to_json
#js-cycle-analytics-new-vs-app{ data: data_attributes }
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
get :count get :count
end end
end end
resources :value_streams, only: [:index, :create, :update, :destroy] do resources :value_streams, only: [:index, :new, :edit, :show, :create, :update, :destroy] do
resources :stages, only: [:index, :create, :update, :destroy] do resources :stages, only: [:index, :create, :update, :destroy] do
member do member do
get :average_duration_chart get :average_duration_chart
......
...@@ -38,6 +38,53 @@ ...@@ -38,6 +38,53 @@
end end
end end
describe 'GET #show' do
let!(:value_stream) { create(:cycle_analytics_group_value_stream, group: group) }
it 'succeeds' do
get :show, params: params.merge(id: value_stream.id)
expect(response).to have_gitlab_http_status(:ok)
expect(response).to match_response_schema('analytics/cycle_analytics/value_stream', dir: 'ee')
end
context 'when value stream is not found' do
it 'renders 404' do
get :show, params: params.merge(id: non_existing_record_id)
expect(response).to have_gitlab_http_status(:not_found)
end
end
end
describe 'GET #edit' do
let!(:value_stream) { create(:cycle_analytics_group_value_stream, group: group) }
it 'succeeds' do
get :edit, params: params.merge(id: value_stream.id)
expect(response).to have_gitlab_http_status(:ok)
expect(response).to render_template(:edit)
end
context 'when value stream is not found' do
it 'renders 404' do
get :edit, params: params.merge(id: non_existing_record_id)
expect(response).to have_gitlab_http_status(:not_found)
end
end
end
describe 'GET #new' do
it 'succeeds' do
get :new, params: params
expect(response).to have_gitlab_http_status(:ok)
expect(response).to render_template(:new)
end
end
describe 'POST #create' do describe 'POST #create' do
context 'with valid params' do context 'with valid params' do
it 'returns a successful 200 response' do it 'returns a successful 200 response' do
......
...@@ -80,6 +80,10 @@ def self.enum_mapping ...@@ -80,6 +80,10 @@ def self.enum_mapping
def self.internal_events def self.internal_events
INTERNAL_EVENTS INTERNAL_EVENTS
end end
def self.selectable_events
(events - internal_events).sort_by(&:name)
end
end end
end end
end end
......
...@@ -45033,6 +45033,9 @@ msgstr "" ...@@ -45033,6 +45033,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Dashboard" msgid "ValueStreamAnalytics|Dashboard"
msgstr "" msgstr ""
   
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgstr ""
msgid "ValueStreamAnalytics|Go to docs" msgid "ValueStreamAnalytics|Go to docs"
msgstr "" msgstr ""
   
...@@ -45051,6 +45054,9 @@ msgstr "" ...@@ -45051,6 +45054,9 @@ msgstr ""
msgid "ValueStreamAnalytics|Median time from the earliest commit of a linked issue's merge request to when that issue is closed." msgid "ValueStreamAnalytics|Median time from the earliest commit of a linked issue's merge request to when that issue is closed."
msgstr "" msgstr ""
   
msgid "ValueStreamAnalytics|New Value Stream"
msgstr ""
msgid "ValueStreamAnalytics|Number of commits pushed to the default branch" msgid "ValueStreamAnalytics|Number of commits pushed to the default branch"
msgstr "" msgstr ""
   
# frozen_string_literal: true
require 'spec_helper'
RSpec.describe Gitlab::Analytics::CycleAnalytics::StageEvents, feature_category: :value_stream_management do
describe '#selectable_events' do
subject(:selectable_events) { described_class.selectable_events }
it 'excludes internal events' do
expect(selectable_events).to include(Gitlab::Analytics::CycleAnalytics::StageEvents::MergeRequestCreated)
expect(selectable_events).to exclude(Gitlab::Analytics::CycleAnalytics::StageEvents::IssueStageEnd)
end
end
end
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册