From e4a77dcc7bbfba2bef7a6bcf24134df5edb6e757 Mon Sep 17 00:00:00 2001 From: Johannes Date: Tue, 11 Mar 2025 17:13:30 +0100 Subject: [PATCH] test tenant creation seeding also in production environments (with force) --- tests/DatabasePreparationTest.php | 54 +++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/tests/DatabasePreparationTest.php b/tests/DatabasePreparationTest.php index 12d30059..a682a96f 100644 --- a/tests/DatabasePreparationTest.php +++ b/tests/DatabasePreparationTest.php @@ -75,6 +75,60 @@ class DatabasePreparationTest extends TestCase }); } + /** @test */ + public function database_can_not_be_seeded_after_tenant_creation_in_production_without_force() + { + $this->app->detectEnvironment(function() { + return 'production'; + }); + + config(['tenancy.seeder_parameters' => [ + '--class' => TestSeeder::class, + ]]); + + Event::listen(TenantCreated::class, JobPipeline::make([ + CreateDatabase::class, + MigrateDatabase::class, + SeedDatabase::class, + ])->send(function (TenantCreated $event) { + return $event->tenant; + })->toListener()); + + $tenant = Tenant::create(); + + $tenant->run(function () { + $this->assertEmpty(User::first()); + }); + } + + /** @test */ + public function database_can_not_be_seeded_after_tenant_creation_in_production_with_force() + { + $this->app->detectEnvironment(function() { + return 'production'; + }); + + config(['tenancy.seeder_parameters' => [ + '--class' => TestSeeder::class, + '--force' => true, + ]]); + + Event::listen(TenantCreated::class, JobPipeline::make([ + CreateDatabase::class, + MigrateDatabase::class, + SeedDatabase::class, + ])->send(function (TenantCreated $event) { + return $event->tenant; + })->toListener()); + + $tenant = Tenant::create(); + + $tenant->run(function () { + $this->assertSame('Seeded User', User::first()->name); + }); + } + + /** @test */ public function custom_job_can_be_added_to_the_pipeline() {