fix(frontend): align article list metadata and pagination

This commit is contained in:
2026-08-18 16:23:44 +08:00
parent 0f2ac6c34a
commit 3c3ddac8be
5 changed files with 62 additions and 24 deletions
@@ -183,6 +183,24 @@ test('post-card CSS owns the exact desktop and 767/640 responsive matrix', () =>
assert.doesNotMatch(css, /\.aksrt-|post-card-cms|grid-cms/);
});
test('article metadata owns its flex and SVG contracts on every list route', () => {
const css = read('assets/css/frontend/post-card.css');
const scripts = read('src/Core/ScriptsPart1c.php');
const svgEnqueue = scripts.slice(
scripts.indexOf("'aksrt-svg-icon',"),
scripts.indexOf("'aksrt-svg-icon-helper',")
);
assert.match(svgEnqueue, /\['jquery'\]/);
assert.match(svgEnqueue, /true\s*\/\/ load after <body> exists/);
assert.match(css, /\.posts-item\.flex,[\s\S]*?\.posts-mini \.flex\s*\{[^}]*display:\s*flex;/);
assert.match(css, /\.posts-item \.flex\.xx,[\s\S]*?\.posts-mini \.flex\.xx\s*\{[^}]*flex-direction:\s*column;/);
assert.match(css, /\.posts-item \.flex\.ac,[\s\S]*?\.posts-mini \.flex\.ac\s*\{[^}]*align-items:\s*center;/);
assert.match(css, /\.posts-item \.flex\.jsb,[\s\S]*?\.posts-mini \.flex\.jsb\s*\{[^}]*justify-content:\s*space-between;/);
assert.match(css, /\.posts-item \.flex1,[\s\S]*?\.posts-mini \.flex1\s*\{[^}]*flex:\s*1;[^}]*overflow:\s*hidden;/);
assert.match(css, /\.posts-item \.item-meta svg\.icon,[\s\S]*?\.posts-mini \.item-meta svg\.icon\s*\{[^}]*display:\s*inline-block;[^}]*margin-right:\s*2px;/);
});
test('related posts, author page and widgets use their dedicated renderers', () => {
const related = read('inc/helpers/aksrt-single-render.php');
const relatedCard = read('inc/helpers/aksrt-single-components.php');
@@ -210,8 +228,10 @@ test('related posts, author page and widgets use their dedicated renderers', ()
test('AJAX pagination can recover, caps auto loading and rehydrates appended media', () => {
const php = read('inc/helpers/template-tags/pagination-permissions.php');
const homepage = read('inc/helpers/homepage/content.php');
const admin = read('src/Admin/Admin.php');
const js = read('assets/js/core/pagination.js');
const ajaxList = read('assets/js/core/ajax-list.js');
const media = read('assets/js/core/misc.js');
assert.match(php, /class="text-center theme-pagination ajax-pag"/);
@@ -226,6 +246,9 @@ test('AJAX pagination can recover, caps auto loading and rehydrates appended med
assert.match(js, /successfulAutoLoads >= iasMax/);
assert.match(js, /AksrtFrontend\.rehydrate\(target, "ajax"\)/);
assert.match(js, /classList\.add\("lazyload"\)/);
assert.match(homepage, /aksrt_render_pagination\(\$query,[\s\S]*?'query_context'\s*=>\s*\$contract\['query_context'\]/);
assert.doesNotMatch(homepage, /href="javascript:;" class="ajax-next aksrt-load-more-btn"/);
assert.match(ajaxList, /if \(link\.closest\("\[data-aksrt-pagination\], \.aksrt-comment-pagination"\)\) return;/);
assert.match(media, /thumb-dplayer-playing/);
assert.match(media, /data-post-thumb-slider/);
assert.match(media, /data-post-thumb-video/);