进行了一些小优化

This commit is contained in:
2026-08-30 21:48:59 +08:00
parent a73fa9a6c0
commit 71444b139a
12 changed files with 280 additions and 147 deletions
@@ -66,7 +66,7 @@ test('page display exposes exactly eight ordered routes', () => {
const expected = ['header-nav', 'header-components', 'footer', 'homepage', 'category', 'tag', 'user-home', 'other']
const schemaOrder = [...schema.matchAll(/^\t\t\t\t'([^']+)'\s+=> self::/gm)].map(match => match[1])
assert.deepEqual(schemaOrder, expected)
const routeOrder = [...routes.matchAll(/^\s+\['([^']+)',/gm)].map(match => match[1])
const routeOrder = [...routes.matchAll(/section:\s*'([^']+)'/g)].map(match => match[1])
assert.deepEqual(routeOrder, expected)
})
@@ -262,20 +262,31 @@ test('header multifunction search keeps focus and submit alignment route-indepen
)
})
test('user profile widget owns its only card surface and keeps membership below the name', () => {
assert.match(frontendRenderer, /size\(\) === 'sidebar' && \$definition->slug\(\) !== 'user_card'/)
assert.match(userRenderer, /display_name\) \. '<\/a><\/h3>'/)
assert.match(userRenderer, /aksrt-user-card__identity.*aksrt_render_user_identity_chips\(\$user_id, 'widget'\)/s)
assert.doesNotMatch(userRenderer, /display_name\) \. '<\/a>' \. \(function_exists\('aksrt_render_vip_badge'/)
assert.match(userRenderer, /\$variant = \$primary \? ' is-primary' : ' is-secondary'/)
// 未登录卡片使用独立结构,避免嵌套通用 .widget 卡片背景。
assert.doesNotMatch(userRenderer, /user-card widget/)
assert.match(userRenderer, /aksrt-user-card is-guest/)
assert.match(userRenderer, /aksrt-user-card__guest-actions/)
assert.match(userRenderer, /signin-loader aksrt-widget-button is-primary/)
assert.match(userRenderer, /signup-loader aksrt-widget-button is-secondary/)
assert.match(userRenderer, /fa fas fa-fw fa-sign-in-alt/)
assert.match(widgetCss, /\.aksrt-user-card__guest-actions\s*\{[^}]*display:\s*flex;[^}]*flex-wrap:\s*nowrap;/s)
test('user profile and author widgets render the legacy user-card box', () => {
assert.match(frontendRenderer, /!in_array\(\$definition->slug\(\), \['user_card', 'author_card'\], true\)/)
// 登录卡片与 legacy zib_get_user_card_box 同构:封面、头像框、名字行、统计徽章、简介、按钮。
assert.match(userRenderer, /user-card zib-widget/)
assert.match(userRenderer, /user-cover graphic" style="padding-bottom: 50%;"/)
assert.match(userRenderer, /avatar-img avatar-lg/)
assert.match(userRenderer, /user-name flex jc/)
assert.match(userRenderer, /author-tag mt10 mini-scrollbar/)
assert.match(userRenderer, /user-desc mt10 muted-2-color em09/)
assert.match(userRenderer, /user-btns mt20/)
assert.match(userRenderer, /aksrt_get_user_badges\(\$user_id\)/)
assert.match(userRenderer, /'follow' => true,/)
// 用户个人信息小工具不显示文章模块,显示签到徽章。
assert.match(userRenderer, /'show_posts' => false,/)
assert.match(userRenderer, /'show_checkin' => true,/)
assert.match(userRenderer, /aksrt_header_user_checkin_btn\(\$user_id, true, 'img-badge jb-yellow'\)/)
// 文章作者信息小工具显示文章模块。
assert.match(userRenderer, /'show_posts' => !isset\(\$i\['show_posts'\]\) \|\| !empty\(\$i\['show_posts'\]\),/)
assert.match(userRenderer, /aksrt_render_user_card_posts\(/)
// 未登录卡片与 legacy zib_get_user_singin_page_box 同构。
assert.match(userRenderer, /signin-loader but jb-blue padding-lg/)
assert.match(userRenderer, /signup-loader ml10 but jb-yellow padding-lg/)
assert.match(userRenderer, /loged_title/)
// 旧的自造卡片样式已清理。
assert.doesNotMatch(widgetCss, /aksrt-user-card/)
assert.doesNotMatch(userRenderer, /aksrt-widget-button is-ghost/)
})