. */ declare(strict_types=1); namespace Tests\Feature\Controllers\Import; use FireflyIII\Import\JobConfiguration\FakeJobConfiguration; use FireflyIII\Models\ImportJob; use FireflyIII\Repositories\ImportJob\ImportJobRepositoryInterface; use FireflyIII\Repositories\User\UserRepositoryInterface; use Illuminate\Http\UploadedFile; use Illuminate\Support\MessageBag; use Log; use Mockery; use Tests\TestCase; /** * Class JobConfigurationControllerTest */ class JobConfigurationControllerTest extends TestCase { /** * */ public function setUp(): void { parent::setUp(); Log::info(sprintf('Now in %s.', get_class($this))); } /** * @covers \FireflyIII\Http\Controllers\Import\JobConfigurationController */ public function testIndex(): void { $job = new ImportJob; $job->user_id = $this->user()->id; $job->key = '1Afake_job_' . random_int(1, 10000); $job->status = 'has_prereq'; $job->provider = 'fake'; $job->file_type = ''; $job->save(); // mock repositories and configuration handling classes: $repository = $this->mock(ImportJobRepositoryInterface::class); $configurator = $this->mock(FakeJobConfiguration::class); $userRepos = $this->mock(UserRepositoryInterface::class); $userRepos->shouldReceive('hasRole')->withArgs([Mockery::any(), 'owner'])->atLeast()->once()->andReturn(true); // mock calls: $configurator->shouldReceive('setImportJob')->once(); $configurator->shouldReceive('configurationComplete')->once()->andReturn(false); $configurator->shouldReceive('getNextView')->once()->andReturn('import.fake.apply-rules'); $configurator->shouldReceive('getNextData')->once() ->andReturn(['rulesOptions' => [1 => 'Y', 0 => 'N',],]); $this->be($this->user()); $response = $this->get(route('import.job.configuration.index', [$job->key])); $response->assertStatus(200); // expect a redirect to prerequisites $response->assertSee('