27 lines
980 B
PHP
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');
|
|
});
|