summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormo khan <mo.khan@gmail.com>2020-03-04 11:03:04 -0700
committermo khan <mo.khan@gmail.com>2020-03-04 11:03:04 -0700
commit77bd1c9975fc2f12b457f4ca9990d788957af330 (patch)
treef5dcc150ed88206129ad93776bb326e502254464
parent92003767408322277b043f4c64a305e1d893f958 (diff)
Extract shared example to convert QA jobs to integration tests
-rw-r--r--.gitlab/qa.yml36
-rwxr-xr-xbin/test-local2
-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.rb28
-rw-r--r--spec/integration/php/composer_spec.rb30
-rw-r--r--spec/integration/ruby/bundler_spec.rb2
-rw-r--r--spec/spec_helper.rb1
-rw-r--r--spec/support/shared.rb14
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