summaryrefslogtreecommitdiff
path: root/spec/integration/php
diff options
context:
space:
mode:
authormo khan <mo.khan@gmail.com>2020-08-04 14:09:32 +0000
committerCan Eldem <celdem@gitlab.com>2020-08-04 14:09:32 +0000
commitbfb3df178c451cebd0225fd2fd7985426f401df0 (patch)
tree6de477b9ac6312c3096b190873873b4650da9632 /spec/integration/php
parentab794b1050830a01f6fede765e9eb40cdbfcdc38 (diff)
Exclude dev dependencies
* Add test to install composer packages from custom TLS endpoint * Remove dev dependencies from fixture files * Install composer packages in vendor_path * Bump version and update CHANGELOG
Diffstat (limited to 'spec/integration/php')
-rw-r--r--spec/integration/php/composer_spec.rb92
1 files changed, 45 insertions, 47 deletions
diff --git a/spec/integration/php/composer_spec.rb b/spec/integration/php/composer_spec.rb
index 11ebdce..0fb09ee 100644
--- a/spec/integration/php/composer_spec.rb
+++ b/spec/integration/php/composer_spec.rb
@@ -1,13 +1,19 @@
require 'spec_helper'
RSpec.describe "composer" do
+ subject { runner.scan(env: env) }
+
+ let(:env) { {} }
+
+ before do
+ system("rm -rf /opt/asdf/installs/php/**/.composer")
+ end
+
include_examples "each report version", "php", "composer"
context "when the project's dependencies require php-gd e.g. in the case of Drupal" do
- subject { runner.scan }
-
before do
- runner.mount(dir: fixture_file('php/drupal-composer'))
+ runner.mount(dir: fixture_file('php/composer/drupal'))
end
it 'installs the required dependencies and produces a valid report' do
@@ -16,10 +22,6 @@ RSpec.describe "composer" do
expect(subject[:licenses]).not_to be_empty
expect(subject.dependency_names).to match_array(%w[
asm89/stack-cors
- behat/mink
- behat/mink-browserkit-driver
- behat/mink-goutte-driver
- behat/mink-selenium2-driver
brumann/polyfill-unserialize
composer/semver
doctrine/annotations
@@ -28,71 +30,33 @@ RSpec.describe "composer" do
doctrine/common
doctrine/event-manager
doctrine/inflector
- doctrine/instantiator
doctrine/lexer
doctrine/persistence
doctrine/reflection
- drupal/coder
easyrdf/easyrdf
egulias/email-validator
- fabpot/goutte
guzzlehttp/guzzle
guzzlehttp/promises
guzzlehttp/psr7
- instaclick/php-webdriver
- jcalderonzumba/gastonjs
- jcalderonzumba/mink-phantomjs-driver
- justinrainbow/json-schema
masterminds/html5
- mikey179/vfsstream
- myclabs/deep-copy
paragonie/random_compat
pear/archive_tar
pear/console_getopt
pear/pear-core-minimal
pear/pear_exception
- phar-io/manifest
- phar-io/version
- phpdocumentor/reflection-common
- phpdocumentor/reflection-docblock
- phpdocumentor/type-resolver
- phpspec/prophecy
- phpunit/php-code-coverage
- phpunit/php-file-iterator
- phpunit/php-text-template
- phpunit/php-timer
- phpunit/php-token-stream
- phpunit/phpunit
- phpunit/phpunit-mock-objects
psr/container
psr/http-message
psr/log
ralouphie/getallheaders
- sebastian/code-unit-reverse-lookup
- sebastian/comparator
- sebastian/diff
- sebastian/environment
- sebastian/exporter
- sebastian/global-state
- sebastian/object-enumerator
- sebastian/object-reflector
- sebastian/recursion-context
- sebastian/resource-operations
- sebastian/version
- squizlabs/php_codesniffer
stack/builder
symfony-cmf/routing
- symfony/browser-kit
symfony/class-loader
symfony/console
- symfony/css-selector
symfony/debug
symfony/dependency-injection
- symfony/dom-crawler
symfony/event-dispatcher
symfony/http-foundation
symfony/http-kernel
- symfony/phpunit-bridge
symfony/polyfill-ctype
symfony/polyfill-iconv
symfony/polyfill-intl-idn
@@ -109,10 +73,8 @@ RSpec.describe "composer" do
symfony/translation
symfony/validator
symfony/yaml
- theseer/tokenizer
twig/twig
typo3/phar-stream-wrapper
- webmozart/assert
zendframework/zend-diactoros
zendframework/zend-escaper
zendframework/zend-feed
@@ -120,4 +82,40 @@ RSpec.describe "composer" do
])
end
end
+
+ context "when fetching dependencies from a custom registry" do
+ before do
+ add_host('composer.test', '127.0.0.1')
+ start_proxy_server
+ runner.mount(dir: fixture_file('php/composer/custom-tls'))
+ end
+
+ context "when the CA certificate is provided" do
+ let(:env) { { 'ADDITIONAL_CA_CERT_BUNDLE' => x509_certificate('wildcard.test').read } }
+
+ specify do
+ expect(subject).to match_schema
+ expect(subject.dependency_names).to match_array(['monolog/monolog'])
+ expect(subject.licenses_for('monolog/monolog')).to match_array(['MIT'])
+ end
+ end
+
+ context "when the CA certificate is NOT provided" do
+ let(:env) { {} }
+
+ specify { expect(subject).to match_schema }
+ end
+ end
+
+ context "when scanning a project with dev dependencies" do
+ before do
+ runner.mount(dir: fixture_file('php/composer/dev-dependencies'))
+ end
+
+ it 'excludes the dev dependencies' do
+ expect(subject).to match_schema
+ expect(subject.dependency_names).to match_array(['monolog/monolog'])
+ expect(subject.licenses_for('monolog/monolog')).to match_array(['MIT'])
+ end
+ end
end