diff options
author | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2016-06-09 14:48:40 +0200 |
---|---|---|
committer | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2016-06-15 14:09:21 +0200 |
commit | 76aea978c6b2d8c69881836408c4947d816d2db2 (patch) | |
tree | 231523b9561d126567452eed913e583d2f49ab7c /spec/lib | |
parent | 3222c752e8134aa536917730b877292b84b94f00 (diff) | |
download | gitlab-ce-76aea978c6b2d8c69881836408c4947d816d2db2.tar.gz |
Add class that encapsulates error in new Ci config
Diffstat (limited to 'spec/lib')
-rw-r--r-- | spec/lib/ci/gitlab_ci_yaml_processor_spec.rb | 2 | ||||
-rw-r--r-- | spec/lib/gitlab/ci/config/node/error_spec.rb | 23 | ||||
-rw-r--r-- | spec/lib/gitlab/ci/config/node/factory_spec.rb | 10 | ||||
-rw-r--r-- | spec/lib/gitlab/ci/config/node/global_spec.rb | 8 | ||||
-rw-r--r-- | spec/lib/gitlab/ci/config/node/script_spec.rb | 2 | ||||
-rw-r--r-- | spec/lib/gitlab/ci/config_spec.rb | 6 |
6 files changed, 48 insertions, 3 deletions
diff --git a/spec/lib/ci/gitlab_ci_yaml_processor_spec.rb b/spec/lib/ci/gitlab_ci_yaml_processor_spec.rb index 5e1d2b8e4f5..40ee1eb64ca 100644 --- a/spec/lib/ci/gitlab_ci_yaml_processor_spec.rb +++ b/spec/lib/ci/gitlab_ci_yaml_processor_spec.rb @@ -820,7 +820,7 @@ EOT config = YAML.dump({ before_script: "bundle update", rspec: { script: "test" } }) expect do GitlabCiYamlProcessor.new(config, path) - end.to raise_error(GitlabCiYamlProcessor::ValidationError, "before_script should be an array of strings") + end.to raise_error(GitlabCiYamlProcessor::ValidationError, "before_script: should be an array of strings") end it "returns errors if job before_script parameter is not an array of strings" do diff --git a/spec/lib/gitlab/ci/config/node/error_spec.rb b/spec/lib/gitlab/ci/config/node/error_spec.rb new file mode 100644 index 00000000000..764fdfdb821 --- /dev/null +++ b/spec/lib/gitlab/ci/config/node/error_spec.rb @@ -0,0 +1,23 @@ +require 'spec_helper' + +describe Gitlab::Ci::Config::Node::Error do + let(:error) { described_class.new(message, parent) } + let(:message) { 'some error' } + let(:parent) { spy('parent') } + + before do + allow(parent).to receive(:key).and_return('parent_key') + end + + describe '#key' do + it 'returns underscored class name' do + expect(error.key).to eq 'parent_key' + end + end + + describe '#to_s' do + it 'returns valid error message' do + expect(error.to_s).to eq 'parent_key: some error' + end + end +end diff --git a/spec/lib/gitlab/ci/config/node/factory_spec.rb b/spec/lib/gitlab/ci/config/node/factory_spec.rb index d681aa32456..01a707a6bd4 100644 --- a/spec/lib/gitlab/ci/config/node/factory_spec.rb +++ b/spec/lib/gitlab/ci/config/node/factory_spec.rb @@ -25,6 +25,16 @@ describe Gitlab::Ci::Config::Node::Factory do expect(entry.description).to eq 'test description' end end + + context 'when setting key' do + it 'creates entry with custom key' do + entry = factory + .with(value: ['ls', 'pwd'], key: 'test key') + .create! + + expect(entry.key).to eq 'test key' + end + end end context 'when not setting value' do diff --git a/spec/lib/gitlab/ci/config/node/global_spec.rb b/spec/lib/gitlab/ci/config/node/global_spec.rb index b1972172435..89a7183b655 100644 --- a/spec/lib/gitlab/ci/config/node/global_spec.rb +++ b/spec/lib/gitlab/ci/config/node/global_spec.rb @@ -13,6 +13,12 @@ describe Gitlab::Ci::Config::Node::Global do end end + describe '#key' do + it 'returns underscored class name' do + expect(global.key).to eq 'global' + end + end + context 'when hash is valid' do let(:hash) do { before_script: ['ls', 'pwd'] } @@ -79,7 +85,7 @@ describe Gitlab::Ci::Config::Node::Global do describe '#errors' do it 'reports errors from child nodes' do expect(global.errors) - .to include 'before_script should be an array of strings' + .to include 'before_script: should be an array of strings' end end diff --git a/spec/lib/gitlab/ci/config/node/script_spec.rb b/spec/lib/gitlab/ci/config/node/script_spec.rb index e4d6481f8a5..ff7016046cc 100644 --- a/spec/lib/gitlab/ci/config/node/script_spec.rb +++ b/spec/lib/gitlab/ci/config/node/script_spec.rb @@ -34,7 +34,7 @@ describe Gitlab::Ci::Config::Node::Script do describe '#errors' do it 'saves errors' do expect(entry.errors) - .to include /should be an array of strings/ + .to include 'script: should be an array of strings' end end diff --git a/spec/lib/gitlab/ci/config_spec.rb b/spec/lib/gitlab/ci/config_spec.rb index 3871d939feb..2a5d132db7b 100644 --- a/spec/lib/gitlab/ci/config_spec.rb +++ b/spec/lib/gitlab/ci/config_spec.rb @@ -67,6 +67,12 @@ describe Gitlab::Ci::Config do expect(config.errors).not_to be_empty end end + + describe '#errors' do + it 'returns an array of strings' do + expect(config.errors).to all(be_an_instance_of(String)) + end + end end end end |