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', ]); Artisan::shouldReceive('call') ->once() ->with('demo:seed', [ 'identity' => $user->email, '--plan' => 'free', '--reset' => true, ]) ->andReturn(0); 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', ]); Artisan::shouldReceive('call')->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', ]); Artisan::shouldReceive('call')->never(); app(DemoLoginReseeder::class)->maybeResetAfterLogin($user); $this->app->terminate(); } }