Fix tests

This commit is contained in:
James Cole 2018-04-27 11:29:09 +02:00
parent 28bcff99f6
commit bb25132865
No known key found for this signature in database
GPG Key ID: C16961E655E74B5E
20 changed files with 81 additions and 118 deletions

View File

@ -87,7 +87,6 @@ class BillRequest extends Request
case 'PATCH':
$bill = $this->route()->parameter('bill');
$rules['name'] .= ',' . $bill->id;
$rules['match'] .= ',' . $bill->id;
break;
}

View File

@ -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');

View File

@ -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');

View File

@ -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']);
}

View File

@ -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);

View File

@ -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__ . '/../')

View File

@ -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,

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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

View File

@ -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,],]

View File

@ -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();

View File

@ -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']));

View File

@ -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'));

View File

@ -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']]);

View File

@ -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

View File

@ -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());

View File

@ -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());

View File

@ -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);
}