Improve specs styles/organization and add some more specs
This commit is contained in:
parent
6323cd7203
commit
f8bec0d1fb
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue