diff --git a/src/Commands/TenantDump.php b/src/Commands/TenantDump.php index 3f957bdd..b02af71f 100644 --- a/src/Commands/TenantDump.php +++ b/src/Commands/TenantDump.php @@ -41,7 +41,7 @@ class TenantDump extends DumpCommand return 1; } - parent::handle($connections, $dispatcher); + $tenant->run(fn () => parent::handle($connections, $dispatcher)); return 0; } diff --git a/tests/CommandsTest.php b/tests/CommandsTest.php index 95672753..355fb429 100644 --- a/tests/CommandsTest.php +++ b/tests/CommandsTest.php @@ -25,7 +25,7 @@ use Stancl\Tenancy\Listeners\RevertToCentralContext; use Stancl\Tenancy\Bootstrappers\DatabaseTenancyBootstrapper; beforeEach(function () { - if (file_exists($schemaPath = database_path('schema/tenant-schema.dump'))) { + if (file_exists($schemaPath = 'tests/Etc/tenant-schema-test.dump')) { unlink($schemaPath); } @@ -111,28 +111,30 @@ test('migrate command loads schema state', function () { test('dump command works', function () { $tenant = Tenant::create(); + $schemaPath = 'tests/Etc/tenant-schema-test.dump'; + Artisan::call('tenants:migrate'); - tenancy()->initialize($tenant); + expect($schemaPath)->not()->toBeFile(); - Artisan::call('tenants:dump --path="tests/Etc/tenant-schema-test.dump"'); - expect('tests/Etc/tenant-schema-test.dump')->toBeFile(); -}); - -test('tenant dump file gets created as tenant-schema.dump in the database schema folder by default', function() { - config(['tenancy.migration_parameters.--schema-path' => $schemaPath = database_path('schema/tenant-schema.dump')]); - - $tenant = Tenant::create(); - Artisan::call('tenants:migrate'); - - tenancy()->initialize($tenant); - - Artisan::call('tenants:dump'); + Artisan::call('tenants:dump ' . "--tenant='$tenant->id' --path='$schemaPath'"); expect($schemaPath)->toBeFile(); }); -test('migrate command uses the correct schema path by default', function () { +test('dump command generates dump at the passed path', function() { + $tenant = Tenant::create(); + + Artisan::call('tenants:migrate'); + + expect($schemaPath = 'tests/Etc/tenant-schema-test.dump')->not()->toBeFile(); + + Artisan::call("tenants:dump --tenant='$tenant->id' --path='$schemaPath'"); + + expect($schemaPath)->toBeFile(); +}); + +test('migrate command correctly uses the schema dump located at the configured schema path by default', function () { config(['tenancy.migration_parameters.--schema-path' => 'tests/Etc/tenant-schema.dump']); $tenant = Tenant::create(); @@ -146,6 +148,7 @@ test('migrate command uses the correct schema path by default', function () { tenancy()->initialize($tenant); + // schema_users is a table included in the tests/Etc/tenant-schema dump // Check for both tables to see if missing migrations also get executed expect(Schema::hasTable('schema_users'))->toBeTrue(); expect(Schema::hasTable('users'))->toBeTrue();