Refactor acceptance criteria into model
linter / quality (pull_request) Successful in 1m14s
tests / ci (8.4) (pull_request) Successful in 1m28s

This commit is contained in:
2026-05-19 22:20:15 +00:00
parent 3ddfcc89f9
commit 7805bd057e
10 changed files with 217 additions and 72 deletions
@@ -527,9 +527,34 @@ class ProjectTicketControllerTest extends TestCase
'ticket_priority_id' => $highPriority->id,
]);
$ticket->refresh();
$ticket->refresh()->load('acceptanceCriteria');
$this->assertEquals($updatedAcceptanceCriteria, $ticket->acceptance_criteria_data);
$this->assertEquals(
$updatedAcceptanceCriteria,
\App\Actions\Tickets\Support\TicketAcceptanceCriteriaData::fromModels(
$ticket->acceptanceCriteria,
$ticket->acceptance_criteria,
),
);
$this->assertDatabaseHas('acceptance_criteria', [
'ticket_id' => $ticket->id,
'parent_acceptance_criterion_id' => null,
'position' => 0,
'text' => 'Shows success banner',
'is_checked' => false,
]);
$rootCriterionId = \App\Models\AcceptanceCriterion::query()
->where('ticket_id', $ticket->id)
->where('text', 'Shows success banner')
->value('id');
$this->assertNotNull($rootCriterionId);
$this->assertDatabaseHas('acceptance_criteria', [
'ticket_id' => $ticket->id,
'parent_acceptance_criterion_id' => $rootCriterionId,
'position' => 0,
'text' => 'Includes nested confirmations',
'is_checked' => true,
]);
$this->assertDatabaseHas('ticket_field_values', [
'ticket_id' => $ticket->id,
'ticket_field_definition_id' => $reviewerField->id,