Commit f8bec0d1 authored by Leandro Camargo's avatar Leandro Camargo

Improve specs styles/organization and add some more specs

parent 6323cd72
......@@ -20,7 +20,7 @@ module Ci
it { is_expected.to include(coverage_regex: '\(\d+\.\d+\) covered') }
end
context 'but \'rspec\' job also has coverage set' do
context "but 'rspec' job also has coverage set" do
before do
config_base[:rspec][:coverage] = '/Code coverage: \d+\.\d+/'
end
......
......@@ -4,12 +4,31 @@ describe Gitlab::Ci::Config::Entry::Coverage do
let(:entry) { described_class.new(config) }
describe 'validations' do
context 'when entry config value is correct' do
context "when entry config value is correct without surrounding '/'" do
let(:config) { 'Code coverage: \d+\.\d+' }
describe '#value' do
subject { entry.value }
it { is_expected.to eq config }
it { is_expected.to eq(config) }
end
describe '#errors' do
subject { entry.errors }
it { is_expected.to be_empty }
end
describe '#valid?' do
subject { entry }
it { is_expected.to be_valid }
end
end
context "when entry config value is correct with surrounding '/'" do
let(:config) { '/Code coverage: \d+\.\d+/' }
describe '#value' do
subject { entry.value }
it { is_expected.to eq(config[1...-1]) }
end
describe '#errors' do
......@@ -28,7 +47,7 @@ describe Gitlab::Ci::Config::Entry::Coverage do
describe '#errors' do
subject { entry.errors }
it { is_expected.to include /coverage config must be a regular expression/ }
it { is_expected.to include(/coverage config must be a regular expression/) }
end
describe '#valid?' do
......
......@@ -4,19 +4,17 @@ describe Gitlab::Ci::Config::Entry::Global do
let(:global) { described_class.new(hash) }
describe '.nodes' do
subject { described_class.nodes }
it { is_expected.to be_a Hash }
it 'returns a hash' do
expect(described_class.nodes).to be_a(Hash)
end
context 'when filtering all the entry/node names' do
subject { described_class.nodes.keys }
let(:result) do
%i[before_script image services after_script variables stages types
cache coverage]
it 'contains the expected node names' do
node_names = described_class.nodes.keys
expect(node_names).to match_array(%i[before_script image services
after_script variables stages
types cache coverage])
end
it { is_expected.to match_array result }
end
end
......
......@@ -251,12 +251,13 @@ describe Ci::Build, :models do
end
describe '#update_coverage' do
it 'grants coverage_regex method is called inside of it' do
build.coverage_regex = '\(\d+.\d+\%\) covered'
allow(build).to receive(:trace) { 'Coverage 1033 / 1051 LOC (98.29%) covered' }
allow(build).to receive(:coverage_regex).and_call_original
expect(build).to receive(:update_attributes).with(coverage: 98.29) { true }
expect(build.update_coverage).to be true
context "regarding coverage_regex's value," do
it "saves the correct extracted coverage value" do
build.coverage_regex = '\(\d+.\d+\%\) covered'
allow(build).to receive(:trace) { 'Coverage 1033 / 1051 LOC (98.29%) covered' }
expect(build).to receive(:update_attributes).with(coverage: 98.29) { true }
expect(build.update_coverage).to be true
end
end
end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment