From bfb3df178c451cebd0225fd2fd7985426f401df0 Mon Sep 17 00:00:00 2001 From: mo khan Date: Tue, 4 Aug 2020 14:09:32 +0000 Subject: 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 --- spec/integration/php/composer_spec.rb | 92 +++++++++++++++++------------------ 1 file changed, 45 insertions(+), 47 deletions(-) (limited to 'spec/integration') 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 -- cgit v1.2.3