diff --git a/app/Http/Middleware/InterestingMessage.php b/app/Http/Middleware/InterestingMessage.php index da4b953e7c..19e38be5cd 100644 --- a/app/Http/Middleware/InterestingMessage.php +++ b/app/Http/Middleware/InterestingMessage.php @@ -44,7 +44,7 @@ class InterestingMessage */ public function handle(Request $request, Closure $next) { - Log::debug(sprintf('Interesting Message middleware for URI %s', $request->url())); + //Log::debug(sprintf('Interesting Message middleware for URI %s', $request->url())); if ($this->testing()) { return $next($request); } diff --git a/app/Rules/BelongsUser.php b/app/Rules/BelongsUser.php index a8d085e115..c9497d45dc 100644 --- a/app/Rules/BelongsUser.php +++ b/app/Rules/BelongsUser.php @@ -31,6 +31,7 @@ use FireflyIII\Models\Budget; use FireflyIII\Models\Category; use FireflyIII\Models\PiggyBank; use Illuminate\Contracts\Validation\Rule; +use Log; /** * Class BelongsUser @@ -78,6 +79,7 @@ class BelongsUser implements Rule return true; // @codeCoverageIgnore } $attribute = (string)$attribute; + Log::debug(sprintf('Going to validate %s', $attribute)); switch ($attribute) { case 'piggy_bank_id': return $this->validatePiggyBankId((int)$value); @@ -112,6 +114,7 @@ class BelongsUser implements Rule */ protected function countField(string $class, string $field, string $value): int { + $value = trim($value); $objects = []; // get all objects belonging to user: if (PiggyBank::class === $class) { @@ -124,8 +127,11 @@ class BelongsUser implements Rule } $count = 0; foreach ($objects as $object) { - if (trim((string)$object->$field) === trim($value)) { + $objectValue = trim((string)$object->$field); + Log::debug(sprintf('Comparing object "%s" with value "%s"', $objectValue, $value)); + if ($objectValue === $value) { $count++; + Log::debug(sprintf('Hit! Count is now %d', $count)); } } @@ -182,6 +188,7 @@ class BelongsUser implements Rule private function validateBillName(string $value): bool { $count = $this->countField(Bill::class, 'name', $value); + Log::debug(sprintf('Result of countField for bill name "%s" is %d', $value, $count)); return 1 === $count; } diff --git a/tests/Feature/Controllers/ProfileControllerTest.php b/tests/Feature/Controllers/ProfileControllerTest.php index 3161c70ffb..02c6fa8167 100644 --- a/tests/Feature/Controllers/ProfileControllerTest.php +++ b/tests/Feature/Controllers/ProfileControllerTest.php @@ -98,9 +98,6 @@ class ProfileControllerTest extends TestCase $userRepos->shouldReceive('hasRole')->withArgs([Mockery::any(), 'owner'])->atLeast()->once()->andReturn(true); $userRepos->shouldReceive('hasRole')->withArgs([Mockery::any(), 'demo'])->atLeast()->once()->andReturn(false); - // set recovery codes. - Preferences::shouldReceive('set')->withArgs(['mfa_recovery', Mockery::any()])->atLeast()->once(); - Google2FA::shouldReceive('generateSecretKey')->andReturn('secret'); Google2FA::shouldReceive('getQRCodeInline')->andReturn('long-data-url'); @@ -448,6 +445,16 @@ class ProfileControllerTest extends TestCase $userRepos->shouldReceive('setMFACode')->withArgs([Mockery::any(), $secret])->atLeast()->once(); + // set recovery history + Preferences::shouldReceive('set')->withArgs(['mfa_history', Mockery::any()])->atLeast()->once(); + + // set recovery codes. + Preferences::shouldReceive('set')->withArgs(['mfa_recovery', null])->atLeast()->once(); + + $pref = new Preference; + $pref->data= []; + Preferences::shouldReceive('get')->withArgs(['mfa_history', []])->atLeast()->once()->andReturn($pref); + Preferences::shouldReceive('mark')->once(); Google2FA::shouldReceive('verifyKey')->withArgs([$secret, $key])->andReturn(true); diff --git a/tests/Feature/Controllers/Transaction/CreateControllerTest.php b/tests/Feature/Controllers/Transaction/CreateControllerTest.php index 55d091a564..b785b7b77e 100644 --- a/tests/Feature/Controllers/Transaction/CreateControllerTest.php +++ b/tests/Feature/Controllers/Transaction/CreateControllerTest.php @@ -50,6 +50,7 @@ class CreateControllerTest extends TestCase public function testCreate(): void { $this->mockDefaultSession(); + $this->mockIntroPreference('shown_demo_transactions_create_withdrawal'); $accountRepos = $this->mock(AccountRepositoryInterface::class); $userRepos = $this->mock(UserRepositoryInterface::class); $cash = $this->getRandomAsset(); @@ -63,7 +64,7 @@ class CreateControllerTest extends TestCase $this->be($this->user()); - $response = $this->get(route('transactions.create')); + $response = $this->get(route('transactions.create', ['withdrawal'])); $response->assertStatus(200); } } \ No newline at end of file diff --git a/tests/Feature/Controllers/Transaction/LinkControllerTest.php b/tests/Feature/Controllers/Transaction/LinkControllerTest.php index 1db52da8a7..e6d37a859d 100644 --- a/tests/Feature/Controllers/Transaction/LinkControllerTest.php +++ b/tests/Feature/Controllers/Transaction/LinkControllerTest.php @@ -133,7 +133,7 @@ class LinkControllerTest extends TestCase $response->assertStatus(302); $response->assertSessionHas('success'); - $response->assertRedirect(route('transactions.show', [$withdrawal->id])); + $response->assertRedirect(route('transactions.show', [$withdrawal->transaction_group_id])); } /** diff --git a/tests/Unit/Rules/BelongsUserTest.php b/tests/Unit/Rules/BelongsUserTest.php index 8b4e56839f..4eca8eddfb 100644 --- a/tests/Unit/Rules/BelongsUserTest.php +++ b/tests/Unit/Rules/BelongsUserTest.php @@ -90,6 +90,8 @@ class BelongsUserTest extends TestCase try { $this->assertTrue($engine->passes($attribute, $value)); } catch (FireflyException $e) { + Log::error($e->getMessage()); + Log::error($e->getTraceAsString()); $this->assertTrue(false, $e->getMessage()); } }