Add application API keys
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\Feature\Api;
|
||||
|
||||
use App\Models\Project;
|
||||
use App\Models\Ticket;
|
||||
use App\Models\User;
|
||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
use Tests\TestCase;
|
||||
|
||||
class AssignedTicketsApiTest extends TestCase
|
||||
{
|
||||
use RefreshDatabase;
|
||||
|
||||
public function test_assigned_tickets_are_grouped_by_visible_project(): void
|
||||
{
|
||||
$viewer = User::factory()->create();
|
||||
$assignee = User::factory()->create([
|
||||
'name' => 'Assigned User',
|
||||
]);
|
||||
$otherAssignee = User::factory()->create();
|
||||
|
||||
$olderProject = Project::factory()->create([
|
||||
'key' => 'OLD',
|
||||
'name' => 'Older project',
|
||||
]);
|
||||
$newerProject = Project::factory()->create([
|
||||
'key' => 'NEW',
|
||||
'name' => 'Newer project',
|
||||
]);
|
||||
$hiddenProject = Project::factory()->create([
|
||||
'key' => 'HID',
|
||||
'name' => 'Hidden project',
|
||||
]);
|
||||
|
||||
$this->syncProjectPermissions($olderProject, $viewer, ['view']);
|
||||
$this->syncProjectPermissions($newerProject, $viewer, ['view']);
|
||||
|
||||
Ticket::factory()->create([
|
||||
'assignee_user_id' => $assignee->id,
|
||||
'project_id' => $olderProject->id,
|
||||
'sequence_number' => 1,
|
||||
'ticket_key' => 'OLD-1',
|
||||
'title' => 'Older visible ticket',
|
||||
]);
|
||||
Ticket::factory()->create([
|
||||
'assignee_user_id' => $assignee->id,
|
||||
'project_id' => $newerProject->id,
|
||||
'sequence_number' => 2,
|
||||
'ticket_key' => 'NEW-2',
|
||||
'title' => 'Newer visible ticket',
|
||||
]);
|
||||
Ticket::factory()->create([
|
||||
'assignee_user_id' => $assignee->id,
|
||||
'project_id' => $hiddenProject->id,
|
||||
'sequence_number' => 1,
|
||||
'ticket_key' => 'HID-1',
|
||||
'title' => 'Hidden ticket',
|
||||
]);
|
||||
Ticket::factory()->create([
|
||||
'assignee_user_id' => $otherAssignee->id,
|
||||
'project_id' => $olderProject->id,
|
||||
'sequence_number' => 3,
|
||||
'ticket_key' => 'OLD-3',
|
||||
'title' => 'Other user ticket',
|
||||
]);
|
||||
|
||||
$this->withApplicationKey($viewer)
|
||||
->getJson(route('api.users.assigned-tickets', $assignee))
|
||||
->assertOk()
|
||||
->assertJsonPath('meta.assignee.name', 'Assigned User')
|
||||
->assertJsonPath('data.0.project.name', 'Newer project')
|
||||
->assertJsonPath('data.0.tickets.0.ticket_key', 'NEW-2')
|
||||
->assertJsonCount(1, 'data.0.tickets')
|
||||
->assertJsonPath('data.1.project.name', 'Older project')
|
||||
->assertJsonPath('data.1.tickets.0.ticket_key', 'OLD-1')
|
||||
->assertJsonCount(1, 'data.1.tickets')
|
||||
->assertJsonCount(2, 'data');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user