diff options
Diffstat (limited to 'spec/lib/gitlab/ci/reports/test_case_spec.rb')
-rw-r--r-- | spec/lib/gitlab/ci/reports/test_case_spec.rb | 62 |
1 files changed, 16 insertions, 46 deletions
diff --git a/spec/lib/gitlab/ci/reports/test_case_spec.rb b/spec/lib/gitlab/ci/reports/test_case_spec.rb index 69fe05d573e..c0652288cca 100644 --- a/spec/lib/gitlab/ci/reports/test_case_spec.rb +++ b/spec/lib/gitlab/ci/reports/test_case_spec.rb @@ -4,21 +4,12 @@ require 'spec_helper' describe Gitlab::Ci::Reports::TestCase do describe '#initialize' do - let(:test_case) { described_class.new(**params)} + let(:test_case) { described_class.new(params)} context 'when both classname and name are given' do context 'when test case is passed' do - let(:params) do - { - name: 'test-1', - classname: 'trace', - file: 'spec/trace_spec.rb', - execution_time: 1.23, - status: described_class::STATUS_SUCCESS, - system_output: nil, - job: build(:ci_build) - } - end + let(:job) { build(:ci_build) } + let(:params) { attributes_for(:test_case).merge!(job: job) } it 'initializes an instance' do expect { test_case }.not_to raise_error @@ -34,16 +25,8 @@ describe Gitlab::Ci::Reports::TestCase do end context 'when test case is failed' do - let(:params) do - { - name: 'test-1', - classname: 'trace', - file: 'spec/trace_spec.rb', - execution_time: 1.23, - status: described_class::STATUS_FAILED, - system_output: "Failure/Error: is_expected.to eq(300) expected: 300 got: -100" - } - end + let(:job) { build(:ci_build) } + let(:params) { attributes_for(:test_case, :failed).merge!(job: job) } it 'initializes an instance' do expect { test_case }.not_to raise_error @@ -59,36 +42,23 @@ describe Gitlab::Ci::Reports::TestCase do end end - context 'when classname is missing' do - let(:params) do - { - name: 'test-1', - file: 'spec/trace_spec.rb', - execution_time: 1.23, - status: described_class::STATUS_SUCCESS, - system_output: nil - } - end + shared_examples 'param is missing' do |param| + let(:job) { build(:ci_build) } + let(:params) { attributes_for(:test_case).merge!(job: job) } it 'raises an error' do - expect { test_case }.to raise_error(ArgumentError) + params.delete(param) + + expect { test_case }.to raise_error(KeyError) end end - context 'when name is missing' do - let(:params) do - { - classname: 'trace', - file: 'spec/trace_spec.rb', - execution_time: 1.23, - status: described_class::STATUS_SUCCESS, - system_output: nil - } - end + context 'when classname is missing' do + it_behaves_like 'param is missing', :classname + end - it 'raises an error' do - expect { test_case }.to raise_error(ArgumentError) - end + context 'when name is missing' do + it_behaves_like 'param is missing', :name end context 'when attachment is present' do |