Files
KanbanGit/tests/Feature/Git/TicketKeyReferenceMatcherTest.php
T
Koda 5af4c6a9df
linter / quality (pull_request) Successful in 1m38s
tests / ci (8.4) (pull_request) Successful in 1m35s
Fix main test expectations and ticket key matching
2026-06-01 11:06:51 +00:00

38 lines
1.2 KiB
PHP

<?php
namespace Tests\Feature\Git;
use App\Actions\Git\TicketKeyReferenceMatcher;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
class TicketKeyReferenceMatcherTest extends TestCase
{
use RefreshDatabase;
/**
* Ensure a reference must start with the ticket key, regardless of case.
*/
public function test_matcher_accepts_ticket_key_prefixes_case_insensitively(): void
{
$matcher = app(TicketKeyReferenceMatcher::class);
$this->assertTrue($matcher->matches('CORE-1', 'CORE-1-login-form'));
$this->assertTrue($matcher->matches('CORE-1', 'CORE-1/fix-oauth'));
$this->assertTrue($matcher->matches('CORE-1', 'CORE-1_hotfix'));
$this->assertTrue($matcher->matches('CORE-1', 'CORE-1'));
$this->assertTrue($matcher->matches('CORE-1', 'core-1-login-form'));
}
/**
* Ensure similar or embedded ticket keys are not treated as matches.
*/
public function test_matcher_rejects_other_ticket_prefixes(): void
{
$matcher = app(TicketKeyReferenceMatcher::class);
$this->assertFalse($matcher->matches('CORE-1', 'CORE-10-login-form'));
$this->assertFalse($matcher->matches('CORE-1', 'MY-CORE-1-login-form'));
}
}