Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKatarzyna Kobierska <kkobierska@gmail.com>2016-08-30 14:03:29 +0300
committerKatarzyna Kobierska <kkobierska@gmail.com>2016-09-07 13:10:49 +0300
commit1a7a900d8e4a4a3a65b33054168fdd86f252b757 (patch)
tree8420740a7ddbbdcce6e18141684a2e8cbc326a49
parent2c8b830fdbf749e8bb7461d5c3ce4699b77ce3ca (diff)
Improve code
-rw-r--r--lib/api/lint.rb24
-rw-r--r--lib/ci/gitlab_ci_yaml_processor.rb15
-rw-r--r--spec/lib/ci/gitlab_ci_yaml_processor_spec.rb9
-rw-r--r--spec/requests/api/lint_spec.rb6
4 files changed, 25 insertions, 29 deletions
diff --git a/lib/api/lint.rb b/lib/api/lint.rb
index b1c6f52bccb..98010cf3b68 100644
--- a/lib/api/lint.rb
+++ b/lib/api/lint.rb
@@ -5,22 +5,18 @@ module API
requires :content, type: String, desc: 'Content of .gitlab-ci.yml'
end
- post 'ci/lint' do
- error = Ci::GitlabCiYamlProcessor.validation_message(params[:content])
- response = {
- status: '',
- error: ''
- }
+ namespace 'ci' do
+ post '/lint' do
+ errors = Ci::GitlabCiYamlProcessor.validation_message(params[:content])
- if error.blank?
- response[:status] = 'valid'
- else
- response[:error] = error
- response[:status] = 'invalid'
- end
+ status 200
- status 200
- response
+ if errors.blank?
+ { status: 'valid', errors: [] }
+ else
+ { status: 'invalid', errors: [errors] }
+ end
+ end
end
end
end
diff --git a/lib/ci/gitlab_ci_yaml_processor.rb b/lib/ci/gitlab_ci_yaml_processor.rb
index c547193ce4c..bdae3205511 100644
--- a/lib/ci/gitlab_ci_yaml_processor.rb
+++ b/lib/ci/gitlab_ci_yaml_processor.rb
@@ -79,15 +79,12 @@ module Ci
end
def self.validation_message(content)
- if content.blank?
- 'Please provide content of .gitlab-ci.yml'
- else
- begin
- Ci::GitlabCiYamlProcessor.new(content)
- nil
- rescue ValidationError, Psych::SyntaxError => e
- e.message
- end
+ return 'Please provide content of .gitlab-ci.yml' if content.blank?
+ begin
+ Ci::GitlabCiYamlProcessor.new(content)
+ nil
+ rescue ValidationError, Psych::SyntaxError => e
+ e.message
end
end
diff --git a/spec/lib/ci/gitlab_ci_yaml_processor_spec.rb b/spec/lib/ci/gitlab_ci_yaml_processor_spec.rb
index 21aca9ee39f..3b77dbdb817 100644
--- a/spec/lib/ci/gitlab_ci_yaml_processor_spec.rb
+++ b/spec/lib/ci/gitlab_ci_yaml_processor_spec.rb
@@ -1256,7 +1256,8 @@ EOT
it "returns an error about invalid configutaion" do
content = YAML.dump("invalid: yaml: test")
- expect(GitlabCiYamlProcessor.validation_message(content)).to eq "Invalid configuration format"
+ expect(GitlabCiYamlProcessor.validation_message(content))
+ .to eq "Invalid configuration format"
end
end
@@ -1264,13 +1265,15 @@ EOT
it "returns an error about invalid tags" do
content = YAML.dump({ rspec: { script: "test", tags: "mysql" } })
- expect(GitlabCiYamlProcessor.validation_message(content)).to eq "jobs:rspec tags should be an array of strings"
+ expect(GitlabCiYamlProcessor.validation_message(content))
+ .to eq "jobs:rspec tags should be an array of strings"
end
end
context "when YMAL content is empty" do
it "returns an error about missing content" do
- expect(GitlabCiYamlProcessor.validation_message('')).to eq "Please provide content of .gitlab-ci.yml"
+ expect(GitlabCiYamlProcessor.validation_message(''))
+ .to eq "Please provide content of .gitlab-ci.yml"
end
end
diff --git a/spec/requests/api/lint_spec.rb b/spec/requests/api/lint_spec.rb
index 5f8c2829dfa..c791b4891b6 100644
--- a/spec/requests/api/lint_spec.rb
+++ b/spec/requests/api/lint_spec.rb
@@ -15,7 +15,7 @@ describe API::Lint, api: true do
expect(response).to have_http_status(200)
expect(json_response).to be_an Hash
expect(json_response['status']).to eq('valid')
- expect(json_response['error']).to eq('')
+ expect(json_response['errors']).to eq([])
end
end
@@ -25,7 +25,7 @@ describe API::Lint, api: true do
expect(response).to have_http_status(200)
expect(json_response['status']).to eq('invalid')
- expect(json_response['error']).to eq('Invalid configuration format')
+ expect(json_response['errors']).to eq(['Invalid configuration format'])
end
it "responds with errors about invalid configuration" do
@@ -33,7 +33,7 @@ describe API::Lint, api: true do
expect(response).to have_http_status(200)
expect(json_response['status']).to eq('invalid')
- expect(json_response['error']).to eq('jobs config should contain at least one visible job')
+ expect(json_response['errors']).to eq(['jobs config should contain at least one visible job'])
end
end