. */ declare(strict_types=1); namespace Tests\Api\V1\Controllers; use FireflyIII\Transformers\UserTransformer; use Laravel\Passport\Passport; use Tests\TestCase; /** * Class AboutControllerTest * @runTestsInSeparateProcesses * @preserveGlobalState disabled */ class AboutControllerTest extends TestCase { /** @var array */ protected $transformed = [ 'id' => 1, 'email' => 'some@user', 'links' => [ 'rel' => 'self', 'uri' => '/users/1', ], ]; public function setUp() { parent::setUp(); Passport::actingAs($this->user()); } /** * @covers \FireflyIII\Api\V1\Controllers\AboutController::about */ public function testAbout() { // test API $response = $this->get('/api/v1/about'); $response->assertStatus(200); $response->assertJson( ['data' => [ 'version' => true, 'api_version' => true, 'php_version' => true, ]] ); } /** * @covers \FireflyIII\Api\V1\Controllers\AboutController::user */ public function testUser() { // mock stuff: $transformer = $this->overload(UserTransformer::class); $transformer->shouldReceive('setCurrentScope')->andReturnSelf(); $transformer->shouldReceive('transform')->andReturn($this->transformed); // test API $response = $this->get('/api/v1/about/user'); $response->assertStatus(200); $response->assertJson(['data' => ['attributes' => true, 'links' => true]]); } }