diff options
| author | mo khan <mo.khan@gmail.com> | 2020-03-04 11:03:04 -0700 |
|---|---|---|
| committer | mo khan <mo.khan@gmail.com> | 2020-03-04 11:03:04 -0700 |
| commit | 77bd1c9975fc2f12b457f4ca9990d788957af330 (patch) | |
| tree | f5dcc150ed88206129ad93776bb326e502254464 | |
| parent | 92003767408322277b043f4c64a305e1d893f958 (diff) | |
Extract shared example to convert QA jobs to integration tests
| -rw-r--r-- | .gitlab/qa.yml | 36 | ||||
| -rwxr-xr-x | bin/test-local | 2 | ||||
| -rw-r--r-- | spec/fixtures/expected/ruby/bundler/v1.0.json (renamed from spec/fixtures/expected/ruby-bundler-v1.json) | 0 | ||||
| -rw-r--r-- | spec/fixtures/expected/ruby/bundler/v1.1.json (renamed from spec/fixtures/expected/ruby-bundler-v1.1.json) | 0 | ||||
| -rw-r--r-- | spec/fixtures/expected/ruby/bundler/v2.0.json (renamed from spec/fixtures/expected/ruby-bundler-v2.json) | 0 | ||||
| -rw-r--r-- | spec/integration/java/gradle_spec.rb | 28 | ||||
| -rw-r--r-- | spec/integration/php/composer_spec.rb | 30 | ||||
| -rw-r--r-- | spec/integration/ruby/bundler_spec.rb | 2 | ||||
| -rw-r--r-- | spec/spec_helper.rb | 1 | ||||
| -rw-r--r-- | spec/support/shared.rb | 14 |
10 files changed, 46 insertions, 67 deletions
diff --git a/.gitlab/qa.yml b/.gitlab/qa.yml index 77b3529..e6af201 100644 --- a/.gitlab/qa.yml +++ b/.gitlab/qa.yml @@ -33,24 +33,6 @@ QA:java-maven-v2: LM_REPORT_VERSION: 2 QA_RESULTS: java-maven-v2 -#QA:java-gradle: - #extends: .QA - #variables: - #QA_PROJECT: java-gradle - #QA_REF: master - -#QA:java-gradle-v1-1: - #extends: QA:java-gradle - #variables: - #LM_REPORT_VERSION: '1.1' - #QA_RESULTS: java-gradle-v1.1 - -#QA:java-gradle-v2: - #extends: QA:java-gradle - #variables: - #LM_REPORT_VERSION: 2 - #QA_RESULTS: java-gradle-v2 - QA:python-pip: extends: .QA variables: @@ -108,24 +90,6 @@ QA:python3-pipenv-v2: LM_REPORT_VERSION: 2 QA_RESULTS: python-pipenv-v2 -QA:ruby-bundler: - extends: .QA - variables: - QA_PROJECT: ruby-bundler - QA_REF: master - -QA:ruby-bundler-v1-1: - extends: QA:ruby-bundler - variables: - LM_REPORT_VERSION: '1.1' - QA_RESULTS: ruby-bundler-v1.1 - -QA:ruby-bundler-v2: - extends: QA:ruby-bundler - variables: - LM_REPORT_VERSION: 2 - QA_RESULTS: ruby-bundler-v2 - QA:go: extends: .QA variables: diff --git a/bin/test-local b/bin/test-local index 4111eb5..75bfc39 100755 --- a/bin/test-local +++ b/bin/test-local @@ -11,5 +11,5 @@ if [ -z "$LM_HOME" ]; then docker run --rm --env LICENSE_FINDER_CLI_OPTS --volume "$PROJECT_PATH":/code "$IMAGE_NAME" analyze /code else - bash -l ./run.sh analyze "$PROJECT_PATH" + /run.sh analyze "$PROJECT_PATH" fi diff --git a/spec/fixtures/expected/ruby-bundler-v1.json b/spec/fixtures/expected/ruby/bundler/v1.0.json index c66a9a3..c66a9a3 100644 --- a/spec/fixtures/expected/ruby-bundler-v1.json +++ b/spec/fixtures/expected/ruby/bundler/v1.0.json diff --git a/spec/fixtures/expected/ruby-bundler-v1.1.json b/spec/fixtures/expected/ruby/bundler/v1.1.json index 7bfd775..7bfd775 100644 --- a/spec/fixtures/expected/ruby-bundler-v1.1.json +++ b/spec/fixtures/expected/ruby/bundler/v1.1.json diff --git a/spec/fixtures/expected/ruby-bundler-v2.json b/spec/fixtures/expected/ruby/bundler/v2.0.json index 230bd2c..230bd2c 100644 --- a/spec/fixtures/expected/ruby-bundler-v2.json +++ b/spec/fixtures/expected/ruby/bundler/v2.0.json diff --git a/spec/integration/java/gradle_spec.rb b/spec/integration/java/gradle_spec.rb index 4dabbfa..9bdc949 100644 --- a/spec/integration/java/gradle_spec.rb +++ b/spec/integration/java/gradle_spec.rb @@ -1,6 +1,8 @@ require 'spec_helper' RSpec.describe "gradle" do + include_examples "each report version", "java", "gradle" + context "when running a default gradle build" do it 'scans a gradle project' do content = <<~GRADLE @@ -74,20 +76,16 @@ plugins { end end - [ - { version: '1.0', expected: 'expected/java/gradle/v1.0.json' }, - { version: '1.1', expected: 'expected/java/gradle/v1.1.json' }, - { version: '2.0', expected: 'expected/java/gradle/v2.0.json' }, - ].each do |data| - context "when generating a `#{data[:version]}` report" do - let(:url) { 'https://gitlab.com/gitlab-org/security-products/tests/java-gradle.git' } + #[ '1.0', '1.1', '2.0' ].each do |version| + #context "when generating a `#{version}` report" do + #let(:url) { 'https://gitlab.com/gitlab-org/security-products/tests/java-gradle.git' } - it 'matches the expected report' do - runner.clone(url) - report = runner.scan(env: { 'LM_REPORT_VERSION' => data[:version] }) - #expect(report).to match_schema(version: data[:version]) - expect(report).to eql(fixture_file(data[:expected])) - end - end - end + #it 'matches the expected report' do + #runner.clone(url) + #report = runner.scan(env: { 'LM_REPORT_VERSION' => version }) + ##expect(report).to match_schema(version: version) + #expect(report).to eql(fixture_file("expected/java/gradle/v#{version}.json")) + #end + #end + #end end diff --git a/spec/integration/php/composer_spec.rb b/spec/integration/php/composer_spec.rb index cc89a70..271730c 100644 --- a/spec/integration/php/composer_spec.rb +++ b/spec/integration/php/composer_spec.rb @@ -1,6 +1,8 @@ require 'spec_helper' RSpec.describe "composer" do + include_examples "each report version", "php", "composer" + context "when the project's dependencies require php-gd e.g. in the case of Drupal" do it 'installs the required dependencies and produces a valid report' do # composer.json from https://git.drupalcode.org/project/drupal/raw/8.7.x/core/composer.json @@ -116,20 +118,18 @@ RSpec.describe "composer" do end end - [ - { version: '1.0', expected: 'expected/php/composer/v1.0.json' }, - { version: '1.1', expected: 'expected/php/composer/v1.1.json' }, - { version: '2.0', expected: 'expected/php/composer/v2.0.json' }, - ].each do |data| - context "when generating a `#{data[:version]}` report" do - let(:url) { 'https://gitlab.com/gitlab-org/security-products/tests/php-composer.git' } + #[ '1.0', '1.1', '2.0' ].each do |version| + #context "when generating a `#{version}` report" do + #let(:language) { 'php' } + #let(:package_manager) { 'composer' } + #let(:url) { "https://gitlab.com/gitlab-org/security-products/tests/#{language}-#{package_manager}.git" } - it 'matches the expected report' do - runner.clone(url) - report = runner.scan(env: { 'LM_REPORT_VERSION' => data[:version] }) - #expect(report).to match_schema(version: data[:version]) - expect(report).to eql(fixture_file(data[:expected])) - end - end - end + #it 'matches the expected report' do + #runner.clone(url) + #report = runner.scan(env: { 'LM_REPORT_VERSION' => version }) + ##expect(report).to match_schema(version: version) + #expect(report).to eql(fixture_file("expected/#{language}/#{package_manager}/v#{version}.json")) + #end + #end + #end end diff --git a/spec/integration/ruby/bundler_spec.rb b/spec/integration/ruby/bundler_spec.rb index d9b9c85..1245563 100644 --- a/spec/integration/ruby/bundler_spec.rb +++ b/spec/integration/ruby/bundler_spec.rb @@ -1,6 +1,8 @@ require 'spec_helper' RSpec.describe "bundler" do + include_examples "each report version", "ruby", "bundler" + context "when the project depends on an older version of ruby specified in a `.ruby-version` file" do it 'installs the required ruby and produces a valid report' do runner.add_file('.ruby-version', 'ruby-2.4.9') diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 15c9dad..3dff16a 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -5,6 +5,7 @@ require 'json-schema' require 'support/fixture_file_helper' require 'support/integration_test_helper' require 'support/matchers' +require 'support/shared' RSpec.configure do |config| config.include FixtureFileHelper diff --git a/spec/support/shared.rb b/spec/support/shared.rb new file mode 100644 index 0000000..5379816 --- /dev/null +++ b/spec/support/shared.rb @@ -0,0 +1,14 @@ +RSpec.shared_examples "each report version" do |language, package_manager| + [ '1.0', '1.1', '2.0' ].each do |version| + context "when generating a `#{version}` report" do + let(:url) { "https://gitlab.com/gitlab-org/security-products/tests/#{language}-#{package_manager}.git" } + + it 'matches the expected report' do + runner.clone(url) + report = runner.scan(env: { 'LM_REPORT_VERSION' => version }) + #expect(report).to match_schema(version: version) + expect(report).to eql(fixture_file("expected/#{language}/#{package_manager}/v#{version}.json")) + end + end + end +end |
