Classes

Bubble size = executable lines. Hover for details, click to navigate.

0% 20% 40% 60% 80% 100% 0 20 40 60 80 Line Coverage (%) Cyclomatic Complexity App\Domain\Auth\Repository\AuthRepository — Coverage: 81.9% | Lines: 248 | Complexity: 66

 

Sorted by descending CRAP (Change Risk Anti-Patterns) index.

Class CRAP Coverage
App\Domain\Auth\Repository\AuthRepository92.0281.9%

Methods

Bubble size = executable lines. Hover for details, click to navigate.

0% 20% 40% 60% 80% 100% 0 2 4 6 Line Coverage (%) Cyclomatic Complexity App\Domain\Auth\Repository\AuthRepository::isAccountLocked — Coverage: 94.1% | Lines: 17 | Complexity: 5 App\Domain\Auth\Repository\AuthRepository::findValidEmailChangeToken — Coverage: 93.3% | Lines: 15 | Complexity: 3 App\Domain\Auth\Repository\AuthRepository::createUser — Coverage: 92.9% | Lines: 14 | Complexity: 2 App\Domain\Auth\Repository\AuthRepository::storeRefreshToken — Coverage: 92.9% | Lines: 14 | Complexity: 2 App\Domain\Auth\Repository\AuthRepository::findValidResetToken — Coverage: 0.0% | Lines: 14 | Complexity: 3 App\Domain\Auth\Repository\AuthRepository::storeEmailChangeToken — Coverage: 91.7% | Lines: 12 | Complexity: 2 App\Domain\Auth\Repository\AuthRepository::lockAccount — Coverage: 90.0% | Lines: 10 | Complexity: 2 App\Domain\Auth\Repository\AuthRepository::storePasswordResetToken — Coverage: 90.0% | Lines: 10 | Complexity: 2 App\Domain\Auth\Repository\AuthRepository::findUserByEmail — Coverage: 88.9% | Lines: 9 | Complexity: 3 App\Domain\Auth\Repository\AuthRepository::findUserByUsername — Coverage: 88.9% | Lines: 9 | Complexity: 3 App\Domain\Auth\Repository\AuthRepository::findUserByInvestorId — Coverage: 88.9% | Lines: 9 | Complexity: 3 App\Domain\Auth\Repository\AuthRepository::findUserById — Coverage: 88.9% | Lines: 9 | Complexity: 3 App\Domain\Auth\Repository\AuthRepository::findSessionByRefreshToken — Coverage: 88.9% | Lines: 9 | Complexity: 3 App\Domain\Auth\Repository\AuthRepository::getPasswordHash — Coverage: 87.5% | Lines: 8 | Complexity: 3 App\Domain\Auth\Repository\AuthRepository::invalidateResetTokensForUser — Coverage: 87.5% | Lines: 8 | Complexity: 2 App\Domain\Auth\Repository\AuthRepository::emailExists — Coverage: 85.7% | Lines: 7 | Complexity: 2 App\Domain\Auth\Repository\AuthRepository::usernameExists — Coverage: 85.7% | Lines: 7 | Complexity: 2 App\Domain\Auth\Repository\AuthRepository::revokeRefreshToken — Coverage: 85.7% | Lines: 7 | Complexity: 2 App\Domain\Auth\Repository\AuthRepository::revokeAllUserTokens — Coverage: 85.7% | Lines: 7 | Complexity: 2 App\Domain\Auth\Repository\AuthRepository::cleanupExpiredTokens — Coverage: 85.7% | Lines: 7 | Complexity: 2 App\Domain\Auth\Repository\AuthRepository::updateLastLogin — Coverage: 85.7% | Lines: 7 | Complexity: 2 App\Domain\Auth\Repository\AuthRepository::incrementFailedLoginAttempts — Coverage: 85.7% | Lines: 7 | Complexity: 2 App\Domain\Auth\Repository\AuthRepository::isEmailTakenByAnotherUser — Coverage: 85.7% | Lines: 7 | Complexity: 2 App\Domain\Auth\Repository\AuthRepository::markResetTokenUsed — Coverage: 0.0% | Lines: 6 | Complexity: 2 App\Domain\Auth\Repository\AuthRepository::updatePassword — Coverage: 83.3% | Lines: 6 | Complexity: 2 App\Domain\Auth\Repository\AuthRepository::updateUserEmail — Coverage: 83.3% | Lines: 6 | Complexity: 2 App\Domain\Auth\Repository\AuthRepository::markEmailChangeTokenUsed — Coverage: 83.3% | Lines: 6 | Complexity: 2 App\Domain\Auth\Repository\AuthRepository::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1

 

Sorted by descending CRAP (Change Risk Anti-Patterns) index.

Method CRAP Coverage
App\Domain\Auth\Repository\AuthRepository::findValidResetToken120.0%
App\Domain\Auth\Repository\AuthRepository::markResetTokenUsed60.0%
App\Domain\Auth\Repository\AuthRepository::isAccountLocked5.0194.1%
App\Domain\Auth\Repository\AuthRepository::getPasswordHash3.0287.5%
App\Domain\Auth\Repository\AuthRepository::findUserByEmail3.0188.9%
App\Domain\Auth\Repository\AuthRepository::findUserByUsername3.0188.9%
App\Domain\Auth\Repository\AuthRepository::findUserByInvestorId3.0188.9%
App\Domain\Auth\Repository\AuthRepository::findUserById3.0188.9%
App\Domain\Auth\Repository\AuthRepository::findSessionByRefreshToken3.0188.9%
App\Domain\Auth\Repository\AuthRepository::findValidEmailChangeToken3.0093.3%
App\Domain\Auth\Repository\AuthRepository::updatePassword2.0283.3%
App\Domain\Auth\Repository\AuthRepository::updateUserEmail2.0283.3%
App\Domain\Auth\Repository\AuthRepository::markEmailChangeTokenUsed2.0283.3%
App\Domain\Auth\Repository\AuthRepository::emailExists2.0185.7%
App\Domain\Auth\Repository\AuthRepository::usernameExists2.0185.7%
App\Domain\Auth\Repository\AuthRepository::revokeRefreshToken2.0185.7%
App\Domain\Auth\Repository\AuthRepository::revokeAllUserTokens2.0185.7%
App\Domain\Auth\Repository\AuthRepository::cleanupExpiredTokens2.0185.7%
App\Domain\Auth\Repository\AuthRepository::updateLastLogin2.0185.7%
App\Domain\Auth\Repository\AuthRepository::incrementFailedLoginAttempts2.0185.7%
App\Domain\Auth\Repository\AuthRepository::invalidateResetTokensForUser2.0187.5%
App\Domain\Auth\Repository\AuthRepository::isEmailTakenByAnotherUser2.0185.7%
App\Domain\Auth\Repository\AuthRepository::createUser2.0092.9%
App\Domain\Auth\Repository\AuthRepository::storeRefreshToken2.0092.9%
App\Domain\Auth\Repository\AuthRepository::lockAccount2.0090.0%
App\Domain\Auth\Repository\AuthRepository::storePasswordResetToken2.0090.0%
App\Domain\Auth\Repository\AuthRepository::storeEmailChangeToken2.0091.7%
App\Domain\Auth\Repository\AuthRepository::__construct1100.0%