mirror of
https://github.com/nothingworksinc/ticketbeast.git
synced 2026-01-26 11:14:06 +00:00
46 - A Change in Behavior
This commit is contained in:
@@ -43,6 +43,7 @@ class ConcertOrdersController extends Controller
|
|||||||
return response()->json($order, 201);
|
return response()->json($order, 201);
|
||||||
|
|
||||||
} catch (PaymentFailedException $e) {
|
} catch (PaymentFailedException $e) {
|
||||||
|
$reservation->cancel();
|
||||||
return response()->json([], 422);
|
return response()->json([], 422);
|
||||||
} catch (NotEnoughTicketsException $e) {
|
} catch (NotEnoughTicketsException $e) {
|
||||||
return response()->json([], 422);
|
return response()->json([], 422);
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ class Ticket extends Model
|
|||||||
|
|
||||||
public function release()
|
public function release()
|
||||||
{
|
{
|
||||||
$this->update(['order_id' => null]);
|
$this->update(['reserved_at' => null]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function concert()
|
public function concert()
|
||||||
|
|||||||
@@ -60,3 +60,9 @@ $factory->define(App\Ticket::class, function (Faker\Generator $faker) {
|
|||||||
},
|
},
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$factory->state(App\Ticket::class, 'reserved', function ($faker) {
|
||||||
|
return [
|
||||||
|
'reserved_at' => Carbon::now(),
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
use App\Ticket;
|
use App\Ticket;
|
||||||
use App\Concert;
|
use App\Concert;
|
||||||
|
use Carbon\Carbon;
|
||||||
use Illuminate\Foundation\Testing\WithoutMiddleware;
|
use Illuminate\Foundation\Testing\WithoutMiddleware;
|
||||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
||||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||||
@@ -24,14 +25,11 @@ class TicketTest extends TestCase
|
|||||||
/** @test */
|
/** @test */
|
||||||
function a_ticket_can_be_released()
|
function a_ticket_can_be_released()
|
||||||
{
|
{
|
||||||
$concert = factory(Concert::class)->create();
|
$ticket = factory(Ticket::class)->states('reserved')->create();
|
||||||
$concert->addTickets(1);
|
$this->assertNotNull($ticket->reserved_at);
|
||||||
$order = $concert->orderTickets('jane@example.com', 1);
|
|
||||||
$ticket = $order->tickets()->first();
|
|
||||||
$this->assertEquals($order->id, $ticket->order_id);
|
|
||||||
|
|
||||||
$ticket->release();
|
$ticket->release();
|
||||||
|
|
||||||
$this->assertNull($ticket->fresh()->order_id);
|
$this->assertNull($ticket->fresh()->reserved_at);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user