ramadanproject/tests/Feature/ConfirmReservationTest.php
Ahmed Darrazi 45a147253c
Some checks failed
tests / ci (push) Failing after 6m13s
linter / quality (pull_request) Failing after 58s
linter / quality (push) Failing after 1m19s
tests / ci (pull_request) Failing after 5m28s
feat(public-grid): add QA, quickstart, decision docs; scheduler docs; ignore files; tasks updates; run pint
2026-01-03 04:56:12 +01:00

27 lines
980 B
PHP

<?php
use App\Models\MasterImage;
use App\Models\Reservation;
it('confirms a held reservation before expiry', function () {
MasterImage::create(['path' => 'master.png', 'version' => 1]);
$res = Reservation::create(['x' => 0, 'y' => 0, 'w' => 1, 'h' => 1, 'status' => 'held', 'reserved_until' => now()->addMinutes(5)]);
$response = $this->postJson('/api/grid/confirm', ['reservation_id' => $res->id]);
$response->assertSuccessful();
expect(Reservation::find($res->id)->status)->toBe('confirmed');
});
it('cannot confirm an expired reservation', function () {
MasterImage::create(['path' => 'master.png', 'version' => 1]);
$res = Reservation::create(['x' => 0, 'y' => 0, 'w' => 1, 'h' => 1, 'status' => 'held', 'reserved_until' => now()->subMinutes(1)]);
$response = $this->postJson('/api/grid/confirm', ['reservation_id' => $res->id]);
$response->assertStatus(409);
expect(Reservation::find($res->id)->status)->toBe('expired');
});