From 5cef50b67463bd587b1a5e1e33388956ca5e2c18 Mon Sep 17 00:00:00 2001 From: lukinovec Date: Fri, 14 Oct 2022 10:59:16 +0200 Subject: [PATCH] Update `migrate:fresh` test --- tests/CommandsTest.php | 50 ++++++++++++++++++++++++++++++++++++------ 1 file changed, 43 insertions(+), 7 deletions(-) diff --git a/tests/CommandsTest.php b/tests/CommandsTest.php index 828f2aee..01407db3 100644 --- a/tests/CommandsTest.php +++ b/tests/CommandsTest.php @@ -267,7 +267,9 @@ test('run command works when sub command asks questions and accepts arguments', expect($user->email)->toBe('email@localhost'); }); -test('migrate fresh command deletes tenant databases', function() { +test('migrate fresh command deletes tenant databases based on the tenancy.database.drop_tenant_databases_on_migrate_fresh config value', function() { + config(['tenancy.database.drop_tenant_databases_on_migrate_fresh' => false]); + /** @var Tenant[] $tenants */ $tenants = [ Tenant::create(), @@ -275,16 +277,50 @@ test('migrate fresh command deletes tenant databases', function() { Tenant::create(), ]; - foreach ($tenants as $tenant) { - expect($tenant->database()->manager()->databaseExists($tenant->database()->getName()))->toBeTrue(); - } + Artisan::call('migrate:fresh', [ + '--force' => true, + '--path' => __DIR__ . '/../assets/migrations', + '--realpath' => true, + ]); - pest()->artisan('migrate:fresh'); + $tenantDatabaseExists = fn(Tenant $tenant) => $tenant->database()->manager()->databaseExists($tenant->database()->getName()); foreach ($tenants as $tenant) { - expect($tenant->database()->manager()->databaseExists($tenant->database()->getName()))->toBeFalse(); + expect($tenantDatabaseExists($tenant))->toBeTrue(); } -}); + + pest()->artisan('migrate:fresh', [ + '--force' => true, + '--path' => __DIR__ . '/../assets/migrations', + '--realpath' => true, + ]); + + foreach ($tenants as $tenant) { + expect($tenantDatabaseExists($tenant))->toBeTrue(); + } + + config(['tenancy.database.drop_tenant_databases_on_migrate_fresh' => true]); + + $tenants = [ + Tenant::create(), + Tenant::create(), + Tenant::create(), + ]; + + foreach ($tenants as $tenant) { + expect($tenantDatabaseExists($tenant))->toBeTrue(); + } + + pest()->artisan('migrate:fresh', [ + '--force' => true, + '--path' => __DIR__ . '/../assets/migrations', + '--realpath' => true, + ]); + + foreach ($tenants as $tenant) { + expect($tenantDatabaseExists($tenant))->toBeFalse(); + } +})->group('fresh'); // todo@tests function runCommandWorks(): void