Classes

Coverage Distribution

Complexity

Insufficient Coverage

Class Coverage
App\Domain\Document\Data\DocumentTemplateData0%
App\Domain\Document\Data\PandaDocDocumentRefData0%
App\Domain\Document\Data\PandaDocTemplateDetailsData0%
App\Domain\Document\Data\PandaDocTemplateFieldData0%
App\Domain\Document\Data\PandaDocTemplateTokenData0%
App\Domain\Document\Repository\DocumentTemplateRepository0%
App\Domain\Document\Service\PandaDocService0%
App\Domain\Notification\Service\SmtpEmailService0%
App\Domain\Stripe\Service\StripeService0%
App\Domain\SystemSettings\Service\SystemSettingsService0%
App\Domain\Auth\Data\TokenData14%
App\Domain\Stripe\Repository\StripeWebhookRepository40%
App\Domain\SystemSettings\Repository\SystemSettingsRepository41%
App\Domain\SystemSettings\Data\SystemSettingData43%
App\Domain\ErrorLog\Data\ErrorLogData47%
App\Domain\Document\Data\PandaDocSigningSessionData50%
App\Domain\Loan\Data\LoanData50%
App\Domain\Admin\Service\AdminService51%
App\Domain\Loan\Data\LoanEligibilityData52%
App\Domain\Document\Data\PandaDocRecipientData53%
App\Domain\Admin\Repository\AdminRepository56%
App\Domain\Transaction\Service\TransactionService57%
App\Domain\Document\Data\PandaDocDocumentData57%
App\Domain\Exception\ValidationException66%
App\Domain\SuperAdmin\Repository\SuperAdminRepository68%
App\Domain\Auth\Repository\AuthRepository71%
App\Domain\Notification\Data\NotificationType75%
App\Domain\Document\Submission\Service\InvestorDocumentService76%
App\Domain\SuperAdmin\Service\SuperAdminService77%
App\Domain\Storage\Service\LocalFileStorage79%
App\Domain\ErrorLog\Repository\ErrorLogRepository81%
App\Domain\Transaction\Repository\TransactionRepository82%
App\Domain\Configuration\ConfigKeyPolicy83%
App\Domain\Loan\Repository\LoanRepository84%
App\Domain\Audit\AuditService86%
App\Domain\Notification\Data\NotificationPreference87%
App\Domain\Document\Submission\Repository\InvestorDocumentRepository89%

Methods

Coverage Distribution

Complexity

Insufficient Coverage

Method Coverage
jsonSerialize0%
getAllTransactions0%
getAllTransactions0%
getAumHistory0%
logImpersonationEnd0%
toArray0%
storePasswordResetToken0%
findValidResetToken0%
markResetTokenUsed0%
updatePassword0%
__construct0%
fromRow0%
toArray0%
fromPandaDocResponse0%
__construct0%
fromPandaDocResponse0%
toArray0%
fromPandaDocResponse0%
fromPandaDocResponse0%
__construct0%
fromPandaDocResponse0%
__construct0%
fromPandaDocResponse0%
toArray0%
__construct0%
fromPandaDocResponse0%
toArray0%
__construct0%
findActive0%
__construct0%
getDocumentDetails0%
createSigningSession0%
resendDocument0%
createDocumentFromTemplate0%
getDocumentStatus0%
sendDocument0%
inspectTemplate0%
listTemplates0%
downloadDocument0%
makeRequest0%
parseStatusCode0%
listActiveTypes0%
describeUploadError0%
jsonSerialize0%
info0%
notice0%
warning0%
forField0%
getErrors0%
toArray0%
toArray0%
findApproved0%
getApprovedLoans0%
jsonSerialize0%
allKnownTypes0%
isValid0%
__construct0%
send0%
markProcessed0%
markFailed0%
__construct0%
createCustomer0%
findCustomer0%
createSetupIntent0%
listPaymentMethods0%
detachPaymentMethod0%
setDefaultPaymentMethod0%
chargePaymentMethod0%
parseWebhookEvent0%
deleteUser0%
accrueDailyInterest0%
snapshotDailyAccountBalance0%
postMonthlyInterest0%
getActiveAccountsWithBalances0%
deleteUser0%
accrueInterest0%
postInterest0%
projectInterest0%
guardNonProduction0%
getValue0%
jsonSerialize0%
findAll0%
update0%
__construct0%
getAll0%
getByKey0%
update0%
getLogLevelThreshold0%
updateLogLevelThreshold0%
validateSetting0%
getAccountAvailableBalance0%
getValidTypes0%
validateOptionalString40%
withTransaction50%
ensureDirectory50%
generateUniqueAccountNumber55%
validateRequiredString57%
writeStreamAtomic57%
createTransaction58%
uploadForInvestor65%
extractExtension66%
generateUniqueAccountNumber69%
findByInvestorId70%
findAll70%
getCurrentFileForAdmin71%
rejectForAdmin72%
getUnresolvedCount75%
generatePaymentSchedule75%
pickWithdrawalAmount75%
__construct76%
getStats77%
getAccountSummary80%
investorEmailExists80%
canRoleEdit80%
getForAdmin80%
decodeMimeList80%
updateInvestor80%
delete80%
pickFeeAmount80%
setContext81%
generateAccountNumber81%
checkEligibility81%
getTotalAccounts83%
getTotalBalance83%
updateLoanConfig83%
activateLoan83%
registerComplete85%
freezeAccount85%
unfreezeAccount85%
emailExists85%
usernameExists85%
revokeRefreshToken85%
revokeAllUserTokens85%
cleanupExpiredTokens85%
updateLastLogin85%
incrementFailedLoginAttempts85%
findByIdForAdmin85%
findByIdForInvestor85%
updateStatus85%
getCurrentFileForInvestor85%
emailExists85%
retrieve85%
getAccountBalance85%
emailExistsInUsers85%
emailExistsInInvestors85%
generateTransactionDescription85%
getLogLevelThreshold85%
accountExists85%
getInvestorDetail87%
getPasswordHash87%
findById87%
deleteByIds87%
findInvestorById87%
findInvestorByEmail87%
findInvestorByUserId87%
updateInvestorStatus87%
findById87%
getInvestorAccountId87%
getNextUnpaidScheduleEntry87%
assertInvestorOwnsPaymentMethod87%
getAccountYieldRate87%
create87%
getAccountStatus87%
logAccountStatusChange88%
updateInterestRate88%
updateLoanToValueRatio88%
getAumHistory88%
findUserByEmail88%
findUserByUsername88%
findUserById88%
findSessionByRefreshToken88%
findCurrentFileEvent88%
hashStream88%
findActive88%
getConfig88%
findPending88%
getAccountById88%
getUserById88%
findByKey88%
findById88%

Project Risks

Method CRAP
getAllTransactions156
deleteUser132
fromPandaDocResponse90
validateSetting90
describeUploadError72
projectInterest72
makeRequest56
findAll43
listTemplates42
send42
listPaymentMethods42
chargePaymentMethod30
accrueInterest30
uploadForInvestor24
getAllTransactions20
downloadDocument20
createCustomer20
update20
createTransaction14
writeStreamAtomic13
findValidResetToken12
fromPandaDocResponse12
findActive12
createDocumentFromTemplate12
parseStatusCode12
findApproved12
findCustomer12
parseWebhookEvent12
postMonthlyInterest12
findAll12
update12
getAccountAvailableBalance12
registerComplete8
decodeMimeList7
updateInvestor6
setContext6
storePasswordResetToken6
markResetTokenUsed6
updatePassword6
fromPandaDocResponse6
fromPandaDocResponse6
ensureDirectory6
markProcessed6
markFailed6
accrueDailyInterest6
snapshotDailyAccountBalance6
getActiveAccountsWithBalances6
deleteUser6
postInterest6
guardNonProduction6
updateLogLevelThreshold6
rejectForAdmin5
validateRequiredString5
generateTransactionDescription5
updateInvestorStatus5
logAccountStatusChange5
validateOptionalString4
generateUniqueAccountNumber4
findByInvestorId4
getCurrentFileForAdmin4
__construct4
withTransaction4
generateAccountNumber4
getCurrentFileForInvestor4
retrieve4
assertInvestorOwnsPaymentMethod4
updateInterestRate4
updateLoanToValueRatio4
hashStream4
generateUniqueAccountNumber3
pickWithdrawalAmount3
getStats3
canRoleEdit3
delete3
checkEligibility3
getTotalAccounts3
getTotalBalance3
freezeAccount3
unfreezeAccount3
findByIdForAdmin3
findByIdForInvestor3
getInvestorDetail3
getPasswordHash3
findById3
deleteByIds3
findInvestorById3
findInvestorByEmail3
findInvestorByUserId3
findById3
getInvestorAccountId3
getNextUnpaidScheduleEntry3
getAccountYieldRate3
create3
getAccountStatus3
getAumHistory3
findUserByEmail3
findUserByUsername3
findUserById3
findSessionByRefreshToken3
findCurrentFileEvent3
findActive3
getConfig3
findPending3
getAccountById3
getUserById3
findByKey3
findById3
extractExtension2
getUnresolvedCount2
generatePaymentSchedule2
getAccountSummary2
investorEmailExists2
getForAdmin2
pickFeeAmount2
updateLoanConfig2
activateLoan2
emailExists2
usernameExists2
revokeRefreshToken2
revokeAllUserTokens2
cleanupExpiredTokens2
updateLastLogin2
incrementFailedLoginAttempts2
updateStatus2
emailExists2
getAccountBalance2
emailExistsInUsers2
emailExistsInInvestors2
getLogLevelThreshold2
accountExists2