summaryrefslogtreecommitdiff
path: root/spec/lib
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-06-09 14:48:40 +0200
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-06-15 14:09:21 +0200
commit76aea978c6b2d8c69881836408c4947d816d2db2 (patch)
tree231523b9561d126567452eed913e583d2f49ab7c /spec/lib
parent3222c752e8134aa536917730b877292b84b94f00 (diff)
downloadgitlab-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.rb2
-rw-r--r--spec/lib/gitlab/ci/config/node/error_spec.rb23
-rw-r--r--spec/lib/gitlab/ci/config/node/factory_spec.rb10
-rw-r--r--spec/lib/gitlab/ci/config/node/global_spec.rb8
-rw-r--r--spec/lib/gitlab/ci/config/node/script_spec.rb2
-rw-r--r--spec/lib/gitlab/ci/config_spec.rb6
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