summaryrefslogtreecommitdiff
path: root/spec/support/shared.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/support/shared.rb')
-rw-r--r--spec/support/shared.rb19
1 files changed, 19 insertions, 0 deletions
diff --git a/spec/support/shared.rb b/spec/support/shared.rb
new file mode 100644
index 0000000..51b161a
--- /dev/null
+++ b/spec/support/shared.rb
@@ -0,0 +1,19 @@
+RSpec.shared_examples "each report version" do |language, package_manager, branch = 'master'|
+ ['1.0', '1.1', '2.0'].each do |version|
+ context "when generating a `#{version}` report for #{package_manager}" do
+ let(:url) { "https://gitlab.com/gitlab-org/security-products/tests/#{language}-#{package_manager}.git" }
+ let(:expected_content) { JSON.parse(fixture_file_content("expected/#{language}/#{package_manager}/v#{version}.json")) }
+
+ before do
+ runner.clone(url, branch: branch)
+ end
+
+ it 'matches the expected report' do
+ actual = runner.scan(env: { 'LM_REPORT_VERSION' => version })
+
+ expect(JSON.pretty_generate(actual.to_h)).to eq(JSON.pretty_generate(expected_content))
+ expect(actual).to match_schema(version: version)
+ end
+ end
+ end
+end