Expand test coverage.

This commit is contained in:
James Cole
2018-06-01 22:04:52 +02:00
parent 2a05cc382f
commit a7b8470d9e
31 changed files with 951 additions and 173 deletions

View File

@@ -210,18 +210,7 @@ class AccountController extends Controller
$request->session()->flash('preFilled', $preFilled);
return view(
'accounts.edit',
compact(
'account',
'currency',
'subTitle',
'subTitleIcon',
'what',
'roles',
'preFilled'
)
);
return view('accounts.edit', compact('account', 'currency', 'subTitle', 'subTitleIcon', 'what', 'roles', 'preFilled'));
}
/**
@@ -340,7 +329,7 @@ class AccountController extends Controller
public function showAll(Request $request, Account $account)
{
if (AccountType::INITIAL_BALANCE === $account->accountType->type) {
return $this->redirectToOriginalAccount($account);
return $this->redirectToOriginalAccount($account); // @codeCoverageIgnore
}
$end = new Carbon;
$today = new Carbon;

View File

@@ -96,6 +96,7 @@ class BudgetController extends Controller
// if today is between start and end, use the diff in days between end and today (days left)
// otherwise, use diff between start and end.
$today = new Carbon;
Log::debug(sprintf('Start is %s, end is %s, today is %s', $start->format('Y-m-d'), $end->format('Y-m-d'),$today->format('Y-m-d')));
if ($today->gte($start) && $today->lte($end)) {
$days = $end->diffInDays($today);
$daysInMonth = $start->diffInDays($today);

View File

@@ -66,6 +66,7 @@ class DebugController extends Controller
$userAgent = $request->header('user-agent');
$isSandstorm = var_export(env('IS_SANDSTORM', 'unknown'), true);
$isDocker = var_export(env('IS_DOCKER', 'unknown'), true);
$toSandbox = var_export(env('BUNQ_USE_SANDBOX', 'unknown'), true);
$trustedProxies = env('TRUSTED_PROXIES', '(none)');
$displayErrors = ini_get('display_errors');
$errorReporting = $this->errorReporting((int)ini_get('error_reporting'));
@@ -96,40 +97,24 @@ class DebugController extends Controller
if (null !== $logFile) {
try {
$logContent = file_get_contents($logFile);
// @codeCoverageIgnoreStart
} catch (Exception $e) {
// don't care
Log::debug(sprintf('Could not read log file. %s', $e->getMessage()));
}
// @codeCoverageIgnoreEnd
}
}
}
// last few lines
$logContent = 'Truncated from this point <----|' . substr($logContent, -4096);
$logContent = 'Truncated from this point <----|' . substr($logContent, -8192);
return view(
'debug',
compact(
'phpVersion',
'extensions', 'localeAttempts',
'appEnv',
'appDebug',
'appLog',
'appLogLevel',
'now',
'packages',
'drivers',
'currentDriver',
'userAgent',
'displayErrors',
'errorReporting',
'phpOs',
'interface',
'logContent',
'cacheDriver',
'isDocker',
'isSandstorm',
'trustedProxies'
)
'debug', compact(
'phpVersion', 'extensions', 'localeAttempts', 'appEnv', 'appDebug', 'appLog', 'appLogLevel', 'now', 'packages', 'drivers', 'currentDriver',
'userAgent', 'displayErrors', 'errorReporting', 'phpOs', 'interface', 'logContent', 'cacheDriver', 'isDocker', 'isSandstorm', 'trustedProxies',
'toSandbox'
)
);
}

View File

@@ -133,10 +133,12 @@ class HomeController extends Controller
Log::debug('Call twig:clean...');
try {
Artisan::call('twig:clean');
// @codeCoverageIgnoreStart
} catch (Exception $e) {
// dont care
// don't care
Log::debug('Called twig:clean.');
}
// @codeCoverageIgnoreEnd
Log::debug('Call view:clear...');
Artisan::call('view:clear');
Log::debug('Done! Redirecting...');

View File

@@ -156,8 +156,9 @@ class IndexController extends Controller
public function download(ImportJob $job): LaravelResponse
{
Log::debug('Now in download()', ['job' => $job->key]);
$config = $job->configuration;
$config = $this->repository->getConfiguration($job);
// This is CSV import specific:
$config['delimiter'] = $config['delimiter'] ?? ',';
$config['delimiter'] = "\t" === $config['delimiter'] ? 'tab' : $config['delimiter'];
// this prevents private information from escaping

View File

@@ -29,6 +29,7 @@ use FireflyIII\Models\TransactionCurrency;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Log;
use Preferences;
@@ -68,9 +69,9 @@ class JavascriptController extends Controller
/**
* @param CurrencyRepositoryInterface $repository
*
* @return \Illuminate\Http\Response
* @return Response
*/
public function currencies(CurrencyRepositoryInterface $repository)
public function currencies(CurrencyRepositoryInterface $repository): Response
{
$currencies = $repository->get();
$data = ['currencies' => []];
@@ -102,7 +103,8 @@ class JavascriptController extends Controller
}
/** @var TransactionCurrency $currency */
$currency = $currencyRepository->findNull($currencyId);
if (0 === $currencyId) {
if (null === $currency) {
/** @var TransactionCurrency $currency */
$currency = app('amount')->getDefaultCurrency();
}

View File

@@ -35,6 +35,7 @@ use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface;
use FireflyIII\Repositories\Journal\JournalRepositoryInterface;
use FireflyIII\Repositories\Tag\TagRepositoryInterface;
use FireflyIII\Support\CacheProperties;
use Illuminate\Http\JsonResponse;
/**
* Class AutoCompleteController.
@@ -47,7 +48,7 @@ class AutoCompleteController extends Controller
*
* @param AccountRepositoryInterface $repository
*
* @return \Illuminate\Http\JsonResponse
* @return JsonResponse
*/
public function allAccounts(AccountRepositoryInterface $repository)
{
@@ -64,9 +65,9 @@ class AutoCompleteController extends Controller
/**
* @param JournalCollectorInterface $collector
*
* @return \Illuminate\Http\JsonResponse
* @return JsonResponse
*/
public function allTransactionJournals(JournalCollectorInterface $collector)
public function allTransactionJournals(JournalCollectorInterface $collector): JsonResponse
{
$collector->setLimit(250)->setPage(1);
$return = array_unique($collector->getJournals()->pluck('description')->toArray());
@@ -80,9 +81,9 @@ class AutoCompleteController extends Controller
*
* @param BillRepositoryInterface $repository
*
* @return \Illuminate\Http\JsonResponse
* @return JsonResponse
*/
public function bills(BillRepositoryInterface $repository)
public function bills(BillRepositoryInterface $repository): JsonResponse
{
$return = array_unique(
$repository->getActiveBills()->pluck('name')->toArray()
@@ -95,7 +96,7 @@ class AutoCompleteController extends Controller
/**
* @param BudgetRepositoryInterface $repository
*
* @return \Illuminate\Http\JsonResponse
* @return JsonResponse
*/
public function budgets(BudgetRepositoryInterface $repository)
{
@@ -110,7 +111,7 @@ class AutoCompleteController extends Controller
*
* @param CategoryRepositoryInterface $repository
*
* @return \Illuminate\Http\JsonResponse
* @return JsonResponse
*/
public function categories(CategoryRepositoryInterface $repository)
{
@@ -123,7 +124,7 @@ class AutoCompleteController extends Controller
/**
* @param CurrencyRepositoryInterface $repository
*
* @return \Illuminate\Http\JsonResponse
* @return JsonResponse
*/
public function currencyNames(CurrencyRepositoryInterface $repository)
{
@@ -138,7 +139,7 @@ class AutoCompleteController extends Controller
*
* @param AccountRepositoryInterface $repository
*
* @return \Illuminate\Http\JsonResponse
* @return JsonResponse
*/
public function expenseAccounts(AccountRepositoryInterface $repository)
{
@@ -163,7 +164,7 @@ class AutoCompleteController extends Controller
* @param JournalCollectorInterface $collector
* @param TransactionJournal $except
*
* @return \Illuminate\Http\JsonResponse|mixed
* @return JsonResponse|mixed
*/
public function journalsWithId(JournalCollectorInterface $collector, TransactionJournal $except)
{
@@ -195,7 +196,7 @@ class AutoCompleteController extends Controller
/**
* @param AccountRepositoryInterface $repository
*
* @return \Illuminate\Http\JsonResponse
* @return JsonResponse
*/
public function revenueAccounts(AccountRepositoryInterface $repository)
{
@@ -220,7 +221,7 @@ class AutoCompleteController extends Controller
*
* @param TagRepositoryInterface $tagRepository
*
* @return \Illuminate\Http\JsonResponse
* @return JsonResponse
*/
public function tags(TagRepositoryInterface $tagRepository)
{
@@ -234,7 +235,7 @@ class AutoCompleteController extends Controller
* @param JournalCollectorInterface $collector
* @param string $what
*
* @return \Illuminate\Http\JsonResponse
* @return JsonResponse
*/
public function transactionJournals(JournalCollectorInterface $collector, string $what)
{
@@ -251,7 +252,7 @@ class AutoCompleteController extends Controller
/**
* @param JournalRepositoryInterface $repository
*
* @return \Illuminate\Http\JsonResponse
* @return JsonResponse
*/
public function transactionTypes(JournalRepositoryInterface $repository)
{

View File

@@ -424,7 +424,7 @@ class ProfileController extends Controller
/**
*
*/
private function createOAuthKeys()
private function createOAuthKeys(): void
{
$rsa = new RSA();
$keys = $rsa->createKey(4096);
@@ -437,11 +437,13 @@ class ProfileController extends Controller
if (file_exists($publicKey) || file_exists($privateKey)) {
return;
}
// @codeCoverageIgnoreStart
Log::alert('NO OAuth keys were found. They have been created.');
file_put_contents($publicKey, array_get($keys, 'publickey'));
file_put_contents($privateKey, array_get($keys, 'privatekey'));
}
// @codeCoverageIgnoreEnd
/**
* @return string

View File

@@ -352,12 +352,12 @@ class RuleController extends Controller
// redirect to show bill.
if ($request->get('return_to_bill') === 'true' && (int)$request->get('bill_id') > 0) {
return redirect(route('bills.show', [(int)$request->get('bill_id')]));
return redirect(route('bills.show', [(int)$request->get('bill_id')])); // @codeCoverageIgnore
}
// redirect to new bill creation.
if ((int)$request->get('bill_id') > 0) {
return redirect($this->getPreviousUri('bills.create.uri'));
return redirect($this->getPreviousUri('bills.create.uri')); // @codeCoverageIgnore
}
@@ -403,10 +403,12 @@ class RuleController extends Controller
$matcher->setTriggers($triggers);
try {
$matchingTransactions = $matcher->findTransactionsByTriggers();
// @codeCoverageIgnoreStart
} catch (FireflyException $exception) {
Log::error(sprintf('Could not grab transactions in testTriggers(): %s', $exception->getMessage()));
Log::error($exception->getTraceAsString());
}
// @codeCoverageIgnoreStart
// Warn the user if only a subset of transactions is returned
@@ -422,10 +424,12 @@ class RuleController extends Controller
$view = 'ERROR, see logs.';
try {
$view = view('list.journals-tiny', ['transactions' => $matchingTransactions])->render();
// @codeCoverageIgnoreStart
} catch (Throwable $exception) {
Log::error(sprintf('Could not render view in testTriggers(): %s', $exception->getMessage()));
Log::error($exception->getTraceAsString());
}
// @codeCoverageIgnoreEnd
return response()->json(['html' => $view, 'warning' => $warning]);
}
@@ -461,10 +465,12 @@ class RuleController extends Controller
$matcher->setRule($rule);
try {
$matchingTransactions = $matcher->findTransactionsByRule();
// @codeCoverageIgnoreStart
} catch (FireflyException $exception) {
Log::error(sprintf('Could not grab transactions in testTriggersByRule(): %s', $exception->getMessage()));
Log::error($exception->getTraceAsString());
}
// @codeCoverageIgnoreEnd
// Warn the user if only a subset of transactions is returned
$warning = '';
@@ -479,10 +485,12 @@ class RuleController extends Controller
$view = 'ERROR, see logs.';
try {
$view = view('list.journals-tiny', ['transactions' => $matchingTransactions])->render();
// @codeCoverageIgnoreStart
} catch (Throwable $exception) {
Log::error(sprintf('Could not render view in testTriggersByRule(): %s', $exception->getMessage()));
Log::error($exception->getTraceAsString());
}
// @codeCoverageIgnoreEnd
return response()->json(['html' => $view, 'warning' => $warning]);
}
@@ -587,10 +595,12 @@ class RuleController extends Controller
'count' => 1,
]
)->render();
// @codeCoverageIgnoreStart
} catch (Throwable $e) {
Log::error(sprintf('Throwable was thrown in getActionsForBill(): %s', $e->getMessage()));
Log::error($e->getTraceAsString());
}
// @codeCoverageIgnoreEnd
return $actions;
}
@@ -620,10 +630,12 @@ class RuleController extends Controller
'count' => $count,
]
)->render();
// @codeCoverageIgnoreStart
} catch (Throwable $e) {
Log::debug(sprintf('Throwable was thrown in getCurrentActions(): %s', $e->getMessage()));
Log::error($e->getTraceAsString());
}
// @codeCoverageIgnoreEnd
++$index;
}
@@ -655,10 +667,12 @@ class RuleController extends Controller
'count' => $count,
]
)->render();
// @codeCoverageIgnoreStart
} catch (Throwable $e) {
Log::debug(sprintf('Throwable was thrown in getCurrentTriggers(): %s', $e->getMessage()));
Log::error($e->getTraceAsString());
}
// @codeCoverageIgnoreEnd
++$index;
}
}
@@ -691,10 +705,12 @@ class RuleController extends Controller
'count' => $count,
]
)->render();
// @codeCoverageIgnoreStart
} catch (Throwable $e) {
Log::debug(sprintf('Throwable was thrown in getPreviousActions(): %s', $e->getMessage()));
Log::error($e->getTraceAsString());
}
// @codeCoverageIgnoreEnd
++$newIndex;
}
@@ -727,10 +743,12 @@ class RuleController extends Controller
'count' => $count,
]
)->render();
// @codeCoverageIgnoreStart
} catch (Throwable $e) {
Log::debug(sprintf('Throwable was thrown in getPreviousTriggers(): %s', $e->getMessage()));
Log::error($e->getTraceAsString());
}
// @codeCoverageIgnoreEnd
++$newIndex;
}
@@ -786,10 +804,12 @@ class RuleController extends Controller
'count' => 4,
]
)->render();
// @codeCoverageIgnoreStart
} catch (Throwable $e) {
Log::debug(sprintf('Throwable was thrown in getTriggersForBill(): %s', $e->getMessage()));
Log::debug($e->getTraceAsString());
}
// @codeCoverageIgnoreEnd
return $triggers;
}