From de2e8d4a559bd99479f46e527d8e78f67ad37de6 Mon Sep 17 00:00:00 2001 From: Katarzyna Kobierska Date: Wed, 24 Aug 2016 14:36:14 +0200 Subject: [PATCH] Add tests for yaml content with errors --- spec/requests/api/lint_spec.rb | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/spec/requests/api/lint_spec.rb b/spec/requests/api/lint_spec.rb index 9de9c90a4aa..78a9b415405 100644 --- a/spec/requests/api/lint_spec.rb +++ b/spec/requests/api/lint_spec.rb @@ -3,30 +3,36 @@ require 'spec_helper' describe API::API do include ApiHelpers - let(:user) { create(:user) } let(:yaml_content) do File.read(Rails.root.join('spec/support/gitlab_stubs/gitlab_ci.yml')) end describe 'POST /lint' do context 'with valid .gitlab-ci.yaml content' do - context 'authorized user' do - it 'validate content' do - post api('/lint'), { content: yaml_content } + it 'validates content' do + post api('/lint'), { content: yaml_content } - expect(response).to have_http_status(200) - expect(json_response).to be_an Hash - expect(json_response['status']).to eq('valid') - end + expect(response).to have_http_status(200) + expect(json_response).to be_an Hash + expect(json_response['status']).to eq('valid') end end - context 'with invalid .gitlab_ci.yml content' do - it 'validate content' do + context 'with invalid .gitlab_ci.yml' do + it 'validates content and shows correct errors' do post api('/lint'), { content: 'invalid content' } expect(response).to have_http_status(200) expect(json_response['status']).to eq('invalid') + expect(json_response['errors']).to eq(['Invalid configuration format']) + end + + it "validates content and shows configuration error" do + post api('/lint'), { content: '{ image: "ruby:2.1", services: ["postgres"] }' } + + expect(response).to have_http_status(200) + expect(json_response['status']).to eq('invalid') + expect(json_response['errors']).to eq(['jobs config should contain at least one visible job']) end end