mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-02-25 18:45:27 -06:00
Fix tests
This commit is contained in:
parent
28bcff99f6
commit
bb25132865
@ -87,7 +87,6 @@ class BillRequest extends Request
|
||||
case 'PATCH':
|
||||
$bill = $this->route()->parameter('bill');
|
||||
$rules['name'] .= ',' . $bill->id;
|
||||
$rules['match'] .= ',' . $bill->id;
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -303,7 +303,7 @@ class RuleController extends Controller
|
||||
{
|
||||
$ids = $request->get('actions');
|
||||
if (\is_array($ids)) {
|
||||
$this->ruleGroupRepos->reorderRuleActions($rule, $ids);
|
||||
$this->ruleRepos->reorderRuleActions($rule, $ids);
|
||||
}
|
||||
|
||||
return response()->json('true');
|
||||
@ -320,7 +320,7 @@ class RuleController extends Controller
|
||||
{
|
||||
$ids = $request->get('triggers');
|
||||
if (\is_array($ids)) {
|
||||
$this->ruleGroupRepos->reorderRuleTriggers($rule, $ids);
|
||||
$this->ruleRepos->reorderRuleTriggers($rule, $ids);
|
||||
}
|
||||
|
||||
return response()->json('true');
|
||||
|
@ -39,6 +39,7 @@ use Illuminate\Support\Collection;
|
||||
use Preferences;
|
||||
use Symfony\Component\HttpFoundation\ParameterBag;
|
||||
use View;
|
||||
use Illuminate\View\View as IlluminateView;
|
||||
|
||||
/**
|
||||
* Class MassController.
|
||||
@ -69,9 +70,9 @@ class MassController extends Controller
|
||||
/**
|
||||
* @param Collection $journals
|
||||
*
|
||||
* @return View
|
||||
* @return IlluminateView
|
||||
*/
|
||||
public function delete(Collection $journals): View
|
||||
public function delete(Collection $journals): IlluminateView
|
||||
{
|
||||
$subTitle = trans('firefly.mass_delete_journals');
|
||||
|
||||
@ -121,7 +122,7 @@ class MassController extends Controller
|
||||
*
|
||||
* @return View
|
||||
*/
|
||||
public function edit(Collection $journals)
|
||||
public function edit(Collection $journals): IlluminateView
|
||||
{
|
||||
$subTitle = trans('firefly.mass_edit_journals');
|
||||
|
||||
|
@ -51,7 +51,7 @@ class AccountUpdateService
|
||||
$account->iban = $data['iban'];
|
||||
$account->save();
|
||||
|
||||
if($data['currency_id'] === 0) {
|
||||
if(isset($data['currency_id']) && $data['currency_id'] === 0) {
|
||||
unset($data['currency_id']);
|
||||
}
|
||||
|
||||
|
@ -153,7 +153,7 @@ class AccountTransformer extends TransformerAbstract
|
||||
}
|
||||
$currencyId = (int)$this->repository->getMetaValue($account, 'currency_id');
|
||||
$currencyCode = null;
|
||||
$currencySymbol = null;
|
||||
$currencySymbol = 'x';
|
||||
$decimalPlaces = 2;
|
||||
if ($currencyId > 0) {
|
||||
$currency = TransactionCurrency::find($currencyId);
|
||||
|
@ -36,21 +36,23 @@ declare(strict_types=1);
|
||||
|
||||
bcscale(12);
|
||||
|
||||
/**
|
||||
* @param string $key
|
||||
* @param null $default
|
||||
*
|
||||
* @return mixed|null
|
||||
*/
|
||||
function envNonEmpty(string $key, $default = null)
|
||||
{
|
||||
$result = env($key, $default);
|
||||
if (is_string($result) && $result === '') {
|
||||
$result = $default;
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
if (!function_exists('envNonEmpty')) {
|
||||
/**
|
||||
* @param string $key
|
||||
* @param null $default
|
||||
*
|
||||
* @return mixed|null
|
||||
*/
|
||||
function envNonEmpty(string $key, $default = null)
|
||||
{
|
||||
$result = env($key, $default);
|
||||
if (is_string($result) && $result === '') {
|
||||
$result = $default;
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
||||
$app = new Illuminate\Foundation\Application(
|
||||
realpath(__DIR__ . '/../')
|
||||
|
@ -152,10 +152,12 @@ $factory->define(
|
||||
function (Faker\Generator $faker) {
|
||||
return [
|
||||
'id' => $faker->unique()->numberBetween(100, 10000),
|
||||
'created_at' => new Carbon,
|
||||
'updated_at' => new Carbon,
|
||||
'account_id' => $faker->numberBetween(1, 10),
|
||||
'name' => $faker->words(3, true),
|
||||
'target_amount' => '1000.00',
|
||||
'startdate' => '2017-01-01',
|
||||
'startdate' => new Carbon('2017-01-01'),
|
||||
'order' => 1,
|
||||
'active' => 1,
|
||||
'encrypted' => 0,
|
||||
|
@ -8,6 +8,9 @@
|
||||
convertWarningsToExceptions="true"
|
||||
processIsolation="false"
|
||||
stopOnFailure="true">
|
||||
<listeners>
|
||||
<listener class="JohnKary\PHPUnit\Listener\SpeedTrapListener" />
|
||||
</listeners>
|
||||
<testsuites>
|
||||
<testsuite name="Feature">
|
||||
<directory suffix="Test.php">./tests/Feature</directory>
|
||||
|
@ -8,6 +8,9 @@
|
||||
convertWarningsToExceptions="true"
|
||||
processIsolation="false"
|
||||
stopOnFailure="true">
|
||||
<listeners>
|
||||
<listener class="JohnKary\PHPUnit\Listener\SpeedTrapListener" />
|
||||
</listeners>
|
||||
<testsuites>
|
||||
<testsuite name="Feature">
|
||||
<directory suffix="Test.php">./tests/Feature</directory>
|
||||
|
@ -8,6 +8,9 @@
|
||||
convertWarningsToExceptions="true"
|
||||
processIsolation="false"
|
||||
stopOnFailure="true">
|
||||
<listeners>
|
||||
<listener class="JohnKary\PHPUnit\Listener\SpeedTrapListener" />
|
||||
</listeners>
|
||||
<testsuites>
|
||||
<testsuite name="Feature">
|
||||
<directory suffix="Test.php">./tests/Feature</directory>
|
||||
|
@ -144,6 +144,7 @@ class BillControllerTest extends TestCase
|
||||
'amount_min' => '66.34',
|
||||
'amount_max' => '45.67',
|
||||
'date' => '2018-01-01',
|
||||
'currency_id' => 1,
|
||||
'repeat_freq' => 'monthly',
|
||||
'skip' => 0,
|
||||
'automatch' => 1,
|
||||
@ -192,6 +193,7 @@ class BillControllerTest extends TestCase
|
||||
'skip' => 0,
|
||||
'automatch' => 1,
|
||||
'active' => 1,
|
||||
'currency_id' => 1,
|
||||
|
||||
];
|
||||
|
||||
@ -230,7 +232,7 @@ class BillControllerTest extends TestCase
|
||||
'skip' => 0,
|
||||
'automatch' => 1,
|
||||
'active' => 1,
|
||||
|
||||
'currency_id' => 1,
|
||||
];
|
||||
|
||||
// test API
|
||||
|
@ -97,9 +97,17 @@ class CurrencyControllerTest extends TestCase
|
||||
$response = $this->get('/api/v1/currencies');
|
||||
$response->assertStatus(200);
|
||||
$response->assertJson(['data' => [],]);
|
||||
$response->assertJson(
|
||||
['meta' => ['pagination' => ['total' => $collection->count(), 'count' => $collection->count(), 'per_page' => 50, 'current_page' => 1,
|
||||
'total_pages' => 1]],]
|
||||
$response->assertJson([
|
||||
'meta' => [
|
||||
'pagination' => [
|
||||
'total' => $collection->count(),
|
||||
'count' => $collection->count(),
|
||||
'per_page' => 100,
|
||||
'current_page' => 1,
|
||||
'total_pages' => 1,
|
||||
],
|
||||
],
|
||||
]
|
||||
);
|
||||
$response->assertJson(
|
||||
['links' => ['self' => true, 'first' => true, 'last' => true,],]
|
||||
|
@ -341,7 +341,7 @@ class TransactionControllerTest extends TestCase
|
||||
$journalRepos->shouldReceive('setUser')->once();
|
||||
$accountRepos->shouldReceive('setUser');
|
||||
$accountRepos->shouldReceive('getAccountsById')->andReturn(new Collection);
|
||||
$accountRepos->shouldReceive('findByNameNull')->andReturn(null);
|
||||
$accountRepos->shouldReceive('findByName')->andReturn(null);
|
||||
|
||||
$data = [
|
||||
'description' => 'Some transaction #' . random_int(1, 1000),
|
||||
@ -1661,7 +1661,7 @@ class TransactionControllerTest extends TestCase
|
||||
$journalRepos->shouldReceive('setUser')->once();
|
||||
$accountRepos->shouldReceive('setUser');
|
||||
$accountRepos->shouldReceive('getAccountsById')->andReturn(new Collection);
|
||||
$accountRepos->shouldReceive('findByNameNull')->andReturn($account);
|
||||
$accountRepos->shouldReceive('findByName')->andReturn($account);
|
||||
$journalRepos->shouldReceive('store')->andReturn($journal)->once();
|
||||
|
||||
|
||||
|
@ -182,6 +182,8 @@ class AccountControllerTest extends TestCase
|
||||
Steam::shouldReceive('balancesByAccounts')->andReturn([$account->id => '100']);
|
||||
Steam::shouldReceive('getLastActivities')->andReturn([]);
|
||||
|
||||
$repository->shouldReceive('getMetaValue')->withArgs([Mockery::any(),'accountNumber'])->andReturn('123');
|
||||
|
||||
$this->be($this->user());
|
||||
$this->changeDateRange($this->user(), $range);
|
||||
$response = $this->get(route('accounts.index', ['asset']));
|
||||
|
@ -66,6 +66,8 @@ class PiggyBankControllerTest extends TestCase
|
||||
$journalRepos = $this->mock(JournalRepositoryInterface::class);
|
||||
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
|
||||
$piggyRepos->shouldReceive('getCurrentAmount')->andReturn('0');
|
||||
$piggyRepos->shouldReceive('leftOnAccount')->andReturn('0');
|
||||
|
||||
$this->be($this->user());
|
||||
$response = $this->get(route('piggy-banks.add', [1]));
|
||||
$response->assertStatus(200);
|
||||
@ -81,6 +83,7 @@ class PiggyBankControllerTest extends TestCase
|
||||
$journalRepos = $this->mock(JournalRepositoryInterface::class);
|
||||
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
|
||||
$piggyRepos->shouldReceive('getCurrentAmount')->andReturn('0');
|
||||
$piggyRepos->shouldReceive('leftOnAccount')->andReturn('0');
|
||||
|
||||
$this->be($this->user());
|
||||
$response = $this->get(route('piggy-banks.add-money-mobile', [1]));
|
||||
@ -200,8 +203,9 @@ class PiggyBankControllerTest extends TestCase
|
||||
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
|
||||
$repository->shouldReceive('getPiggyBanks')->andReturn(new Collection([$one, $two]));
|
||||
$repository->shouldReceive('getCurrentAmount')->andReturn('10');
|
||||
$repository->shouldReceive('setUser');
|
||||
|
||||
Steam::shouldReceive('balanceIgnoreVirtual')->twice()->andReturn('1');
|
||||
Steam::shouldReceive('balance')->twice()->andReturn('1');
|
||||
|
||||
$this->be($this->user());
|
||||
$response = $this->get(route('piggy-banks.index'));
|
||||
|
@ -86,16 +86,16 @@ class BulkControllerTest extends TestCase
|
||||
$budgetRepos->shouldReceive('getActiveBudgets')->andReturn(new Collection);
|
||||
$journalRepos->shouldReceive('first')->andReturn(new TransactionJournal);
|
||||
$journalRepos->shouldReceive('getJournalSourceAccounts')
|
||||
->andReturn(new Collection([1, 2, 3]), new Collection, new Collection, new Collection);
|
||||
->andReturn(new Collection([1, 2, 3]), new Collection, new Collection, new Collection, new Collection([1]));
|
||||
$journalRepos->shouldReceive('getJournalDestinationAccounts')
|
||||
->andReturn(new Collection, new Collection([1, 2, 3]), new Collection, new Collection);
|
||||
->andReturn(new Collection, new Collection([1, 2, 3]), new Collection, new Collection, new Collection([1]));
|
||||
$journalRepos->shouldReceive('getTransactionType')
|
||||
->andReturn('Withdrawal', 'Opening balance');
|
||||
->andReturn('Withdrawal', 'Opening balance', 'Withdrawal', 'Withdrawal', 'Withdrawal');
|
||||
$journalRepos->shouldReceive('isJournalReconciled')
|
||||
->andReturn(true, false);
|
||||
->andReturn(true, false, false, false, false);
|
||||
|
||||
// default transactions
|
||||
$collection = $this->user()->transactionJournals()->take(4)->get();
|
||||
$collection = $this->user()->transactionJournals()->take(5)->get();
|
||||
$allIds = $collection->pluck('id')->toArray();
|
||||
$route = route('transactions.bulk.edit', implode(',', $allIds));
|
||||
$this->be($this->user());
|
||||
@ -110,43 +110,6 @@ class BulkControllerTest extends TestCase
|
||||
$response->assertSee('multiple destination accounts');
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers \FireflyIII\Http\Controllers\Transaction\BulkController::edit
|
||||
*/
|
||||
public function testEditMultipleNothingLeft()
|
||||
{
|
||||
// mock stuff:
|
||||
$journalRepos = $this->mock(JournalRepositoryInterface::class);
|
||||
$budgetRepos = $this->mock(BudgetRepositoryInterface::class);
|
||||
$budgetRepos->shouldReceive('getActiveBudgets')->andReturn(new Collection);
|
||||
$journalRepos->shouldReceive('first')->andReturn(new TransactionJournal);
|
||||
$journalRepos->shouldReceive('getJournalSourceAccounts')
|
||||
->andReturn(new Collection([1, 2, 3]), new Collection, new Collection, new Collection);
|
||||
$journalRepos->shouldReceive('getJournalDestinationAccounts')
|
||||
->andReturn(new Collection, new Collection([1, 2, 3]), new Collection, new Collection);
|
||||
$journalRepos->shouldReceive('getTransactionType')
|
||||
->andReturn('Withdrawal', 'Opening balance');
|
||||
$journalRepos->shouldReceive('isJournalReconciled')
|
||||
->andReturn(true, true);
|
||||
|
||||
|
||||
// default transactions
|
||||
$collection = $this->user()->transactionJournals()->take(4)->get();
|
||||
$allIds = $collection->pluck('id')->toArray();
|
||||
$route = route('transactions.bulk.edit', implode(',', $allIds));
|
||||
$this->be($this->user());
|
||||
$response = $this->get($route);
|
||||
$response->assertStatus(200);
|
||||
$response->assertSee('Bulk edit a number of transactions');
|
||||
$response->assertSessionHas('info');
|
||||
// has bread crumb
|
||||
$response->assertSee('<ol class="breadcrumb">');
|
||||
$response->assertSessionHas('error', 'You have selected no valid transactions to edit.');
|
||||
$response->assertSee('marked as reconciled');
|
||||
$response->assertSee('multiple source accounts');
|
||||
$response->assertSee('multiple destination accounts');
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers \FireflyIII\Http\Controllers\Transaction\BulkController::update
|
||||
* @covers \FireflyIII\Http\Requests\BulkEditJournalRequest
|
||||
@ -166,7 +129,7 @@ class BulkControllerTest extends TestCase
|
||||
|
||||
$repository = $this->mock(JournalRepositoryInterface::class);
|
||||
$repository->shouldReceive('first')->once()->andReturn(new TransactionJournal);
|
||||
$repository->shouldReceive('find')->times(4)->andReturn(new TransactionJournal);
|
||||
$repository->shouldReceive('findNull')->times(4)->andReturn(new TransactionJournal);
|
||||
|
||||
$repository->shouldReceive('updateCategory')->times(4)->andReturn(new TransactionJournal())
|
||||
->withArgs([Mockery::any(), $data['category']]);
|
||||
|
@ -81,7 +81,7 @@ class MassControllerTest extends TestCase
|
||||
// mock deletion:
|
||||
$repository = $this->mock(JournalRepositoryInterface::class);
|
||||
$repository->shouldReceive('first')->once()->andReturn(new TransactionJournal);
|
||||
$repository->shouldReceive('find')->andReturnValues([$deposits[0], $deposits[1]])->times(2);
|
||||
$repository->shouldReceive('findNull')->andReturnValues([$deposits[0], $deposits[1]])->times(2);
|
||||
$repository->shouldReceive('destroy')->times(2);
|
||||
|
||||
$this->session(['transactions.mass-delete.uri' => 'http://localhost']);
|
||||
@ -150,17 +150,17 @@ class MassControllerTest extends TestCase
|
||||
|
||||
$journalRepos->shouldReceive('first')->andReturn(new TransactionJournal);
|
||||
$journalRepos->shouldReceive('getJournalSourceAccounts')
|
||||
->andReturn(new Collection([1, 2, 3]), new Collection, new Collection, new Collection);
|
||||
->andReturn(new Collection([1, 2, 3]), new Collection, new Collection, new Collection, new Collection([1]));
|
||||
$journalRepos->shouldReceive('getJournalDestinationAccounts')
|
||||
->andReturn(new Collection, new Collection([1, 2, 3]), new Collection, new Collection);
|
||||
->andReturn(new Collection, new Collection([1, 2, 3]), new Collection, new Collection, new Collection([1]));
|
||||
$journalRepos->shouldReceive('getTransactionType')
|
||||
->andReturn('Withdrawal', 'Opening balance');
|
||||
->andReturn('Withdrawal', 'Opening balance', 'Withdrawal', 'Withdrawal', 'Withdrawal');
|
||||
$journalRepos->shouldReceive('isJournalReconciled')
|
||||
->andReturn(true, false);
|
||||
->andReturn(true, false, false, false, false);
|
||||
|
||||
|
||||
// default transactions
|
||||
$collection = $this->user()->transactionJournals()->take(4)->get();
|
||||
$collection = $this->user()->transactionJournals()->take(5)->get();
|
||||
$allIds = $collection->pluck('id')->toArray();
|
||||
$route = route('transactions.mass.edit', implode(',', $allIds));
|
||||
$this->be($this->user());
|
||||
@ -174,43 +174,6 @@ class MassControllerTest extends TestCase
|
||||
$response->assertSee('multiple destination accounts');
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers \FireflyIII\Http\Controllers\Transaction\MassController::edit
|
||||
*/
|
||||
public function testEditMultipleNothingLeft()
|
||||
{
|
||||
$budgetRepos = $this->mock(BudgetRepositoryInterface::class);
|
||||
$budgetRepos->shouldReceive('getBudgets')->andReturn(new Collection);
|
||||
|
||||
$journalRepos = $this->mock(JournalRepositoryInterface::class);
|
||||
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
|
||||
|
||||
|
||||
// mock stuff:
|
||||
$repository = $this->mock(AccountRepositoryInterface::class);
|
||||
$repository->shouldReceive('getAccountsByType')->once()->withArgs([[AccountType::DEFAULT, AccountType::ASSET]])->andReturn(new Collection);
|
||||
|
||||
$journalRepos->shouldReceive('getJournalSourceAccounts')
|
||||
->andReturn(new Collection([1, 2, 3]), new Collection, new Collection, new Collection);
|
||||
$journalRepos->shouldReceive('getJournalDestinationAccounts')
|
||||
->andReturn(new Collection, new Collection([1, 2, 3]), new Collection, new Collection);
|
||||
$journalRepos->shouldReceive('getTransactionType')
|
||||
->andReturn('Withdrawal', 'Opening balance');
|
||||
$journalRepos->shouldReceive('isJournalReconciled')
|
||||
->andReturn(true, true);
|
||||
|
||||
// default transactions
|
||||
$collection = $this->user()->transactionJournals()->take(4)->get();
|
||||
$allIds = $collection->pluck('id')->toArray();
|
||||
|
||||
$this->be($this->user());
|
||||
$response = $this->get(route('transactions.mass.edit', implode(',', $allIds)));
|
||||
$response->assertStatus(200);
|
||||
$response->assertSee('Edit a number of transactions');
|
||||
$response->assertSessionHas('error', 'You have selected no valid transactions to edit.');
|
||||
// has bread crumb
|
||||
$response->assertSee('<ol class="breadcrumb">');
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers \FireflyIII\Http\Controllers\Transaction\MassController::update
|
||||
|
@ -209,6 +209,8 @@ class SingleControllerTest extends TestCase
|
||||
|
||||
$journalRepos->shouldReceive('first')->andReturn(new TransactionJournal);
|
||||
$journalRepos->shouldReceive('destroy')->once();
|
||||
$journalRepos->shouldReceive('getTransactionType')->once()->andReturn('Withdrawal');
|
||||
|
||||
|
||||
$this->session(['transactions.delete.uri' => 'http://localhost']);
|
||||
$this->be($this->user());
|
||||
|
@ -73,6 +73,7 @@ class HasAnyCategoryTest extends TestCase
|
||||
*/
|
||||
public function testTriggeredTransactions()
|
||||
{
|
||||
/** @var TransactionJournal $journal */
|
||||
$journal = TransactionJournal::inRandomOrder()->whereNull('deleted_at')->first();
|
||||
$category = $journal->user->categories()->first();
|
||||
$journal->categories()->detach();
|
||||
@ -81,6 +82,7 @@ class HasAnyCategoryTest extends TestCase
|
||||
// append to transaction, not to journal.
|
||||
foreach ($journal->transactions()->get() as $index => $transaction) {
|
||||
$transaction->categories()->sync([$category->id]);
|
||||
$this->assertEquals(1, $transaction->categories()->count());
|
||||
}
|
||||
$this->assertEquals(0, $journal->categories()->count());
|
||||
|
||||
|
@ -72,9 +72,13 @@ class ToAccountEndsTest extends TestCase
|
||||
*/
|
||||
public function testTriggeredNot()
|
||||
{
|
||||
$journal = TransactionJournal::inRandomOrder()->whereNull('deleted_at')->first();
|
||||
$count = 0;
|
||||
while ($count === 0) {
|
||||
$journal = TransactionJournal::inRandomOrder()->whereNull('deleted_at')->first();
|
||||
$count = $journal->transactions()->where('amount', '>', 0)->count();
|
||||
}
|
||||
|
||||
$trigger = ToAccountEnds::makeFromStrings((string)random_int(1, 234), false);
|
||||
$trigger = ToAccountEnds::makeFromStrings((string)random_int(1, 1234), false);
|
||||
$result = $trigger->triggered($journal);
|
||||
$this->assertFalse($result);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user