summaryrefslogtreecommitdiff
path: root/app/controllers/projects/pipelines/tests_controller.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers/projects/pipelines/tests_controller.rb')
-rw-r--r--app/controllers/projects/pipelines/tests_controller.rb41
1 files changed, 32 insertions, 9 deletions
diff --git a/app/controllers/projects/pipelines/tests_controller.rb b/app/controllers/projects/pipelines/tests_controller.rb
index 6e4b5155a4f..f03274bf32e 100644
--- a/app/controllers/projects/pipelines/tests_controller.rb
+++ b/app/controllers/projects/pipelines/tests_controller.rb
@@ -2,35 +2,58 @@
module Projects
module Pipelines
- class TestsController < Projects::ApplicationController
- before_action :pipeline
- before_action :authorize_read_pipeline!
- before_action :authorize_read_build!
+ class TestsController < Projects::Pipelines::ApplicationController
before_action :validate_feature_flag!
+ before_action :authorize_read_build!
+ before_action :builds, only: [:show]
def summary
respond_to do |format|
format.json do
- render json: TestReportSerializer
+ render json: TestReportSummarySerializer
.new(project: project, current_user: @current_user)
.represent(pipeline.test_report_summary)
end
end
end
+ def show
+ respond_to do |format|
+ format.json do
+ render json: TestSuiteSerializer
+ .new(project: project, current_user: @current_user)
+ .represent(test_suite, details: true)
+ end
+ end
+ end
+
private
def validate_feature_flag!
render_404 unless Feature.enabled?(:build_report_summary, project)
end
- def pipeline
- project.all_pipelines.find(tests_params[:id])
+ # rubocop: disable CodeReuse/ActiveRecord
+ def builds
+ pipeline.latest_builds.where(id: build_params)
+ end
+
+ def build_params
+ return [] unless params[:build_ids]
+
+ params[:build_ids].split(",")
end
- def tests_params
- params.permit(:id)
+ def test_suite
+ if builds.present?
+ builds.map do |build|
+ build.collect_test_reports!(Gitlab::Ci::Reports::TestReports.new)
+ end.sum
+ else
+ render_404
+ end
end
+ # rubocop: enable CodeReuse/ActiveRecord
end
end
end