summaryrefslogtreecommitdiff
path: root/spec/support/shared.rb
blob: 14f2ba98ba8f6e6d7e1ada2aa2616991c1319605 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# frozen_string_literal: true

RSpec.shared_examples 'each report version' do |language, package_manager, branch = 'master'|
  context "when generating a 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}/v2.0.json")) }

    before do
      runner.clone(url, branch: branch)
    end

    it 'matches the expected report' do
      actual = runner.scan

      expect(JSON.pretty_generate(actual.to_h)).to eq(JSON.pretty_generate(expected_content))
      expect(actual).to match_schema(version: '2.0')
    end
  end
end