From bbd64b04d484792307ed58f847d86df5bcbe7440 Mon Sep 17 00:00:00 2001 From: mo khan Date: Wed, 16 Sep 2020 12:33:36 -0600 Subject: refactor: refactor gemnasium-maven tests to use shared context --- spec/gemnasium_maven_spec.rb | 32 ++++++++------------------------ spec/spotbugs_spec.rb | 19 ------------------- spec/support/scanner_context.rb | 21 +++++++++++++++++++++ 3 files changed, 29 insertions(+), 43 deletions(-) create mode 100644 spec/support/scanner_context.rb (limited to 'spec') diff --git a/spec/gemnasium_maven_spec.rb b/spec/gemnasium_maven_spec.rb index 85f7cae..2f61a77 100644 --- a/spec/gemnasium_maven_spec.rb +++ b/spec/gemnasium_maven_spec.rb @@ -2,31 +2,15 @@ require 'openssl' RSpec.describe 'gemnasium-maven' do ['8', '13', '11', '14'].each do |java_version| - context "when scanning a java #{java_version} project with a custom X509 CA certificate" do - subject do - docker.run(image: docker_image, project_path: project_path, env: env) - DependencyScanningReport.new(project_path: project_path) - end + let(:project_fixture) { 'java/maven/custom-tls' } + let(:report_type) { :dependency_scanning } + let(:env) { { 'ADDITIONAL_CA_CERT_BUNDLE' => X509.self_signed.to_pem, 'DS_JAVA_VERSION' => java_version } } - let(:docker) { Docker.new(pwd: Pathname.pwd.join('src/gemnasium-maven')) } - let(:project_path) { project.path } - let(:docker_image) { 'gemnasium-maven:latest' } - let(:env) { { 'ADDITIONAL_CA_CERT_BUNDLE' => x509.to_pem, 'DS_JAVA_VERSION' => java_version } } - let(:project) { Project.new } - let(:x509) { X509.self_signed } - - around(:example) do |example| - project.mount(dir: fixture_file('java/maven/custom-tls')) - example.run - project.cleanup - end - - specify do - expect(subject.to_h['dependency_files'].count).to eql(1) - expect(subject.to_h['dependency_files'][0]['dependencies'].count).to eql(1) - expect(subject.to_h['dependency_files'][0]['dependencies'][0]['package']['name']).to eql('com.fasterxml.jackson.core/jackson-core') - expect(subject.to_h['dependency_files'][0]['dependencies'][0]['version']).to eql('2.10.0') - end + specify do + expect(subject.to_h['dependency_files'].count).to eql(1) + expect(subject.to_h['dependency_files'][0]['dependencies'].count).to eql(1) + expect(subject.to_h['dependency_files'][0]['dependencies'][0]['package']['name']).to eql('com.fasterxml.jackson.core/jackson-core') + expect(subject.to_h['dependency_files'][0]['dependencies'][0]['version']).to eql('2.10.0') end end end diff --git a/spec/spotbugs_spec.rb b/spec/spotbugs_spec.rb index 4bad4ff..7706002 100644 --- a/spec/spotbugs_spec.rb +++ b/spec/spotbugs_spec.rb @@ -1,23 +1,4 @@ -RSpec.shared_context 'a scanner' do - subject { project.report_for(type: report_type) } - - let(:docker) { Docker.new(pwd: Pathname.pwd.join("src/#{scanner}")) } - let(:docker_image) { "#{scanner}:latest" } - let(:scanner) { self.class.description } - let(:project) { Project.new } - let(:report_type) { raise 'report_type not specified' } - - around :example do |example| - project.mount(dir: fixture_file(project_fixture)) - docker.run(image: docker_image, project_path: project.path) - example.run - project.cleanup - end -end - RSpec.describe 'spotbugs' do - include_context 'a scanner' - let(:project_fixture) { 'java/maven/custom-tls' } let(:report_type) { :sast } diff --git a/spec/support/scanner_context.rb b/spec/support/scanner_context.rb new file mode 100644 index 0000000..6a17835 --- /dev/null +++ b/spec/support/scanner_context.rb @@ -0,0 +1,21 @@ +RSpec.shared_context 'a scanner' do + subject { project.report_for(type: report_type) } + + let(:docker) { Docker.new(pwd: Pathname.pwd.join("src/#{scanner}")) } + let(:docker_image) { "#{scanner}:latest" } + let(:scanner) { self.class.description } + let(:project) { Project.new } + let(:report_type) { raise 'report_type not specified' } + let(:env) { { } } + + around :example do |example| + project.mount(dir: fixture_file(project_fixture)) + docker.run(image: docker_image, project_path: project.path, env: env) + example.run + project.cleanup + end +end + +RSpec.configure do |config| + config.include_context 'a scanner' +end -- cgit v1.2.3