die tenant admin oauth authentifizierung wurde implementiert und funktioniert jetzt. Zudem wurde das marketing frontend dashboard implementiert.
This commit is contained in:
@@ -8,16 +8,16 @@ use App\Models\TaskCollection;
|
||||
use App\Models\Tenant;
|
||||
use App\Models\User;
|
||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
use Laravel\Sanctum\Sanctum;
|
||||
use PHPUnit\Framework\Attributes\Test;
|
||||
use Tests\TestCase;
|
||||
|
||||
class TaskApiTest extends TenantTestCase
|
||||
{
|
||||
use RefreshDatabase;
|
||||
|
||||
protected Tenant $tenant;
|
||||
|
||||
protected User $tenantUser;
|
||||
|
||||
protected string $token;
|
||||
|
||||
protected function setUp(): void
|
||||
@@ -45,7 +45,7 @@ class TaskApiTest extends TenantTestCase
|
||||
$response = $this->authenticatedRequest('GET', '/api/v1/tenant/tasks');
|
||||
|
||||
$response->assertStatus(200)
|
||||
->assertJsonCount(3, 'data');
|
||||
->assertJsonCount(3, 'data');
|
||||
}
|
||||
|
||||
#[Test]
|
||||
@@ -62,11 +62,11 @@ class TaskApiTest extends TenantTestCase
|
||||
'priority' => 'medium',
|
||||
]);
|
||||
|
||||
$response = $this->withHeaders(['Authorization' => 'Bearer ' . $this->token])
|
||||
->getJson('/api/v1/tenant/tasks');
|
||||
$response = $this->withHeaders(['Authorization' => 'Bearer '.$this->token])
|
||||
->getJson('/api/v1/tenant/tasks');
|
||||
|
||||
$response->assertStatus(200)
|
||||
->assertJsonCount(3, 'data');
|
||||
->assertJsonCount(3, 'data');
|
||||
}
|
||||
|
||||
#[Test]
|
||||
@@ -79,28 +79,28 @@ class TaskApiTest extends TenantTestCase
|
||||
'due_date' => now()->addDays(7)->toISOString(),
|
||||
];
|
||||
|
||||
$response = $this->withHeaders(['Authorization' => 'Bearer ' . $this->token])
|
||||
->postJson('/api/v1/tenant/tasks', $taskData);
|
||||
$response = $this->withHeaders(['Authorization' => 'Bearer '.$this->token])
|
||||
->postJson('/api/v1/tenant/tasks', $taskData);
|
||||
|
||||
$response->assertStatus(201)
|
||||
->assertJson(['message' => 'Task erfolgreich erstellt.'])
|
||||
->assertJsonPath('data.title', 'Test Task')
|
||||
->assertJsonPath('data.tenant_id', $this->tenant->id);
|
||||
->assertJson(['message' => 'Task erfolgreich erstellt.'])
|
||||
->assertJsonPath('data.title', 'Test Task')
|
||||
->assertJsonPath('data.tenant_id', $this->tenant->id);
|
||||
|
||||
$this->assertDatabaseHas('tasks', [
|
||||
'title' => 'Test Task',
|
||||
'tenant_id' => $this->tenant->id,
|
||||
'title->de' => 'Test Task',
|
||||
]);
|
||||
}
|
||||
|
||||
#[Test]
|
||||
public function task_creation_requires_valid_data()
|
||||
{
|
||||
$response = $this->withHeaders(['Authorization' => 'Bearer ' . $this->token])
|
||||
->postJson('/api/v1/tenant/tasks', []);
|
||||
$response = $this->withHeaders(['Authorization' => 'Bearer '.$this->token])
|
||||
->postJson('/api/v1/tenant/tasks', []);
|
||||
|
||||
$response->assertStatus(422)
|
||||
->assertJsonValidationErrors(['title']);
|
||||
->assertJsonValidationErrors(['title']);
|
||||
}
|
||||
|
||||
#[Test]
|
||||
@@ -108,15 +108,18 @@ class TaskApiTest extends TenantTestCase
|
||||
{
|
||||
$task = Task::factory()->create([
|
||||
'tenant_id' => $this->tenant->id,
|
||||
'title' => 'Viewable Task',
|
||||
'title' => [
|
||||
'de' => 'Viewable Task',
|
||||
'en' => 'Viewable Task',
|
||||
],
|
||||
'priority' => 'medium',
|
||||
]);
|
||||
|
||||
$response = $this->withHeaders(['Authorization' => 'Bearer ' . $this->token])
|
||||
->getJson("/api/v1/tenant/tasks/{$task->id}");
|
||||
$response = $this->withHeaders(['Authorization' => 'Bearer '.$this->token])
|
||||
->getJson("/api/v1/tenant/tasks/{$task->id}");
|
||||
|
||||
$response->assertStatus(200)
|
||||
->assertJson(['title' => 'Viewable Task']);
|
||||
->assertJson(['title' => 'Viewable Task']);
|
||||
}
|
||||
|
||||
#[Test]
|
||||
@@ -129,8 +132,8 @@ class TaskApiTest extends TenantTestCase
|
||||
'priority' => 'medium',
|
||||
]);
|
||||
|
||||
$response = $this->withHeaders(['Authorization' => 'Bearer ' . $this->token])
|
||||
->getJson("/api/v1/tenant/tasks/{$otherTask->id}");
|
||||
$response = $this->withHeaders(['Authorization' => 'Bearer '.$this->token])
|
||||
->getJson("/api/v1/tenant/tasks/{$otherTask->id}");
|
||||
|
||||
$response->assertStatus(404);
|
||||
}
|
||||
@@ -140,7 +143,10 @@ class TaskApiTest extends TenantTestCase
|
||||
{
|
||||
$task = Task::factory()->create([
|
||||
'tenant_id' => $this->tenant->id,
|
||||
'title' => 'Old Title',
|
||||
'title' => [
|
||||
'de' => 'Old Title',
|
||||
'en' => 'Old Title',
|
||||
],
|
||||
'priority' => 'low',
|
||||
]);
|
||||
|
||||
@@ -149,17 +155,17 @@ class TaskApiTest extends TenantTestCase
|
||||
'priority' => 'urgent',
|
||||
];
|
||||
|
||||
$response = $this->withHeaders(['Authorization' => 'Bearer ' . $this->token])
|
||||
->patchJson("/api/v1/tenant/tasks/{$task->id}", $updateData);
|
||||
$response = $this->withHeaders(['Authorization' => 'Bearer '.$this->token])
|
||||
->patchJson("/api/v1/tenant/tasks/{$task->id}", $updateData);
|
||||
|
||||
$response->assertStatus(200)
|
||||
->assertJson(['message' => 'Task erfolgreich aktualisiert.'])
|
||||
->assertJsonPath('data.title', 'Updated Title')
|
||||
->assertJsonPath('data.priority', 'urgent');
|
||||
->assertJson(['message' => 'Task erfolgreich aktualisiert.'])
|
||||
->assertJsonPath('data.title', 'Updated Title')
|
||||
->assertJsonPath('data.priority', 'urgent');
|
||||
|
||||
$this->assertDatabaseHas('tasks', [
|
||||
'id' => $task->id,
|
||||
'title' => 'Updated Title',
|
||||
'title->de' => 'Updated Title',
|
||||
'priority' => 'urgent',
|
||||
]);
|
||||
}
|
||||
@@ -172,11 +178,11 @@ class TaskApiTest extends TenantTestCase
|
||||
'priority' => 'medium',
|
||||
]);
|
||||
|
||||
$response = $this->withHeaders(['Authorization' => 'Bearer ' . $this->token])
|
||||
->deleteJson("/api/v1/tenant/tasks/{$task->id}");
|
||||
$response = $this->withHeaders(['Authorization' => 'Bearer '.$this->token])
|
||||
->deleteJson("/api/v1/tenant/tasks/{$task->id}");
|
||||
|
||||
$response->assertStatus(200)
|
||||
->assertJson(['message' => 'Task erfolgreich gelöscht.']);
|
||||
->assertJson(['message' => 'Task erfolgreich gelöscht.']);
|
||||
|
||||
$this->assertSoftDeleted('tasks', ['id' => $task->id]);
|
||||
}
|
||||
@@ -190,14 +196,13 @@ class TaskApiTest extends TenantTestCase
|
||||
]);
|
||||
$event = Event::factory()->create([
|
||||
'tenant_id' => $this->tenant->id,
|
||||
'event_type_id' => 1,
|
||||
]);
|
||||
|
||||
$response = $this->withHeaders(['Authorization' => 'Bearer ' . $this->token])
|
||||
->postJson("/api/v1/tenant/tasks/{$task->id}/assign-event/{$event->id}");
|
||||
$response = $this->withHeaders(['Authorization' => 'Bearer '.$this->token])
|
||||
->postJson("/api/v1/tenant/tasks/{$task->id}/assign-event/{$event->id}");
|
||||
|
||||
$response->assertStatus(200)
|
||||
->assertJson(['message' => 'Task erfolgreich dem Event zugewiesen.']);
|
||||
->assertJson(['message' => 'Task erfolgreich dem Event zugewiesen.']);
|
||||
|
||||
$this->assertDatabaseHas('event_task', [
|
||||
'task_id' => $task->id,
|
||||
@@ -214,16 +219,15 @@ class TaskApiTest extends TenantTestCase
|
||||
]);
|
||||
$event = Event::factory()->create([
|
||||
'tenant_id' => $this->tenant->id,
|
||||
'event_type_id' => 1,
|
||||
]);
|
||||
|
||||
$response = $this->withHeaders(['Authorization' => 'Bearer ' . $this->token])
|
||||
->postJson("/api/v1/tenant/tasks/bulk-assign-event/{$event->id}", [
|
||||
'task_ids' => $tasks->pluck('id')->toArray(),
|
||||
]);
|
||||
$response = $this->withHeaders(['Authorization' => 'Bearer '.$this->token])
|
||||
->postJson("/api/v1/tenant/tasks/bulk-assign-event/{$event->id}", [
|
||||
'task_ids' => $tasks->pluck('id')->toArray(),
|
||||
]);
|
||||
|
||||
$response->assertStatus(200)
|
||||
->assertJson(['message' => '3 Tasks dem Event zugewiesen.']);
|
||||
->assertJson(['message' => '3 Tasks dem Event zugewiesen.']);
|
||||
|
||||
$this->assertEquals(3, $event->tasks()->count());
|
||||
}
|
||||
@@ -233,24 +237,23 @@ class TaskApiTest extends TenantTestCase
|
||||
{
|
||||
$event = Event::factory()->create([
|
||||
'tenant_id' => $this->tenant->id,
|
||||
'event_type_id' => 1,
|
||||
]);
|
||||
$eventTasks = Task::factory(2)->create([
|
||||
'tenant_id' => $this->tenant->id,
|
||||
'priority' => 'medium',
|
||||
]);
|
||||
$eventTasks->each(fn($task) => $task->assignedEvents()->attach($event->id));
|
||||
$eventTasks->each(fn ($task) => $task->assignedEvents()->attach($event->id));
|
||||
|
||||
Task::factory(3)->create([
|
||||
'tenant_id' => $this->tenant->id,
|
||||
'priority' => 'medium',
|
||||
]); // Other tasks
|
||||
|
||||
$response = $this->withHeaders(['Authorization' => 'Bearer ' . $this->token])
|
||||
->getJson("/api/v1/tenant/tasks/event/{$event->id}");
|
||||
$response = $this->withHeaders(['Authorization' => 'Bearer '.$this->token])
|
||||
->getJson("/api/v1/tenant/tasks/event/{$event->id}");
|
||||
|
||||
$response->assertStatus(200)
|
||||
->assertJsonCount(2, 'data');
|
||||
->assertJsonCount(2, 'data');
|
||||
}
|
||||
|
||||
#[Test]
|
||||
@@ -272,11 +275,11 @@ class TaskApiTest extends TenantTestCase
|
||||
'priority' => 'medium',
|
||||
]); // Other tasks
|
||||
|
||||
$response = $this->withHeaders(['Authorization' => 'Bearer ' . $this->token])
|
||||
->getJson("/api/v1/tenant/tasks?collection_id={$collection->id}");
|
||||
$response = $this->withHeaders(['Authorization' => 'Bearer '.$this->token])
|
||||
->getJson("/api/v1/tenant/tasks?collection_id={$collection->id}");
|
||||
|
||||
$response->assertStatus(200)
|
||||
->assertJsonCount(2, 'data');
|
||||
->assertJsonCount(2, 'data');
|
||||
}
|
||||
|
||||
#[Test]
|
||||
@@ -284,29 +287,25 @@ class TaskApiTest extends TenantTestCase
|
||||
{
|
||||
Task::factory()->create([
|
||||
'tenant_id' => $this->tenant->id,
|
||||
'title' => 'First Task',
|
||||
'priority' => 'medium'
|
||||
'title' => ['de' => 'First Task', 'en' => 'First Task'],
|
||||
'priority' => 'medium',
|
||||
]);
|
||||
Task::factory()->create([
|
||||
'tenant_id' => $this->tenant->id,
|
||||
'title' => 'Search Test',
|
||||
'priority' => 'medium'
|
||||
'title' => ['de' => 'Search Test', 'en' => 'Search Test'],
|
||||
'priority' => 'medium',
|
||||
]);
|
||||
Task::factory()->create([
|
||||
'tenant_id' => $this->tenant->id,
|
||||
'title' => 'Another Task',
|
||||
'priority' => 'medium'
|
||||
'title' => ['de' => 'Another Task', 'en' => 'Another Task'],
|
||||
'priority' => 'medium',
|
||||
]);
|
||||
|
||||
$response = $this->withHeaders(['Authorization' => 'Bearer ' . $this->token])
|
||||
->getJson('/api/v1/tenant/tasks?search=Search');
|
||||
$response = $this->withHeaders(['Authorization' => 'Bearer '.$this->token])
|
||||
->getJson('/api/v1/tenant/tasks?search=Search');
|
||||
|
||||
$response->assertStatus(200)
|
||||
->assertJsonCount(1, 'data')
|
||||
->assertJsonPath('data.0.title', 'Search Test');
|
||||
->assertJsonCount(1, 'data')
|
||||
->assertJsonPath('data.0.title', 'Search Test');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user