Skip to content

Commit

Permalink
ACMS-3964: Fix failing drs:init:settings command.
Browse files Browse the repository at this point in the history
  • Loading branch information
vishalkhode1 committed Jul 2, 2024
1 parent 37ed0b3 commit 08bec77
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 26 deletions.
10 changes: 5 additions & 5 deletions src/Config/ConfigInitializer.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
namespace Acquia\Drupal\RecommendedSettings\Config;

use Acquia\Drupal\RecommendedSettings\Helpers\EnvironmentDetector;
use Consolidation\Config\Config;
use Consolidation\Config\ConfigInterface;
use Consolidation\Config\Loader\YamlConfigLoader;
use Drush\Config\DrushConfig;
use Symfony\Component\Console\Input\InputInterface;

/**
Expand All @@ -18,7 +18,7 @@ class ConfigInitializer {
/**
* Config.
*/
protected Config $config;
protected DrushConfig $config;

/**
* Loader.
Expand All @@ -43,7 +43,7 @@ class ConfigInitializer {
/**
* ConfigInitializer constructor.
*
* @param \Consolidation\Config\ConfigInterface|\Consolidation\Config\Config $config
* @param \Consolidation\Config\ConfigInterface|\Drush\Config\DrushConfig $config
* The config object.
* @param \Symfony\Component\Console\Input\InputInterface|null $input
* An input object or null.
Expand Down Expand Up @@ -147,7 +147,7 @@ protected function loadSiteConfig(): ConfigInitializer {
* @param string[] $data
* An array of data.
*/
public function addConfig(array $data): Config {
public function addConfig(array $data): DrushConfig {
$this->processor->add($data);
return $this->config;
}
Expand All @@ -170,7 +170,7 @@ protected function determineEnvironment(): string {
/**
* Process config.
*/
public function processConfig(): Config {
public function processConfig(): DrushConfig {
$this->config->replace($this->processor->export());
return $this->config;
}
Expand Down
4 changes: 2 additions & 2 deletions src/Config/DefaultConfig.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@

namespace Acquia\Drupal\RecommendedSettings\Config;

use Consolidation\Config\Config;
#use Consolidation\Config\Config;

/**
* The configuration for settings.
*/
class DefaultConfig extends Config {
class DefaultConfig extends DefaultDrushConfig {

/**
* Config Constructor.
Expand Down
28 changes: 19 additions & 9 deletions src/Config/DefaultDrushConfig.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,19 @@ class DefaultDrushConfig extends DrushConfig {
* @param \Drush\Config\DrushConfig $config
* The drush config object.
*/
public function __construct(DrushConfig $config) {
public function __construct(?DrushConfig $config = NULL) {
parent::__construct();
$this->set('repo.root', $config->get("runtime.project"));
$this->set('docroot', $config->get("options.root"));
$this->set('composer.bin', $config->get("drush.vendor-dir") . '/bin');
if ($config->get("options.ansi") !== NULL) {
$this->set('drush.ansi', $config->get("options.ansi"));
if ($config) {
$this->set('repo.root', $config->get("runtime.project"));
$this->set('docroot', $config->get("options.root"));
$this->set('composer.bin', $config->get("drush.vendor-dir") . '/bin');
if ($config->get("options.ansi") !== NULL) {
$this->set('drush.ansi', $config->get("options.ansi"));
}
$this->set('drush.bin', $config->get("runtime.drush-script"));
$this->setDefault('drush.alias', "self");
$this->combine($config->export());
}
$this->set('drush.bin', $config->get("runtime.drush-script"));
$this->setDefault('drush.alias', "self");
$this->combine($config->export());
}

/**
Expand All @@ -36,4 +38,12 @@ public function combine($data) {
return $this;
}

/**
* {@inheritdoc}
*/
public function replace($data) {
$this->getContext(self::PROCESS_CONTEXT)->replace($data);
return $this;
}

}
20 changes: 10 additions & 10 deletions tests/src/Functional/Config/ConfigInitializerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
namespace Acquia\Drupal\RecommendedSettings\Tests\Functional\Config;

use Acquia\Drupal\RecommendedSettings\Config\ConfigInitializer;
use Acquia\Drupal\RecommendedSettings\Config\DefaultDrushConfig;
use Acquia\Drupal\RecommendedSettings\Tests\FunctionalTestBase;
use Consolidation\Config\Config;
use Symfony\Component\Console\Input\InputDefinition;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Input\StringInput;
Expand All @@ -22,7 +22,7 @@ class ConfigInitializerTest extends FunctionalTestBase {
* @throws \ReflectionException
*/
public function testSetSite(): void {
$config = new Config();
$config = new DefaultDrushConfig();
$config_initializer = new ConfigInitializer($config);

$method = $this->getReflectionMethod($config_initializer::class, "setSite");
Expand All @@ -46,7 +46,7 @@ public function testSetSite(): void {
* @throws \ReflectionException
*/
public function testDetermineSite(): void {
$config = new Config();
$config = new DefaultDrushConfig();
$config_initializer = new ConfigInitializer($config);
$method = $this->getReflectionMethod($config_initializer::class, "determineSite");
$result = $method->invoke($config_initializer);
Expand Down Expand Up @@ -74,7 +74,7 @@ public function testDetermineSite(): void {
*/
public function testDetermineEnvironment(): void {
putenv("CI=");
$config = new Config();
$config = new DefaultDrushConfig();
$config_initializer = new ConfigInitializer($config);
$method = $this->getReflectionMethod($config_initializer::class, "determineEnvironment");
$result = $method->invoke($config_initializer);
Expand All @@ -85,7 +85,7 @@ public function testDetermineEnvironment(): void {
$this->assertSame("ci", $result);
putenv("CI=");

$config = new Config();
$config = new DefaultDrushConfig();
$config->set("environment", "dev");
$config_initializer = new ConfigInitializer($config);
$method = $this->getReflectionMethod($config_initializer::class, "determineEnvironment");
Expand All @@ -98,7 +98,7 @@ public function testDetermineEnvironment(): void {
*/
public function testInitialize(): void {
putenv("CI=");
$config = new Config();
$config = new DefaultDrushConfig();
$config_initializer = new ConfigInitializer($config);
$config_initializer->initialize();
$this->assertEquals($config_initializer->processConfig()->export(), [
Expand All @@ -122,7 +122,7 @@ public function testInitialize(): void {
]);

putenv("CI=true");
$config = new Config();
$config = new DefaultDrushConfig();
$config_initializer = new ConfigInitializer($config);
$config_initializer->initialize();

Expand All @@ -141,7 +141,7 @@ public function testInitialize(): void {
*/
public function testLoadAllConfig(): void {
putenv("CI=");
$config = new Config();
$config = new DefaultDrushConfig();
$config_initializer = new ConfigInitializer($config);
$config = $config_initializer->initialize()->loadAllConfig()->processConfig();
$this->assertEquals($config->export(), [
Expand All @@ -161,7 +161,7 @@ public function testLoadAllConfig(): void {
],
]);

$config = new Config();
$config = new DefaultDrushConfig();
$project_root = $this->getProjectRoot();
$drupal_root = $this->getDrupalRoot();
$config->set("repo.root", $project_root);
Expand Down Expand Up @@ -191,7 +191,7 @@ public function testLoadAllConfig(): void {
],
]);

$config = new Config();
$config = new DefaultDrushConfig();
$config->set("repo.root", $project_root);
$config->set("docroot", $this->getDrupalRoot());
$config_initializer = new ConfigInitializer($config);
Expand Down

0 comments on commit 08bec77

Please sign in to comment.