function UnpackRecipeTest::testIgnoreRecipe
Tests a recipe can be ignored and not unpacked.
File
-
core/
tests/ Drupal/ Tests/ Composer/ Plugin/ Unpack/ Functional/ UnpackRecipeTest.php, line 439
Class
- UnpackRecipeTest
- Tests recipe unpacking.
Namespace
Drupal\Tests\Composer\Plugin\Unpack\FunctionalCode
public function testIgnoreRecipe() : void {
$root_project_path = $this->fixturesDir . '/composer-root';
// Disable automatic unpacking as it is the default behavior,
$this->runComposer('config --merge --json extra.drupal-recipe-unpack.ignore \'["fixtures/recipe-a"]\'');
$this->runComposer('install');
// Install a recipe and ensure it does not get unpacked.
$stdOut = $this->runComposer('require --verbose fixtures/recipe-a');
$root_composer_json = $this->getFileContents($root_project_path . '/composer.json');
$this->assertSame("fixtures/recipe-a not unpacked because it is ignored.", trim($stdOut));
$this->assertSame([
'composer/installers',
'drupal/core-recipe-unpack',
'fixtures/recipe-a',
], array_keys($root_composer_json['require']));
// Ensure the resulting Composer files are valid.
$this->runComposer('validate');
// Try using the unpack command on an ignored recipe.
try {
$this->runComposer('drupal:recipe-unpack fixtures/recipe-a');
$this->fail('Ignored recipes should not be unpacked.');
} catch (\RuntimeException $e) {
$this->assertStringContainsString('fixtures/recipe-a is in the extra.drupal-recipe-unpack.ignore list.', $e->getMessage());
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.