|
@@ -3,6 +3,7 @@
|
|
|
namespace Tests\Feature\Console;
|
|
|
|
|
|
use App\Console\Commands\Install;
|
|
|
+use Illuminate\Support\Facades\Artisan;
|
|
|
use Jackiedo\DotenvEditor\DotenvEditor;
|
|
|
use PHPUnit\Framework\Attributes\CoversClass;
|
|
|
use Tests\FeatureTestCase;
|
|
@@ -16,10 +17,21 @@ class InstallTest extends FeatureTestCase
|
|
|
/**
|
|
|
* @test
|
|
|
*/
|
|
|
+ const PASSPORT_PENDING_MIGRATIONS_CONFIRMATION = 'Would you like to run all pending database migrations?';
|
|
|
+
|
|
|
+ const PASSPORT_CREATE_CLIENTS_CONFIRMATION = 'Would you like to create the "personal access" and "password grant" clients?';
|
|
|
+
|
|
|
+ const TWOFAUTH_REVIEW_ENV_VAR_CONFIRMATION = 'Existing .env file found. Do you wish to review its vars?';
|
|
|
+
|
|
|
public function test_install_completes()
|
|
|
{
|
|
|
$this->artisan('2fauth:install')
|
|
|
- ->expectsConfirmation('Existing .env file found. Do you wish to review its vars?', 'no')
|
|
|
+ ->expectsConfirmation(self::TWOFAUTH_REVIEW_ENV_VAR_CONFIRMATION, 'no')
|
|
|
+ // 2 following confirmations have been introduced with Passport v12 and its auto-publishing
|
|
|
+ // migrations feature. Even if the '2fauth:install' command runs 'passport:install'
|
|
|
+ // silently, the 2 confirmations are triggered and needs to be handled in tests.
|
|
|
+ ->expectsConfirmation(self::PASSPORT_PENDING_MIGRATIONS_CONFIRMATION, 'yes')
|
|
|
+ ->expectsConfirmation(self::PASSPORT_CREATE_CLIENTS_CONFIRMATION, 'yes')
|
|
|
->assertSuccessful();
|
|
|
}
|
|
|
|
|
@@ -30,7 +42,9 @@ class InstallTest extends FeatureTestCase
|
|
|
{
|
|
|
$this->artisan('2fauth:install', ['--no-interaction' => true])
|
|
|
->expectsOutput('(Running in no-interaction mode)')
|
|
|
- ->expectsConfirmation('Existing .env file found. Do you wish to review its vars?', 'no')
|
|
|
+ ->expectsConfirmation(self::TWOFAUTH_REVIEW_ENV_VAR_CONFIRMATION, 'no')
|
|
|
+ ->expectsConfirmation(self::PASSPORT_PENDING_MIGRATIONS_CONFIRMATION, 'yes')
|
|
|
+ ->expectsConfirmation(self::PASSPORT_CREATE_CLIENTS_CONFIRMATION, 'yes')
|
|
|
->assertSuccessful();
|
|
|
}
|
|
|
|
|
@@ -44,7 +58,9 @@ class InstallTest extends FeatureTestCase
|
|
|
$this->assertEquals('', config('app.key'));
|
|
|
|
|
|
$this->artisan('2fauth:install')
|
|
|
- ->expectsConfirmation('Existing .env file found. Do you wish to review its vars?', 'no')
|
|
|
+ ->expectsConfirmation(self::TWOFAUTH_REVIEW_ENV_VAR_CONFIRMATION, 'no')
|
|
|
+ ->expectsConfirmation(self::PASSPORT_PENDING_MIGRATIONS_CONFIRMATION, 'yes')
|
|
|
+ ->expectsConfirmation(self::PASSPORT_CREATE_CLIENTS_CONFIRMATION, 'yes')
|
|
|
->assertSuccessful();
|
|
|
|
|
|
$this->assertNotEquals('', config('app.key'));
|
|
@@ -56,7 +72,9 @@ class InstallTest extends FeatureTestCase
|
|
|
public function test_install_gives_2fauth_address()
|
|
|
{
|
|
|
$this->artisan('2fauth:install')
|
|
|
- ->expectsConfirmation('Existing .env file found. Do you wish to review its vars?', 'no')
|
|
|
+ ->expectsConfirmation(self::TWOFAUTH_REVIEW_ENV_VAR_CONFIRMATION, 'no')
|
|
|
+ ->expectsConfirmation(self::PASSPORT_PENDING_MIGRATIONS_CONFIRMATION, 'yes')
|
|
|
+ ->expectsConfirmation(self::PASSPORT_CREATE_CLIENTS_CONFIRMATION, 'yes')
|
|
|
->expectsOutputToContain(config('app.url'))
|
|
|
->assertSuccessful();
|
|
|
}
|
|
@@ -67,7 +85,9 @@ class InstallTest extends FeatureTestCase
|
|
|
public function test_install_informs_about_sponsoring()
|
|
|
{
|
|
|
$this->artisan('2fauth:install')
|
|
|
- ->expectsConfirmation('Existing .env file found. Do you wish to review its vars?', 'no')
|
|
|
+ ->expectsConfirmation(self::TWOFAUTH_REVIEW_ENV_VAR_CONFIRMATION, 'no')
|
|
|
+ ->expectsConfirmation(self::PASSPORT_PENDING_MIGRATIONS_CONFIRMATION, 'yes')
|
|
|
+ ->expectsConfirmation(self::PASSPORT_CREATE_CLIENTS_CONFIRMATION, 'yes')
|
|
|
->expectsOutputToContain('https://ko-fi.com/bubka')
|
|
|
->expectsOutputToContain('https://github.com/sponsors/Bubka')
|
|
|
->assertSuccessful();
|