summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/ci/reports/test_case_spec.rb
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-10-21 07:08:36 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-10-21 07:08:36 +0000
commit48aff82709769b098321c738f3444b9bdaa694c6 (patch)
treee00c7c43e2d9b603a5a6af576b1685e400410dee /spec/lib/gitlab/ci/reports/test_case_spec.rb
parent879f5329ee916a948223f8f43d77fba4da6cd028 (diff)
downloadgitlab-ce-48aff82709769b098321c738f3444b9bdaa694c6.tar.gz
Add latest changes from gitlab-org/gitlab@13-5-stable-eev13.5.0-rc42
Diffstat (limited to 'spec/lib/gitlab/ci/reports/test_case_spec.rb')
-rw-r--r--spec/lib/gitlab/ci/reports/test_case_spec.rb55
1 files changed, 23 insertions, 32 deletions
diff --git a/spec/lib/gitlab/ci/reports/test_case_spec.rb b/spec/lib/gitlab/ci/reports/test_case_spec.rb
index 7fb208213c1..a142846fc18 100644
--- a/spec/lib/gitlab/ci/reports/test_case_spec.rb
+++ b/spec/lib/gitlab/ci/reports/test_case_spec.rb
@@ -6,39 +6,26 @@ RSpec.describe Gitlab::Ci::Reports::TestCase do
describe '#initialize' do
let(:test_case) { described_class.new(params) }
- context 'when both classname and name are given' do
- context 'when test case is passed' do
- 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
-
- expect(test_case.name).to eq('test-1')
- expect(test_case.classname).to eq('trace')
- expect(test_case.file).to eq('spec/trace_spec.rb')
- expect(test_case.execution_time).to eq(1.23)
- expect(test_case.status).to eq(described_class::STATUS_SUCCESS)
- expect(test_case.system_output).to be_nil
- expect(test_case.job).to be_present
- end
- end
+ context 'when required params are given' do
+ let(:job) { build(:ci_build) }
+ let(:params) { attributes_for(:test_case).merge!(job: job) }
- context 'when test case is failed' do
- 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
-
- expect(test_case.name).to eq('test-1')
- expect(test_case.classname).to eq('trace')
- expect(test_case.file).to eq('spec/trace_spec.rb')
- expect(test_case.execution_time).to eq(1.23)
- expect(test_case.status).to eq(described_class::STATUS_FAILED)
- expect(test_case.system_output)
- .to eq('Failure/Error: is_expected.to eq(300) expected: 300 got: -100')
- end
+ it 'initializes an instance', :aggregate_failures do
+ expect { test_case }.not_to raise_error
+
+ expect(test_case).to have_attributes(
+ suite_name: params[:suite_name],
+ name: params[:name],
+ classname: params[:classname],
+ file: params[:file],
+ execution_time: params[:execution_time],
+ status: params[:status],
+ system_output: params[:system_output],
+ job: params[:job]
+ )
+
+ key = "#{test_case.suite_name}_#{test_case.classname}_#{test_case.name}"
+ expect(test_case.key).to eq(Digest::SHA256.hexdigest(key))
end
end
@@ -53,6 +40,10 @@ RSpec.describe Gitlab::Ci::Reports::TestCase do
end
end
+ context 'when suite_name is missing' do
+ it_behaves_like 'param is missing', :suite_name
+ end
+
context 'when classname is missing' do
it_behaves_like 'param is missing', :classname
end