Possible fix for #2437

This commit is contained in:
James Cole 2019-08-23 09:41:31 +02:00
parent 4f6ba1e706
commit 02df24bbc9
5 changed files with 553 additions and 529 deletions

File diff suppressed because it is too large Load Diff

View File

@ -192,11 +192,12 @@ class BillController extends Controller
*/ */
public function index() public function index()
{ {
$start = session('start'); $start = session('start');
$end = session('end'); $end = session('end');
$pageSize = (int)app('preferences')->get('listPageSize', 50)->data; $pageSize = (int)app('preferences')->get('listPageSize', 50)->data;
$paginator = $this->billRepository->getPaginator($pageSize); $paginator = $this->billRepository->getPaginator($pageSize);
$parameters = new ParameterBag(); $defaultCurrency = app('amount')->getDefaultCurrency();
$parameters = new ParameterBag();
$parameters->set('start', $start); $parameters->set('start', $start);
$parameters->set('end', $end); $parameters->set('end', $end);
@ -206,9 +207,9 @@ class BillController extends Controller
/** @var Collection $bills */ /** @var Collection $bills */
$bills = $paginator->getCollection()->map( $bills = $paginator->getCollection()->map(
static function (Bill $bill) use ($transformer) { static function (Bill $bill) use ($transformer, $defaultCurrency) {
$return = $transformer->transform($bill); $return = $transformer->transform($bill);
$return['currency'] = $bill->transactionCurrency; $return['currency'] = $bill->transactionCurrency ?? $defaultCurrency;
return $return; return $return;
} }

View File

@ -150,7 +150,6 @@ class BillControllerTest extends TestCase
} }
/** /**
* @covers \FireflyIII\Http\Controllers\BillController
* @covers \FireflyIII\Http\Controllers\BillController * @covers \FireflyIII\Http\Controllers\BillController
*/ */
public function testIndex(): void public function testIndex(): void
@ -158,6 +157,8 @@ class BillControllerTest extends TestCase
$this->mockDefaultSession(); $this->mockDefaultSession();
$this->mockIntroPreference('shown_demo_bills_index'); $this->mockIntroPreference('shown_demo_bills_index');
Amount::shouldReceive('getDefaultCurrency')->andReturn($this->getEuro());
// mock stuff // mock stuff
$this->mock(AttachmentHelperInterface::class); $this->mock(AttachmentHelperInterface::class);
$bill = $this->getRandomBill(); $bill = $this->getRandomBill();

View File

@ -267,6 +267,8 @@ class CurrencyControllerTest extends TestCase
$userRepos->shouldReceive('hasRole')->atLeast()->once()->andReturn(true); $userRepos->shouldReceive('hasRole')->atLeast()->once()->andReturn(true);
$repository->shouldReceive('currencyInuse')->atLeast()->once()->andReturn(true); $repository->shouldReceive('currencyInuse')->atLeast()->once()->andReturn(true);
$repository->shouldReceive('currencyInUseAt')->atLeast()->once()->andReturn('accounts');
$repository->shouldNotReceive('disable'); $repository->shouldNotReceive('disable');
Preferences::shouldReceive('mark')->atLeast()->once(); Preferences::shouldReceive('mark')->atLeast()->once();

View File

@ -88,8 +88,13 @@ class BillTransformerTest extends TestCase
// repos should also receive call for dates: // repos should also receive call for dates:
$list = new Collection( $list = new Collection(
[new Carbon('2018-01-02'), new Carbon('2018-01-09'), new Carbon('2018-01-16'), [
new Carbon('2018-01-21'), new Carbon('2018-01-30'),
(object)['date' => new Carbon('2018-01-02'), 'id' => 1, 'transaction_group_id' => 1,],
(object)['date' => new Carbon('2018-01-09'), 'id' => 1, 'transaction_group_id' => 1,],
(object)['date' => new Carbon('2018-01-16'), 'id' => 1, 'transaction_group_id' => 1,],
(object)['date' => new Carbon('2018-01-21'), 'id' => 1, 'transaction_group_id' => 1,],
(object)['date' => new Carbon('2018-01-30'), 'id' => 1, 'transaction_group_id' => 1,],
] ]
); );
$repository->shouldReceive('getPaidDatesInRange')->atLeast()->once()->andReturn($list); $repository->shouldReceive('getPaidDatesInRange')->atLeast()->once()->andReturn($list);
@ -112,7 +117,15 @@ class BillTransformerTest extends TestCase
$this->assertEquals('2018-03-01', $result['next_expected_match']); $this->assertEquals('2018-03-01', $result['next_expected_match']);
$this->assertEquals(['2018-01-01'], $result['pay_dates']); $this->assertEquals(['2018-01-01'], $result['pay_dates']);
$this->assertEquals(['2018-01-02', '2018-01-09', '2018-01-16', '2018-01-21', '2018-01-30',], $result['paid_dates']); $this->assertEquals(
[
['date' => '2018-01-02', 'transaction_group_id' => 1, 'transaction_journal_id' => 1,],
['date' => '2018-01-09', 'transaction_group_id' => 1, 'transaction_journal_id' => 1,],
['date' => '2018-01-16', 'transaction_group_id' => 1, 'transaction_journal_id' => 1,],
['date' => '2018-01-21', 'transaction_group_id' => 1, 'transaction_journal_id' => 1,],
['date' => '2018-01-30', 'transaction_group_id' => 1, 'transaction_journal_id' => 1,],
], $result['paid_dates']
);
} }
} }