feat: complete approval workflow
This commit is contained in:
@@ -1,15 +1,22 @@
|
||||
<?php
|
||||
|
||||
use App\Domain\Identity\Enums\RoleName;
|
||||
use App\Domain\Identity\Models\Role;
|
||||
use App\Domain\Inventory\Models\SnipeAsset;
|
||||
use App\Domain\Reservations\Enums\ReservationItemStatus;
|
||||
use App\Domain\Reservations\Enums\ReservationStatus;
|
||||
use App\Models\User;
|
||||
use App\Notifications\ReservationSubmittedNotification;
|
||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
use Illuminate\Support\Facades\Notification;
|
||||
|
||||
uses(RefreshDatabase::class);
|
||||
|
||||
it('cria uma pré-reserva auditada com vários equipamentos', function () {
|
||||
Notification::fake();
|
||||
$user = User::factory()->create();
|
||||
$approver = User::factory()->create();
|
||||
$approver->roles()->attach(Role::create(['name' => RoleName::Approver->value]));
|
||||
$assets = SnipeAsset::factory()->count(2)->create();
|
||||
$startsAt = now()->addDays(2)->startOfHour();
|
||||
$endsAt = $startsAt->addHours(3);
|
||||
@@ -31,6 +38,8 @@ it('cria uma pré-reserva auditada com vários equipamentos', function () {
|
||||
$this->assertDatabaseCount('reservation_items', 2);
|
||||
$this->assertDatabaseHas('reservation_items', ['status' => ReservationItemStatus::Held->value]);
|
||||
$this->assertDatabaseHas('audit_logs', ['event' => 'reservation.submitted', 'actor_id' => $user->id]);
|
||||
Notification::assertSentTo($approver, ReservationSubmittedNotification::class);
|
||||
Notification::assertNotSentTo($user, ReservationSubmittedNotification::class);
|
||||
});
|
||||
|
||||
it('recusa um período que conflita com uma pré-reserva', function () {
|
||||
|
||||
Reference in New Issue
Block a user