From 0d81fd05b905e5fe41fee6bb48214748ccf85e78 Mon Sep 17 00:00:00 2001 From: Katarzyna Kobierska <kkobierska@gmail.com> Date: Tue, 30 Aug 2016 15:38:36 +0200 Subject: [PATCH] Code refactor --- app/controllers/ci/lints_controller.rb | 6 ++---- lib/api/lint.rb | 2 +- lib/ci/gitlab_ci_yaml_processor.rb | 1 + spec/lib/ci/gitlab_ci_yaml_processor_spec.rb | 2 +- spec/requests/api/lint_spec.rb | 8 ++++---- 5 files changed, 9 insertions(+), 10 deletions(-) diff --git a/app/controllers/ci/lints_controller.rb b/app/controllers/ci/lints_controller.rb index 62f6b23faba..e06d12cfce1 100644 --- a/app/controllers/ci/lints_controller.rb +++ b/app/controllers/ci/lints_controller.rb @@ -8,14 +8,12 @@ module Ci def create @content = params[:content] @error = Ci::GitlabCiYamlProcessor.validation_message(@content) + @status = @error.blank? - unless @error.blank? - @status = @error.blank? - else + if @error.blank? @config_processor = Ci::GitlabCiYamlProcessor.new(@content) @stages = @config_processor.stages @builds = @config_processor.builds - @status = true end rescue @error = 'Undefined error' diff --git a/lib/api/lint.rb b/lib/api/lint.rb index 98010cf3b68..ec9c8c710e4 100644 --- a/lib/api/lint.rb +++ b/lib/api/lint.rb @@ -5,7 +5,7 @@ module API requires :content, type: String, desc: 'Content of .gitlab-ci.yml' end - namespace 'ci' do + namespace :ci do post '/lint' do errors = Ci::GitlabCiYamlProcessor.validation_message(params[:content]) diff --git a/lib/ci/gitlab_ci_yaml_processor.rb b/lib/ci/gitlab_ci_yaml_processor.rb index bdae3205511..e8c86349339 100644 --- a/lib/ci/gitlab_ci_yaml_processor.rb +++ b/lib/ci/gitlab_ci_yaml_processor.rb @@ -80,6 +80,7 @@ module Ci def self.validation_message(content) return 'Please provide content of .gitlab-ci.yml' if content.blank? + begin Ci::GitlabCiYamlProcessor.new(content) nil diff --git a/spec/lib/ci/gitlab_ci_yaml_processor_spec.rb b/spec/lib/ci/gitlab_ci_yaml_processor_spec.rb index 3b77dbdb817..43631070024 100644 --- a/spec/lib/ci/gitlab_ci_yaml_processor_spec.rb +++ b/spec/lib/ci/gitlab_ci_yaml_processor_spec.rb @@ -1251,7 +1251,7 @@ EOT end end - describe "#errors" do + describe "#validation_message" do context "when the YAML could not be parsed" do it "returns an error about invalid configutaion" do content = YAML.dump("invalid: yaml: test") diff --git a/spec/requests/api/lint_spec.rb b/spec/requests/api/lint_spec.rb index c791b4891b6..391fc13a380 100644 --- a/spec/requests/api/lint_spec.rb +++ b/spec/requests/api/lint_spec.rb @@ -4,11 +4,11 @@ describe API::Lint, api: true do include ApiHelpers describe 'POST /ci/lint' do - let(:yaml_content) do - File.read(Rails.root.join('spec/support/gitlab_stubs/gitlab_ci.yml')) - end - context 'with valid .gitlab-ci.yaml content' do + let(:yaml_content) do + File.read(Rails.root.join('spec/support/gitlab_stubs/gitlab_ci.yml')) + end + it 'passes validation' do post api('/ci/lint'), { content: yaml_content } -- GitLab