true, 'demo_accounts.reset_on_login' => true, ]); $user = User::create([ 'public_id' => (string) Str::uuid(), 'name' => 'Demo Free', 'email' => 'demo-free@ladill.com', ]); Artisan::shouldReceive('call') ->once() ->withArgs(function (string $command, array $params): bool { return $command === 'demo:seed' && $params['identity'] === 'demo-free@ladill.com' && $params['--plan'] === 'free' && $params['--reset'] === true; }) ->andReturn(0); app(DemoLoginReseeder::class)->maybeResetAfterLogin($user); $this->app->terminate(); $this->assertFalse(Cache::has('demo-reseed:frontdesk:'.$user->public_id)); } public function test_skips_when_demo_accounts_disabled(): void { config([ 'demo_accounts.enabled' => false, 'demo_accounts.reset_on_login' => true, ]); $user = User::create([ 'public_id' => (string) Str::uuid(), 'name' => 'Demo Free', 'email' => 'demo-free@ladill.com', ]); Artisan::shouldReceive('call')->never(); app(DemoLoginReseeder::class)->maybeResetAfterLogin($user); $this->app->terminate(); } public function test_skips_non_demo_emails(): void { config([ 'demo_accounts.enabled' => true, 'demo_accounts.reset_on_login' => true, ]); $user = User::create([ 'public_id' => (string) Str::uuid(), 'name' => 'Regular User', 'email' => 'regular@example.com', ]); Artisan::shouldReceive('call')->never(); app(DemoLoginReseeder::class)->maybeResetAfterLogin($user); $this->app->terminate(); } }