From e00ae9a87720bccda634dc85c018f5ec1d03a883 Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon <grzesiek.bizon@gmail.com> Date: Tue, 5 Jul 2016 14:04:22 +0200 Subject: [PATCH] Add new CI config entry for single job in pipeline --- lib/gitlab/ci/config/node/job.rb | 14 +++++++++ spec/lib/gitlab/ci/config/node/job_spec.rb | 36 ++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 lib/gitlab/ci/config/node/job.rb create mode 100644 spec/lib/gitlab/ci/config/node/job_spec.rb diff --git a/lib/gitlab/ci/config/node/job.rb b/lib/gitlab/ci/config/node/job.rb new file mode 100644 index 00000000000..5be8cb39a87 --- /dev/null +++ b/lib/gitlab/ci/config/node/job.rb @@ -0,0 +1,14 @@ +module Gitlab + module Ci + class Config + module Node + ## + # Entry that represents a concrete CI/CD job. + # + class Job < Entry + include Configurable + 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 new file mode 100644 index 00000000000..7dd25a23c83 --- /dev/null +++ b/spec/lib/gitlab/ci/config/node/job_spec.rb @@ -0,0 +1,36 @@ +require 'spec_helper' + +describe Gitlab::Ci::Config::Node::Job do + let(:entry) { described_class.new(config) } + + describe 'validations' do + context 'when entry config value is correct' do + let(:config) { { script: 'rspec' } } + + describe '#value' do + it 'returns key value' do + expect(entry.value).to eq(script: 'rspec') + end + end + + describe '#valid?' do + it 'is valid' do + expect(entry).to be_valid + end + end + end + + context 'when entry value is not correct' do + context 'incorrect config value type' do + let(:config) { ['incorrect'] } + + describe '#errors' do + it 'saves errors' do + expect(entry.errors) + .to include 'job config should be a hash' + end + end + end + end + end +end -- GitLab