Classes

Coverage Distribution

Complexity

Insufficient Coverage

Class Coverage
App\Console\Commands\SyncChannelPostsCommand0%
App\Exceptions\PlatformAuthException0%
App\Exceptions\PublishException0%
App\Exceptions\RoutingMismatchException0%
App\Http\Controllers\Api\V1\ArticlesController0%
App\Http\Controllers\Api\V1\AuthController0%
App\Http\Controllers\Api\V1\BaseController0%
App\Http\Controllers\Api\V1\DashboardController0%
App\Http\Controllers\Api\V1\FeedsController0%
App\Http\Controllers\Api\V1\LogsController0%
App\Http\Controllers\Api\V1\PlatformAccountsController0%
App\Http\Controllers\Api\V1\PlatformChannelsController0%
App\Http\Controllers\Api\V1\RoutingController0%
App\Http\Controllers\Api\V1\SettingsController0%
App\Http\Controllers\ArticlesController0%
App\Http\Controllers\FeedsController0%
App\Http\Controllers\LogsController0%
App\Http\Controllers\OnboardingController0%
App\Http\Controllers\PlatformAccountsController0%
App\Http\Controllers\PlatformChannelsController0%
App\Http\Controllers\RoutingController0%
App\Http\Controllers\SettingsController0%
App\Http\Middleware\HandleAppearance0%
App\Http\Middleware\HandleInertiaRequests0%
App\Http\Requests\StoreFeedRequest0%
App\Http\Requests\UpdateFeedRequest0%
App\Http\Resources\ArticlePublicationResource0%
App\Http\Resources\ArticleResource0%
App\Http\Resources\FeedResource0%
App\Http\Resources\PlatformAccountResource0%
App\Http\Resources\PlatformChannelResource0%
App\Http\Resources\PlatformInstanceResource0%
App\Http\Resources\RouteResource0%
App\Listeners\LogExceptionToDatabase0%
App\Models\Keyword0%
App\Models\PlatformAccount0%
App\Models\PlatformChannel0%
App\Models\PlatformChannelPost0%
App\Models\PlatformInstance0%
App\Modules\Lemmy\LemmyRequest0%
App\Modules\Lemmy\Services\LemmyApiService0%
App\Modules\Lemmy\Services\LemmyPublisher0%
App\Services\Auth\LemmyAuthService0%
App\Services\Factories\ArticleParserFactory0%
App\Services\OnboardingRedirectService0%
App\Services\Parsers\BelgaArticlePageParser0%
App\Services\Parsers\BelgaArticleParser0%
App\Services\Parsers\BelgaHomepageParser0%
App\Services\Parsers\VrtArticlePageParser0%
App\Services\Parsers\VrtArticleParser0%
App\Services\Parsers\VrtHomepageParser0%
App\Services\Publishing\ArticlePublishingService0%
App\Services\RoutingValidationService0%
App\Services\SystemStatusService0%
App\Jobs\SyncChannelPostsJob2%
App\Models\Feed8%
App\Jobs\PublishToLemmyJob16%
App\Services\Http\HttpFetcher20%
App\Services\Parsers\BelgaHomepageParserAdapter25%
App\Services\Parsers\VrtHomepageParserAdapter25%
App\Services\Article\ArticleFetcher43%
App\Services\Article\ValidationService48%
App\Models\Article48%
App\Models\Route50%
App\Models\Setting50%
App\Listeners\ValidateArticleListener53%
App\Services\Log\LogSaver58%
App\Models\Language60%
App\Jobs\ArticleDiscoveryJob71%
App\Console\Commands\FetchNewArticlesCommand75%
App\Providers\HorizonServiceProvider75%
App\Listeners\PublishApprovedArticle80%
App\Providers\AppServiceProvider82%
App\Services\Factories\HomepageParserFactory87%

Project Risks

Class CRAP
App\Http\Controllers\OnboardingController506
App\Modules\Lemmy\Services\LemmyApiService462
App\Http\Controllers\Api\V1\RoutingController306
App\Services\Parsers\BelgaArticlePageParser306
App\Http\Controllers\RoutingController240
App\Http\Controllers\Api\V1\PlatformAccountsController210
App\Services\Parsers\VrtArticlePageParser210
App\Http\Controllers\Api\V1\FeedsController182
App\Http\Controllers\Api\V1\PlatformChannelsController182
App\Jobs\SyncChannelPostsJob170
App\Models\Feed143
App\Http\Controllers\Api\V1\AuthController132
App\Http\Controllers\PlatformAccountsController110
App\Http\Controllers\PlatformChannelsController110
App\Models\PlatformAccount110
App\Http\Controllers\FeedsController90
App\Services\SystemStatusService72
App\Http\Controllers\Api\V1\SettingsController56
App\Services\Http\HttpFetcher49
App\Models\Article45
App\Http\Controllers\Api\V1\BaseController42
App\Modules\Lemmy\LemmyRequest42
App\Services\Auth\LemmyAuthService42
App\Services\Factories\ArticleParserFactory42
App\Services\Article\ArticleFetcher33
App\Exceptions\PublishException30
App\Http\Controllers\Api\V1\ArticlesController30
App\Services\Publishing\ArticlePublishingService30
App\Services\RoutingValidationService30
App\Models\Setting22
App\Console\Commands\SyncChannelPostsCommand12
App\Http\Controllers\Api\V1\DashboardController12
App\Http\Controllers\Api\V1\LogsController12
App\Http\Controllers\SettingsController12
App\Http\Requests\UpdateFeedRequest12
App\Listeners\ValidateArticleListener11
App\Services\Article\ValidationService8
App\Services\Log\LogSaver8
App\Jobs\PublishToLemmyJob8
App\Providers\AppServiceProvider6
App\Services\OnboardingRedirectService6
App\Services\Factories\HomepageParserFactory5
App\Listeners\PublishApprovedArticle4
App\Jobs\ArticleDiscoveryJob3
App\Console\Commands\FetchNewArticlesCommand3

Methods

Coverage Distribution

Complexity

Insufficient Coverage

Method Coverage
handle0%
syncLemmy0%
__construct0%
getPlatform0%
__construct0%
getArticle0%
getPlatform0%
__construct0%
index0%
approve0%
reject0%
login0%
register0%
logout0%
me0%
sendResponse0%
sendError0%
sendValidationError0%
sendNotFound0%
sendUnauthorized0%
__construct0%
stats0%
index0%
store0%
show0%
update0%
destroy0%
toggle0%
index0%
index0%
store0%
show0%
update0%
destroy0%
setActive0%
index0%
store0%
show0%
update0%
destroy0%
toggle0%
index0%
store0%
show0%
update0%
destroy0%
toggle0%
index0%
update0%
__invoke0%
approve0%
reject0%
index0%
create0%
store0%
show0%
edit0%
update0%
destroy0%
toggle0%
__invoke0%
index0%
platform0%
feed0%
channel0%
complete0%
needsOnboarding0%
hasPlatformAccount0%
hasFeed0%
hasChannel0%
index0%
create0%
store0%
edit0%
update0%
destroy0%
setActive0%
index0%
create0%
store0%
show0%
edit0%
update0%
destroy0%
toggle0%
index0%
create0%
store0%
edit0%
update0%
destroy0%
toggle0%
parseJsonFilters0%
index0%
update0%
handle0%
version0%
share0%
authorize0%
rules0%
authorize0%
rules0%
toArray0%
toArray0%
toArray0%
toArray0%
toArray0%
toArray0%
toArray0%
handle0%
dispatchForAllActiveChannels0%
handle0%
syncLemmyChannelPosts0%
getAuthToken0%
handle0%
isPending0%
isRejected0%
approve0%
reject0%
canBePublished0%
getTypeDisplayAttribute0%
getStatusAttribute0%
channels0%
activeChannels0%
feed0%
platformChannel0%
platformChannels0%
feeds0%
password0%
apiToken0%
getActive0%
setAsActive0%
channels0%
activeChannels0%
platformInstance0%
platformAccounts0%
activePlatformAccounts0%
getFullNameAttribute0%
feeds0%
activeFeeds0%
language0%
casts0%
urlExists0%
storePost0%
channels0%
languages0%
findByUrl0%
keywords0%
set0%
setBool0%
setArticleProcessingEnabled0%
isPublishingApprovalsEnabled0%
setPublishingApprovalsEnabled0%
__construct0%
get0%
post0%
withToken0%
__construct0%
login0%
getCommunityId0%
syncChannelPosts0%
createPost0%
getLanguages0%
__construct0%
publishToChannel0%
mapExceptionToLogLevel0%
saveArticle0%
validateByKeywords0%
getToken0%
getParser0%
getSupportedSources0%
registerParser0%
fetchMultipleUrls0%
debug0%
handleRedirect0%
extractTitle0%
extractDescription0%
extractFullArticle0%
extractThumbnail0%
extractData0%
canParse0%
extractData0%
getSourceName0%
extractArticleUrls0%
extractArticleUrls0%
getHomepageUrl0%
getSourceName0%
extractTitle0%
extractDescription0%
extractFullArticle0%
extractThumbnail0%
extractData0%
canParse0%
extractData0%
getSourceName0%
extractArticleUrls0%
extractArticleUrls0%
getHomepageUrl0%
getSourceName0%
publishToRoutedChannels0%
publishToChannel0%
validateLanguageCompatibility0%
getSystemStatus0%
canProcessArticles0%
getArticlesFromWebsiteFeed38%
getArticlesFromFeed44%
handle53%
log53%
isValid60%
handle66%
gate66%
validate66%
handle75%
fetchArticleData77%
getDateRange77%
handle80%
getParser80%