diff options
Diffstat (limited to 'spec/support/with_scanner_context.rb')
| -rw-r--r-- | spec/support/with_scanner_context.rb | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/spec/support/with_scanner_context.rb b/spec/support/with_scanner_context.rb new file mode 100644 index 0000000..c9f167d --- /dev/null +++ b/spec/support/with_scanner_context.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true +RSpec.shared_context 'with 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) { raise "`scanner` not specified. Choose: #{Pathname.pwd.glob('src/*').map(&:basename).join(', ')}" } + let(:project) { Project.new } + let(:env) { {} } + let(:report_types) { { 'gemnasium-maven' => :dependency_scanning, 'spotbugs' => :sast } } + let(:report_type) { report_types.fetch(scanner) } + + around 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 'with scanner' +end |
