. */ declare(strict_types=1); namespace Tests\Api\V1\Controllers; use FireflyIII\Transformers\UserTransformer; use Laravel\Passport\Passport; use Log; use Tests\TestCase; /** * Class AboutControllerTest. */ class AboutControllerTest extends TestCase { /** * Set up test */ public function setUp(): void { parent::setUp(); Passport::actingAs($this->user()); Log::info(sprintf('Now in %s.', get_class($this))); } /** * Test the about endpoint * * @covers \FireflyIII\Api\V1\Controllers\AboutController */ public function testAbout(): void { $search = ['~', '#']; $replace = ['\~', '# ']; $phpVersion = str_replace($search, $replace, PHP_VERSION); $phpOs = str_replace($search, $replace, PHP_OS); $response = $this->get(route('api.v1.about.index')); $response->assertStatus(200); $response->assertJson( ['data' => [ 'version' => config('firefly.version'), 'api_version' => config('firefly.api_version'), 'php_version' => $phpVersion, 'os' => $phpOs, 'driver' => 'sqlite', ]] ); } /** * Test user end point * * @covers \FireflyIII\Api\V1\Controllers\AboutController */ public function testUser(): void { $transformer = $this->mock(UserTransformer::class); // mock calls to transformer: $transformer->shouldReceive('setParameters')->withAnyArgs()->atLeast()->once(); $transformer->shouldReceive('setCurrentScope')->withAnyArgs()->atLeast()->once()->andReturnSelf(); $transformer->shouldReceive('getDefaultIncludes')->withAnyArgs()->atLeast()->once()->andReturn([]); $transformer->shouldReceive('getAvailableIncludes')->withAnyArgs()->atLeast()->once()->andReturn([]); $transformer->shouldReceive('transform')->atLeast()->once()->andReturn(['id' => 5]); $response = $this->get(route('api.v1.about.user')); $response->assertStatus(200); } }