withoutMiddleware(EnsurePlatformSession::class); config([ 'demo_accounts.enabled' => true, 'demo_accounts.reset_on_login' => true, ]); Cache::flush(); } public function test_it_reseeds_demo_free_user_after_login(): void { $user = User::create([ 'public_id' => 'demo-free-pid', 'name' => 'Ladill Demo (Free)', 'email' => 'demo-free@ladill.com', ]); $seeder = $this->mock(DemoTenantSeeder::class); $seeder->shouldReceive('seed') ->once() ->withArgs(fn (User $u, string $plan, bool $reset) => $u->is($user) && $plan === 'free' && $reset === true) ->andReturn(['ok' => true]); app(DemoLoginReseeder::class)->maybeResetAfterLogin($user); $this->app->terminate(); } public function test_it_skips_non_demo_users(): void { $user = User::create([ 'public_id' => 'regular-pid', 'name' => 'Regular', 'email' => 'regular@example.com', ]); $seeder = $this->mock(DemoTenantSeeder::class); $seeder->shouldReceive('seed')->never(); app(DemoLoginReseeder::class)->maybeResetAfterLogin($user); $this->app->terminate(); } public function test_it_skips_when_disabled(): void { config(['demo_accounts.enabled' => false]); $user = User::create([ 'public_id' => 'demo-free-pid', 'name' => 'Ladill Demo (Free)', 'email' => 'demo-free@ladill.com', ]); $seeder = $this->mock(DemoTenantSeeder::class); $seeder->shouldReceive('seed')->never(); app(DemoLoginReseeder::class)->maybeResetAfterLogin($user); $this->app->terminate(); } }