artisan('seo:generate-sitemap') ->expectsOutput('Sitemap 생성이 큐에 디스패치되었습니다.') ->assertExitCode(Command::SUCCESS); Bus::assertDispatched(GenerateSitemapJob::class); Bus::assertNotDispatchedSync(GenerateSitemapJob::class); } /** * 큐 드라이버가 sync 일 때 옵션 없이도 동기 실행되는지 확인합니다. */ public function test_command_dispatches_sync_when_queue_driver_is_sync(): void { Config::set('queue.default', 'sync'); Bus::fake([GenerateSitemapJob::class]); $this->artisan('seo:generate-sitemap') ->expectsOutput('Sitemap이 생성되었습니다.') ->assertExitCode(Command::SUCCESS); Bus::assertDispatchedSync(GenerateSitemapJob::class); } /** * --sync 옵션은 큐 드라이버와 무관하게 동기 실행을 강제합니다. */ public function test_command_forces_sync_when_option_provided(): void { Config::set('queue.default', 'database'); Bus::fake([GenerateSitemapJob::class]); $this->artisan('seo:generate-sitemap', ['--sync' => true]) ->expectsOutput('Sitemap이 생성되었습니다.') ->assertExitCode(Command::SUCCESS); Bus::assertDispatchedSync(GenerateSitemapJob::class); } }