Hide assignee metadata when no visible assigned tickets exist

This commit is contained in:
2026-04-24 09:37:53 +00:00
parent bf0e50464a
commit ae00f1fc44
4 changed files with 56 additions and 4 deletions
@@ -77,4 +77,37 @@ class AssignedTicketsApiTest extends TestCase
->assertJsonCount(1, 'data.1.tickets')
->assertJsonCount(2, 'data');
}
public function test_assignee_metadata_is_hidden_when_no_visible_assigned_tickets_exist(): void
{
$viewer = User::factory()->create();
$assignee = User::factory()->create([
'name' => 'Hidden User',
]);
$visibleProject = Project::factory()->create([
'key' => 'VIS',
'name' => 'Visible project',
]);
$hiddenProject = Project::factory()->create([
'key' => 'HID',
'name' => 'Hidden project',
]);
$this->syncProjectPermissions($visibleProject, $viewer, ['view']);
Ticket::factory()->create([
'assignee_user_id' => $assignee->id,
'project_id' => $hiddenProject->id,
'sequence_number' => 1,
'ticket_key' => 'HID-1',
'title' => 'Hidden ticket',
]);
$this->withApplicationKey($viewer)
->getJson(route('api.users.assigned-tickets', $assignee))
->assertOk()
->assertJsonPath('data', [])
->assertJsonPath('meta.assignee', null);
}
}
@@ -83,5 +83,13 @@ class OpenApiDocumentationTest extends TestCase
$this->assertArrayHasKey('UserGitConnectionRequest', $document['components']['schemas']);
$this->assertArrayHasKey('AssignedTicketsPayloadEnvelope', $document['components']['schemas']);
$this->assertArrayHasKey('AssignedTicketsProjectGroup', $document['components']['schemas']);
$assigneeSchema = $document['components']['schemas']['AssignedTicketsPayloadEnvelope']['properties']['meta']['properties']['assignee'] ?? null;
$this->assertIsArray($assigneeSchema);
$this->assertSame([
['$ref' => '#/components/schemas/User'],
['type' => 'null'],
], $assigneeSchema['anyOf'] ?? null);
}
}