. */ declare(strict_types=1); namespace Tests\Feature\Controllers\Json; use FireflyIII\Models\Account; use FireflyIII\Models\AccountType; use FireflyIII\Models\Bill; use FireflyIII\Models\Budget; use FireflyIII\Models\Category; use FireflyIII\Models\Tag; use FireflyIII\Models\Transaction; use FireflyIII\Models\TransactionCurrency; use FireflyIII\Models\TransactionJournal; use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Repositories\Bill\BillRepositoryInterface; use FireflyIII\Repositories\Budget\BudgetRepositoryInterface; use FireflyIII\Repositories\Category\CategoryRepositoryInterface; use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface; use FireflyIII\Repositories\Journal\JournalRepositoryInterface; use FireflyIII\Repositories\Tag\TagRepositoryInterface; use Illuminate\Support\Collection; use Log; use Tests\TestCase; /** * Class AutoCompleteControllerTest */ class AutoCompleteControllerTest extends TestCase { /** * */ public function setUp(): void { parent::setUp(); Log::info(sprintf('Now in %s.', get_class($this))); } /** * Request a list of asset accounts * * @covers \FireflyIII\Http\Controllers\Json\AutoCompleteController */ public function testAccounts(): void { $accountRepos = $this->mock(AccountRepositoryInterface::class); $account = $this->getRandomAsset(); $euro = $this->getEuro(); $accountRepos->shouldReceive('searchAccount')->atLeast()->once()->andReturn(new Collection([$account])); $accountRepos->shouldReceive('getAccountCurrency')->atLeast()->once()->andReturn($euro); $this->mockDefaultSession(); $this->be($this->user()); $httpQuery = http_build_query(['types' => AccountType::ASSET]); $response = $this->get(route('json.autocomplete.accounts') . '?' . $httpQuery); $response->assertStatus(200); $response->assertSee($account->name); } }