summaryrefslogtreecommitdiff
path: root/spec/lib
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-07-09 18:43:26 +0200
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-07-09 18:43:26 +0200
commit2480701436bf84281e4afd65eb0d4c2d642754b9 (patch)
tree60d5cb158ea752da29ae8835f06e6e307425e397 /spec/lib
parenta80a01e8411cee9e0f7d24ddddb65dca0c7a7fdf (diff)
downloadgitlab-ce-2480701436bf84281e4afd65eb0d4c2d642754b9.tar.gz
Extend CI job entries fabrication and validation
Diffstat (limited to 'spec/lib')
-rw-r--r--spec/lib/gitlab/ci/config/node/global_spec.rb2
-rw-r--r--spec/lib/gitlab/ci/config/node/hidden_job_spec.rb10
-rw-r--r--spec/lib/gitlab/ci/config/node/job_spec.rb10
-rw-r--r--spec/lib/gitlab/ci/config/node/jobs_spec.rb30
4 files changed, 36 insertions, 16 deletions
diff --git a/spec/lib/gitlab/ci/config/node/global_spec.rb b/spec/lib/gitlab/ci/config/node/global_spec.rb
index 10e5f05a2d5..3e1c197fe61 100644
--- a/spec/lib/gitlab/ci/config/node/global_spec.rb
+++ b/spec/lib/gitlab/ci/config/node/global_spec.rb
@@ -137,7 +137,7 @@ describe Gitlab::Ci::Config::Node::Global do
end
context 'when most of entires not defined' do
- let(:hash) { { cache: { key: 'a' }, rspec: {} } }
+ let(:hash) { { cache: { key: 'a' }, rspec: { script: %w[ls] } } }
before { global.process! }
describe '#nodes' do
diff --git a/spec/lib/gitlab/ci/config/node/hidden_job_spec.rb b/spec/lib/gitlab/ci/config/node/hidden_job_spec.rb
index ab865c3522e..cc44e2cc054 100644
--- a/spec/lib/gitlab/ci/config/node/hidden_job_spec.rb
+++ b/spec/lib/gitlab/ci/config/node/hidden_job_spec.rb
@@ -31,6 +31,16 @@ describe Gitlab::Ci::Config::Node::HiddenJob do
end
end
end
+
+ context 'when config is empty' do
+ let(:config) { {} }
+
+ describe '#valid' do
+ it 'is invalid' do
+ expect(entry).not_to be_valid
+ end
+ end
+ end
end
end
diff --git a/spec/lib/gitlab/ci/config/node/job_spec.rb b/spec/lib/gitlab/ci/config/node/job_spec.rb
index 2a4296448fb..f841936ee6b 100644
--- a/spec/lib/gitlab/ci/config/node/job_spec.rb
+++ b/spec/lib/gitlab/ci/config/node/job_spec.rb
@@ -39,6 +39,16 @@ describe Gitlab::Ci::Config::Node::Job do
end
end
end
+
+ context 'when config is empty' do
+ let(:config) { {} }
+
+ describe '#valid' do
+ it 'is invalid' do
+ expect(entry).not_to be_valid
+ end
+ end
+ end
end
end
diff --git a/spec/lib/gitlab/ci/config/node/jobs_spec.rb b/spec/lib/gitlab/ci/config/node/jobs_spec.rb
index 52018958dcf..b0171174157 100644
--- a/spec/lib/gitlab/ci/config/node/jobs_spec.rb
+++ b/spec/lib/gitlab/ci/config/node/jobs_spec.rb
@@ -4,6 +4,11 @@ describe Gitlab::Ci::Config::Node::Jobs do
let(:entry) { described_class.new(config, global: spy) }
describe 'validations' do
+ before do
+ entry.process!
+ entry.validate!
+ end
+
context 'when entry config value is correct' do
let(:config) { { rspec: { script: 'rspec' } } }
@@ -25,25 +30,20 @@ describe Gitlab::Ci::Config::Node::Jobs do
end
end
- context 'when no visible jobs present' do
- let(:config) { { '.hidden'.to_sym => {} } }
+ context 'when job is unspecified' do
+ let(:config) { { rspec: nil } }
- context 'when not processed' do
- it 'is valid' do
- expect(entry.errors).to be_empty
- end
+ it 'is not valid' do
+ expect(entry).not_to be_valid
end
+ end
- context 'when processed' do
- before do
- entry.process!
- entry.validate!
- end
+ context 'when no visible jobs present' do
+ let(:config) { { '.hidden'.to_sym => { script: [] } } }
- it 'returns error about no visible jobs defined' do
- expect(entry.errors)
- .to include 'jobs config should contain at least one visible job'
- end
+ it 'returns error about no visible jobs defined' do
+ expect(entry.errors)
+ .to include 'jobs config should contain at least one visible job'
end
end
end