make(SettingRepository::class), $this->makeEmpty(FileManagerInterface::class), $ticketsRepo ?? $this->make(TicketRepository::class), $ideaRepo ?? $this->make(IdeaRepository::class), ); } public function test_get_project_label_reads_ticket_state_label_name(): void { $ticketsRepo = $this->make(TicketRepository::class, [ 'getStateLabels' => fn () => [ 3 => ['name' => 'In Progress'], ], ]); $label = $this->makeService(ticketsRepo: $ticketsRepo)->getProjectLabel('ticketlabels', 3, 1); $this->assertSame('In Progress', $label); } public function test_get_project_label_returns_empty_for_missing_ticket_label(): void { $ticketsRepo = $this->make(TicketRepository::class, [ 'getStateLabels' => fn () => [ 3 => ['name' => 'In Progress'], ], ]); $label = $this->makeService(ticketsRepo: $ticketsRepo)->getProjectLabel('ticketlabels', 99, 1); $this->assertSame('', $label); } public function test_get_project_label_reads_idea_label_name(): void { $ideaRepo = $this->make(IdeaRepository::class, [ 'getCanvasLabels' => fn () => [ 1 => ['name' => 'Backlog', 'class' => 'label-default'], ], ]); $label = $this->makeService(ideaRepo: $ideaRepo)->getProjectLabel('idealabels', 1, 1); $this->assertSame('Backlog', $label); } public function test_get_project_label_returns_empty_for_unknown_module(): void { $label = $this->makeService()->getProjectLabel('doesnotexist', 1, 1); $this->assertSame('', $label); } }