From b9eb2feea08748e7b1100e9187542245634da2c5 Mon Sep 17 00:00:00 2001 From: lukinovec Date: Tue, 25 Oct 2022 17:34:54 +0200 Subject: [PATCH] Test schema dump file creation and usage --- tests/CommandsTest.php | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/tests/CommandsTest.php b/tests/CommandsTest.php index 793dca30..9a9f0bc5 100644 --- a/tests/CommandsTest.php +++ b/tests/CommandsTest.php @@ -120,6 +120,39 @@ test('dump command works', function () { 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'); + + expect($schemaPath)->toBeFile(); + unlink($schemaPath); +}); + +test('migrate command uses the correct schema path by default', function () { + config(['tenancy.migration_parameters.--schema-path' => 'tests/Etc/tenant-schema.dump']); + $tenant = Tenant::create(); + + expect(Schema::hasTable('schema_users'))->toBeFalse(); + expect(Schema::hasTable('users'))->toBeFalse(); + + Artisan::call('tenants:migrate'); + + expect(Schema::hasTable('schema_users'))->toBeFalse(); + expect(Schema::hasTable('users'))->toBeFalse(); + + tenancy()->initialize($tenant); + + // Check for both tables to see if missing migrations also get executed + expect(Schema::hasTable('schema_users'))->toBeTrue(); + expect(Schema::hasTable('users'))->toBeTrue(); +}); + test('rollback command works', function () { $tenant = Tenant::create(); Artisan::call('tenants:migrate');