<?php namespace Pterodactyl\Tests\Integration; use Illuminate\Http\Response; use Illuminate\Testing\Assert as PHPUnit; use Pterodactyl\Exceptions\DisplayException; use Illuminate\Validation\ValidationException; use Illuminate\Testing\TestResponse as IlluminateTestResponse; class TestResponse extends IlluminateTestResponse { /** * Overrides the default assert status logic to dump out the error to the * test output if it is caused by a 500 level error and we were not specifically * look for that status response. * * @param int $status * * @return \Pterodactyl\Tests\Integration\TestResponse */ public function assertStatus($status) { $actual = $this->getStatusCode(); // Dump the response to the screen before making the assertion which is going // to fail so that debugging isn't such a nightmare. if ($actual !== $status && $status !== 500) { $this->dump(); if (!is_null($this->exception) && !$this->exception instanceof DisplayException && !$this->exception instanceof ValidationException) { dump($this->exception); } } PHPUnit::assertSame($actual, $status, "Expected status code {$status} but received {$actual}."); return $this; } /** * @return $this */ public function assertForbidden() { return self::assertStatus(Response::HTTP_FORBIDDEN); } }