test(phase-6): channel handle, preview mode, playlist meta
Also tightens stat/post-video rendering so "0" prints as "0" and not "0.0" (Number::abbreviate(0, precision: 1) stringifies as "0.0", which leaked into the About tab's Total Views card and post-video badges). Four tests covering: - /@username opens the matching channel. - /@invalid url (space) 404s. - Owner view shows id="postForm"; preview?preview=1 hides it. - Zero-view playlist doesn't render "bi-eye … 0.0"; "1 videos" never renders in place of "1 video". Fixed a Blade dupe-declaration fatal that only fired in feature tests (two requests in one PHP process would redeclare notifVal()). Guarded with function_exists. Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
This commit is contained in:
1 parent
e939dd3a53
commit
1b2377f20f
2 files changed
+116
-4
No files matched your search
@@ -548,7 +548,7 @@ $headerSocialMap = [
|
||||
<div class="ch-post-video-info">
|
||||
<div class="ch-post-video-title">{{ $v->title }}</div>
|
||||
<div class="ch-post-video-meta">
|
||||
<span class="ch-post-video-badge"><i class="bi bi-eye"></i> {{ \Illuminate\Support\Number::abbreviate($v->view_count, precision: 1) }}</span>
|
||||
<span class="ch-post-video-badge"><i class="bi bi-eye"></i> {{ $v->view_count > 0 ? \Illuminate\Support\Number::abbreviate($v->view_count, precision: 1) : '0' }}</span>
|
||||
@if($v->duration)<span class="ch-post-video-badge"><i class="bi bi-clock"></i> {{ $v->formatted_duration }}</span>@endif
|
||||
@if($v->is_shorts)<span class="ch-post-video-badge" style="color:#e33;"><i class="bi bi-phone"></i> Short</span>@endif
|
||||
</div>
|
||||
@@ -1091,7 +1091,7 @@ $headerSocialMap = [
|
||||
<div class="ch-about-card-title"><i class="bi bi-bar-chart-fill"></i> Stats</div>
|
||||
<div class="ch-stat-cards">
|
||||
<div class="ch-stat-card">
|
||||
<div class="ch-stat-card-val">{{ \Illuminate\Support\Number::abbreviate($totalViews, precision: 1) }}</div>
|
||||
<div class="ch-stat-card-val">{{ $totalViews > 0 ? \Illuminate\Support\Number::abbreviate($totalViews, precision: 1) : '0' }}</div>
|
||||
<div class="ch-stat-card-key">Total Views</div>
|
||||
</div>
|
||||
<div class="ch-stat-card">
|
||||
@@ -1372,8 +1372,13 @@ if ($oldLinks) {
|
||||
@php
|
||||
$notifPrefs = $user->notification_preferences ?? [];
|
||||
$notifDefs = \App\Models\User::notifDefaults();
|
||||
function notifVal(array $prefs, array $defs, string $key): bool {
|
||||
return isset($prefs[$key]) ? (bool)$prefs[$key] : ($defs[$key] ?? true);
|
||||
// function_exists guard so a second render in the same PHP
|
||||
// process (feature tests fire two requests in one process)
|
||||
// doesn't fatal with "Cannot redeclare notifVal()".
|
||||
if (!function_exists('notifVal')) {
|
||||
function notifVal(array $prefs, array $defs, string $key): bool {
|
||||
return isset($prefs[$key]) ? (bool)$prefs[$key] : ($defs[$key] ?? true);
|
||||
}
|
||||
}
|
||||
@endphp
|
||||
<div class="ch-settings-card" id="notifPrefsCard">
|
||||
|
||||
Reference in new issue
Block a user