add notifications logic and add support of both JWT and Sanctum

This commit is contained in:
root
2026-03-11 01:20:31 -04:00
parent f6be51576c
commit 182036cc41
141 changed files with 8685 additions and 648 deletions
@@ -0,0 +1,51 @@
<?php
namespace Tests\Unit\Resources\Notifications;
use App\Http\Resources\Notifications\NotificationResource;
use App\Models\Notification;
use Tests\TestCase;
class NotificationResourceTest extends TestCase
{
public function test_resource_returns_expected_shape(): void
{
$notification = new Notification([
'id' => 1,
'title' => 'Title',
'message' => 'Message',
'target_group' => 'parent',
'delivery_channels' => ['in_app'],
'priority' => 'normal',
'status' => 'sent',
'action_url' => 'https://example.test',
'attachment_path' => '/path/file.pdf',
'scheduled_at' => now(),
'sent_at' => now(),
'expires_at' => now()->addDay(),
'school_year' => '2025-2026',
'semester' => 'Fall',
'created_at' => now(),
'updated_at' => now(),
]);
$payload = (new NotificationResource($notification))->toArray(request());
$this->assertArrayHasKey('id', $payload);
$this->assertArrayHasKey('title', $payload);
$this->assertArrayHasKey('message', $payload);
$this->assertArrayHasKey('target_group', $payload);
$this->assertArrayHasKey('delivery_channels', $payload);
$this->assertArrayHasKey('priority', $payload);
$this->assertArrayHasKey('status', $payload);
$this->assertArrayHasKey('action_url', $payload);
$this->assertArrayHasKey('attachment_path', $payload);
$this->assertArrayHasKey('scheduled_at', $payload);
$this->assertArrayHasKey('sent_at', $payload);
$this->assertArrayHasKey('expires_at', $payload);
$this->assertArrayHasKey('school_year', $payload);
$this->assertArrayHasKey('semester', $payload);
$this->assertArrayHasKey('created_at', $payload);
$this->assertArrayHasKey('updated_at', $payload);
}
}