From 637dc4bb21edf8f3b0b0926aa50fa5ffdf362db8 Mon Sep 17 00:00:00 2001 From: Jeremy Benoist Date: Mon, 11 Apr 2016 19:37:29 +0200 Subject: [PATCH] Move setup config outside setupAdmin If user doesn't want to create a new admin (even if it's recommended) the internal config weren't created resulting in error when using the interface. --- .../CoreBundle/Command/InstallCommand.php | 19 +++++-- .../Tests/Command/InstallCommandTest.php | 54 ++++++++++--------- 2 files changed, 45 insertions(+), 28 deletions(-) diff --git a/src/Wallabag/CoreBundle/Command/InstallCommand.php b/src/Wallabag/CoreBundle/Command/InstallCommand.php index 2e4a59dfd..e56ee4af0 100644 --- a/src/Wallabag/CoreBundle/Command/InstallCommand.php +++ b/src/Wallabag/CoreBundle/Command/InstallCommand.php @@ -60,6 +60,7 @@ class InstallCommand extends ContainerAwareCommand ->checkRequirements() ->setupDatabase() ->setupAdmin() + ->setupConfig() ->setupAsset() ; @@ -69,7 +70,7 @@ class InstallCommand extends ContainerAwareCommand protected function checkRequirements() { - $this->defaultOutput->writeln('Step 1 of 4. Checking system requirements.'); + $this->defaultOutput->writeln('Step 1 of 5. Checking system requirements.'); $fulfilled = true; @@ -119,7 +120,7 @@ class InstallCommand extends ContainerAwareCommand protected function setupDatabase() { - $this->defaultOutput->writeln('Step 2 of 4. Setting up database.'); + $this->defaultOutput->writeln('Step 2 of 5. Setting up database.'); // user want to reset everything? Don't care about what is already here if (true === $this->defaultInput->getOption('reset')) { @@ -190,7 +191,7 @@ class InstallCommand extends ContainerAwareCommand protected function setupAdmin() { - $this->defaultOutput->writeln('Step 3 of 4. Administration setup.'); + $this->defaultOutput->writeln('Step 3 of 5. Administration setup.'); $questionHelper = $this->getHelperSet()->get('question'); $question = new ConfirmationQuestion('Would you like to create a new admin user (recommended) ? (Y/n)', true); @@ -227,6 +228,16 @@ class InstallCommand extends ContainerAwareCommand $em->persist($config); + $this->defaultOutput->writeln(''); + + return $this; + } + + protected function setupConfig() + { + $this->defaultOutput->writeln('Step 4 of 5. Config setup.'); + $em = $this->getContainer()->get('doctrine.orm.entity_manager'); + // cleanup before insert new stuff $em->createQuery('DELETE FROM CraueConfigBundle:Setting')->execute(); @@ -365,7 +376,7 @@ class InstallCommand extends ContainerAwareCommand protected function setupAsset() { - $this->defaultOutput->writeln('Step 4 of 4. Installing assets.'); + $this->defaultOutput->writeln('Step 5 of 5. Installing assets.'); $this ->runCommand('assets:install') diff --git a/src/Wallabag/CoreBundle/Tests/Command/InstallCommandTest.php b/src/Wallabag/CoreBundle/Tests/Command/InstallCommandTest.php index bb8fb8888..bd61f750a 100644 --- a/src/Wallabag/CoreBundle/Tests/Command/InstallCommandTest.php +++ b/src/Wallabag/CoreBundle/Tests/Command/InstallCommandTest.php @@ -67,10 +67,11 @@ class InstallCommandTest extends WallabagCoreTestCase 'command' => $command->getName(), )); - $this->assertContains('Step 1 of 4. Checking system requirements.', $tester->getDisplay()); - $this->assertContains('Step 2 of 4. Setting up database.', $tester->getDisplay()); - $this->assertContains('Step 3 of 4. Administration setup.', $tester->getDisplay()); - $this->assertContains('Step 4 of 4. Installing assets.', $tester->getDisplay()); + $this->assertContains('Checking system requirements.', $tester->getDisplay()); + $this->assertContains('Setting up database.', $tester->getDisplay()); + $this->assertContains('Administration setup.', $tester->getDisplay()); + $this->assertContains('Config setup.', $tester->getDisplay()); + $this->assertContains('Installing assets.', $tester->getDisplay()); } public function testRunInstallCommandWithReset() @@ -97,11 +98,12 @@ class InstallCommandTest extends WallabagCoreTestCase '--reset' => true, )); - $this->assertContains('Step 1 of 4. Checking system requirements.', $tester->getDisplay()); - $this->assertContains('Step 2 of 4. Setting up database.', $tester->getDisplay()); + $this->assertContains('Checking system requirements.', $tester->getDisplay()); + $this->assertContains('Setting up database.', $tester->getDisplay()); $this->assertContains('Droping database, creating database and schema, clearing the cache', $tester->getDisplay()); - $this->assertContains('Step 3 of 4. Administration setup.', $tester->getDisplay()); - $this->assertContains('Step 4 of 4. Installing assets.', $tester->getDisplay()); + $this->assertContains('Administration setup.', $tester->getDisplay()); + $this->assertContains('Config setup.', $tester->getDisplay()); + $this->assertContains('Installing assets.', $tester->getDisplay()); // we force to reset everything $this->assertContains('Droping database, creating database and schema, clearing the cache', $tester->getDisplay()); @@ -142,10 +144,11 @@ class InstallCommandTest extends WallabagCoreTestCase 'command' => $command->getName(), )); - $this->assertContains('Step 1 of 4. Checking system requirements.', $tester->getDisplay()); - $this->assertContains('Step 2 of 4. Setting up database.', $tester->getDisplay()); - $this->assertContains('Step 3 of 4. Administration setup.', $tester->getDisplay()); - $this->assertContains('Step 4 of 4. Installing assets.', $tester->getDisplay()); + $this->assertContains('Checking system requirements.', $tester->getDisplay()); + $this->assertContains('Setting up database.', $tester->getDisplay()); + $this->assertContains('Administration setup.', $tester->getDisplay()); + $this->assertContains('Config setup.', $tester->getDisplay()); + $this->assertContains('Installing assets.', $tester->getDisplay()); // the current database doesn't already exist $this->assertContains('Creating database and schema, clearing the cache', $tester->getDisplay()); @@ -179,10 +182,11 @@ class InstallCommandTest extends WallabagCoreTestCase 'command' => $command->getName(), )); - $this->assertContains('Step 1 of 4. Checking system requirements.', $tester->getDisplay()); - $this->assertContains('Step 2 of 4. Setting up database.', $tester->getDisplay()); - $this->assertContains('Step 3 of 4. Administration setup.', $tester->getDisplay()); - $this->assertContains('Step 4 of 4. Installing assets.', $tester->getDisplay()); + $this->assertContains('Checking system requirements.', $tester->getDisplay()); + $this->assertContains('Setting up database.', $tester->getDisplay()); + $this->assertContains('Administration setup.', $tester->getDisplay()); + $this->assertContains('Config setup.', $tester->getDisplay()); + $this->assertContains('Installing assets.', $tester->getDisplay()); $this->assertContains('Droping schema and creating schema', $tester->getDisplay()); } @@ -233,10 +237,11 @@ class InstallCommandTest extends WallabagCoreTestCase 'command' => $command->getName(), )); - $this->assertContains('Step 1 of 4. Checking system requirements.', $tester->getDisplay()); - $this->assertContains('Step 2 of 4. Setting up database.', $tester->getDisplay()); - $this->assertContains('Step 3 of 4. Administration setup.', $tester->getDisplay()); - $this->assertContains('Step 4 of 4. Installing assets.', $tester->getDisplay()); + $this->assertContains('Checking system requirements.', $tester->getDisplay()); + $this->assertContains('Setting up database.', $tester->getDisplay()); + $this->assertContains('Administration setup.', $tester->getDisplay()); + $this->assertContains('Config setup.', $tester->getDisplay()); + $this->assertContains('Installing assets.', $tester->getDisplay()); $this->assertContains('Creating schema', $tester->getDisplay()); } @@ -265,9 +270,10 @@ class InstallCommandTest extends WallabagCoreTestCase '--no-interaction' => true, )); - $this->assertContains('Step 1 of 4. Checking system requirements.', $tester->getDisplay()); - $this->assertContains('Step 2 of 4. Setting up database.', $tester->getDisplay()); - $this->assertContains('Step 3 of 4. Administration setup.', $tester->getDisplay()); - $this->assertContains('Step 4 of 4. Installing assets.', $tester->getDisplay()); + $this->assertContains('Checking system requirements.', $tester->getDisplay()); + $this->assertContains('Setting up database.', $tester->getDisplay()); + $this->assertContains('Administration setup.', $tester->getDisplay()); + $this->assertContains('Config setup.', $tester->getDisplay()); + $this->assertContains('Installing assets.', $tester->getDisplay()); } }