Files
Genarrative/output/rpg-profile-test-report.json
T
kdletters 071faa482c 统一 Rust 与 TypeScript 格式化门禁
纳入 AGC Cargo workspace 的统一 rustfmt 检查与格式化入口

完成项目 TypeScript/Prettier 与 Rust 全量格式化

修复 Pingora expected executable 门禁的空白敏感误报

同步开发运维文档与 AGC skill pack 格式化忽略规则
2026-09-01 16:28:34 +08:00

535 lines
77 KiB
JSON

{
"numTotalTestSuites": 1,
"numPassedTestSuites": 1,
"numFailedTestSuites": 0,
"numPendingTestSuites": 0,
"numTotalTests": 58,
"numPassedTests": 50,
"numFailedTests": 8,
"numPendingTests": 0,
"numTodoTests": 0,
"startTime": 1779633396424,
"success": false,
"testResults": [
{
"assertionResults": [
{
"ancestorTitles": [""],
"fullName": " opens wallet ledger modal from narrative coin card",
"status": "passed",
"title": "opens wallet ledger modal from narrative coin card",
"duration": 157,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " profile recharge modal shows native qr code on desktop web by default",
"status": "passed",
"title": "profile recharge modal shows native qr code on desktop web by default",
"duration": 183,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " profile recharge modal jumps to h5 payment on mobile web by default",
"status": "passed",
"title": "profile recharge modal jumps to h5 payment on mobile web by default",
"duration": 203,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " profile recharge modal trusts per-product first bonus display after points recharge",
"status": "passed",
"title": "profile recharge modal trusts per-product first bonus display after points recharge",
"duration": 120,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " profile recharge modal posts requestPayment params in mini program web-view",
"status": "passed",
"title": "profile recharge modal posts requestPayment params in mini program web-view",
"duration": 237,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " profile recharge modal waits for paid confirmation before refreshing dashboard",
"status": "passed",
"title": "profile recharge modal waits for paid confirmation before refreshing dashboard",
"duration": 1059,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " profile recharge modal loads wechat js sdk before mini program payment bridge",
"status": "passed",
"title": "profile recharge modal loads wechat js sdk before mini program payment bridge",
"duration": 374,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " profile recharge modal releases submitting state after cancelled wechat pay result",
"status": "passed",
"title": "profile recharge modal releases submitting state after cancelled wechat pay result",
"duration": 388,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " profile native qr confirmation refreshes only after server reports paid",
"status": "passed",
"title": "profile native qr confirmation refreshes only after server reports paid",
"duration": 421,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " non-wechat profile shows reward code instead of recharge entry",
"status": "failed",
"title": "non-wechat profile shows reward code instead of recharge entry",
"duration": 63,
"failureMessages": [
"expected <button type=\"button\" …(1)>…(3)</button> to be null"
],
"location": {
"line": 1805,
"column": 5
}
},
{
"ancestorTitles": [""],
"fullName": " profile daily task shortcut opens task center and claims reward",
"status": "passed",
"title": "profile daily task shortcut opens task center and claims reward",
"duration": 392,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " profile total play time card always uses hours",
"status": "passed",
"title": "profile total play time card always uses hours",
"duration": 83,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " profile played works card shows count unit",
"status": "passed",
"title": "profile played works card shows count unit",
"duration": 73,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " profile stats cards are centered without update timestamp",
"status": "passed",
"title": "profile stats cards are centered without update timestamp",
"duration": 113,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " mobile profile page matches the reference layout sections",
"status": "failed",
"title": "mobile profile page matches the reference layout sections",
"duration": 1045,
"failureMessages": [
"expected \"spy\" to be called 1 times, but got 0 times\n\nIgnored nodes: comments, script, style\n\u001b[36m<html>\u001b[39m\n \u001b[36m<head />\u001b[39m\n \u001b[36m<body>\u001b[39m\n \u001b[36m<div>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"flex h-full min-h-0 flex-col\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"flex h-full min-h-0 flex-col\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-desktop-shell flex h-full min-h-0 flex-col p-5 xl:p-6\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-desktop-topbar flex items-center gap-4 px-5 py-4\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"flex min-w-0 flex-1 items-center gap-5\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<span\u001b[39m\n \u001b[33maria-hidden\u001b[39m=\u001b[32m\"true\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-brand-logo shrink-0\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<span\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-brand-logo__title\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[0m陶泥\u001b[0m\n \u001b[36m<span\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-brand-logo__title-suffix\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[0m儿\u001b[0m\n \u001b[36m</span>\u001b[39m\n \u001b[36m</span>\u001b[39m\n \u001b[36m<span\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-brand-logo__subtitle\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[0mGENARRATIVE\u001b[0m\n \u001b[36m</span>\u001b[39m\n \u001b[36m</span>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-desktop-search flex min-w-0 items-center gap-3 px-4 py-3 text-[var(--platform-text-soft)] max-w-[34rem] flex-1\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<svg\u001b[39m\n \u001b[33maria-hidden\u001b[39m=\u001b[32m\"true\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"lucide lucide-search h-4 w-4 shrink-0\"\u001b[39m\n \u001b[33mfill\u001b[39m=\u001b[32m\"none\"\u001b[39m\n \u001b[33mheight\u001b[39m=\u001b[32m\"24\"\u001b[39m\n \u001b[33mstroke\u001b[39m=\u001b[32m\"currentColor\"\u001b[39m\n \u001b[33mstroke-linecap\u001b[39m=\u001b[32m\"round\"\u001b[39m\n \u001b[33mstroke-linejoin\u001b[39m=\u001b[32m\"round\"\u001b[39m\n \u001b[33mstroke-width\u001b[39m=\u001b[32m\"2\"\u001b[39m\n \u001b[33mviewBox\u001b[39m=\u001b[32m\"0 0 24 24\"\u001b[39m\n \u001b[33mwidth\u001b[39m=\u001b[32m\"24\"\u001b[39m\n \u001b[33mxmlns\u001b[39m=\u001b[32m\"http://www.w3.org/2000/svg\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<path\u001b[39m\n \u001b[33md\u001b[39m=\u001b[32m\"m21 21-4.34-4.34\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<circle\u001b[39m\n \u001b[33mcx\u001b[39m=\u001b[32m\"11\"\u001b[39m\n \u001b[33mcy\u001b[39m=\u001b[32m\"11\"\u001b[39m\n \u001b[33mr\u001b[39m=\u001b[32m\"8\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m</svg>\u001b[39m\n \u001b[36m<input\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"w-full min-w-0 bg-transparent text-sm text-[var(--platform-text-strong)] outline-none placeholder:text-[var(--platform-text-soft)]\"\u001b[39m\n \u001b[33mplaceholder\u001b[39m=\u001b[32m\"搜索作品号、名称、作者、描述\"\u001b[39m\n \u001b[33mvalue\u001b[39m=\u001b[32m\"\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<button\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"shrink-0 text-xs font-semibold text-[var(--platform-text-soft)] disabled:opacity-50\"\u001b[39m\n \u001b[33mdisabled\u001b[39m=\u001b[32m\"\"\u001b[39m\n \u001b[33mtype\u001b[39m=\u001b[32m\"button\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[0m搜索\u001b[0m\n \u001b[36m</button>\u001b[39m\n \u001b[36m</div>\u001b[39m\n \u001b[36m</div>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"flex items-center gap-3\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<button\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-desktop-search flex items-center gap-3 px-3 py-2.5 text-left\"\u001b[39m\n \u001b[33mtype\u001b[39m=\u001b[32m\"button\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<span\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"flex h-11 w-11 items-center justify-center overflow-hidden rounded-full text-base font-black text-white\"\u001b[39m\n \u001b[33mstyle\u001b[39m=\u001b[32m\"box-shadow: var(--platform-profile-avatar-shadow);\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[0m测\u001b[0m\n \u001b[36m</span>\u001b[39m\n \u001b[36m<span\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"min-w-0\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<span\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"block truncate text-sm font-semibold text-[var(--platform-text-strong)]\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[0m测试玩家\u001b[0m\n \u001b[36m</span>\u001b[39m\n \u001b[36m<span\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"block truncate text-xs text-[var(--platform-text-soft)]\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[0m100001\u001b[0m\n \u001b[36m</span>\u001b[39m\n \u001b[36m</span>\u001b[39m\n \u001b[36m</button>\u001b[39m\n \u001b[36m</div>\u001b[39m\n \u001b[36m</div>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"mt-5 flex min-h-0 gap-5\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<aside\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-desktop-rail flex w-[5.8rem] shrink-0 flex-col gap-3 p-3\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<button\u001b[39m\n \u001b[33maria-label\u001b[39m=\u001b[32m\"推荐\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-desktop-rail__button \"\u001b[39m\n \u001b[33mtype\u001b[39m=\u001b[32m\"button\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<span\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-desktop-rail__icon-shell\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<svg\u001b[39m\n \u001b[33maria-hidden\u001b[39m=\u001b[32m\"true\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"lucide lucide-sparkles platform-desktop-rail__icon h-[1.1rem] w-[1.1rem]\"\u001b[39m\n \u001b[33mfill\u001b[39m=\u001b[32m\"none\"\u001b[39m\n \u001b[33mheight\u001b[39m=\u001b[32m\"24\"\u001b[39m\n \u001b[33mstroke\u001b[39m=\u001b[32m\"currentColor\"\u001b[39m\n \u001b[33mstroke-linecap\u001b[39m=\u001b[32m\"round\"\u001b[39m\n \u001b[33mstroke-linejoin\u001b[39m=\u001b[32m\"round\"\u001b[39m\n \u001b[33mstroke-width\u001b[39m=\u001b[32m\"2\"\u001b[39m\n \u001b[33mviewBox\u001b[39m=\u001b[32m\"0 0 24 24\"\u001b[39m\n \u001b[33mwidth\u001b[39m=\u001b[32m\"24\"\u001b[39m\n \u001b[33mxmlns\u001b[39m=\u001b[32m\"http://www.w3.org/2000/svg\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<path\u001b[39m\n \u001b[33md\u001b[39m=\u001b[32m\"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0..."
],
"location": {
"line": 1892,
"column": 51
}
},
{
"ancestorTitles": [""],
"fullName": " desktop account entry uses saved avatar image when available",
"status": "passed",
"title": "desktop account entry uses saved avatar image when available",
"duration": 73,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " profile avatar upload uses the shared square crop tool",
"status": "passed",
"title": "profile avatar upload uses the shared square crop tool",
"duration": 189,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " wallet ledger modal shows empty and error states",
"status": "failed",
"title": "wallet ledger modal shows empty and error states",
"duration": 1183,
"failureMessages": [
"Unable to find an element with the text: 暂无账单记录. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.\n\nIgnored nodes: comments, script, style\n\u001b[36m<body>\u001b[39m\n \u001b[36m<div>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-mobile-entry-shell flex h-full min-h-0 min-w-0 flex-col overflow-hidden\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-mobile-topbar mb-3 flex shrink-0 items-center justify-between gap-3 px-0.5\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<span\u001b[39m\n \u001b[33maria-label\u001b[39m=\u001b[32m\"陶泥儿 GENARRATIVE\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-brand-logo\"\u001b[39m\n \u001b[33mrole\u001b[39m=\u001b[32m\"img\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<span\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-brand-logo__title\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[0m陶泥\u001b[0m\n \u001b[36m<span\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-brand-logo__title-suffix\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[0m儿\u001b[0m\n \u001b[36m</span>\u001b[39m\n \u001b[36m</span>\u001b[39m\n \u001b[36m<span\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-brand-logo__subtitle\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[0mGENARRATIVE\u001b[0m\n \u001b[36m</span>\u001b[39m\n \u001b[36m</span>\u001b[39m\n \u001b[36m</div>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-tab-panel-stack min-w-0 flex-1\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<section\u001b[39m\n \u001b[33maria-hidden\u001b[39m=\u001b[32m\"true\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-tab-panel platform-tab-panel--hidden\"\u001b[39m\n \u001b[33mid\u001b[39m=\u001b[32m\"platform-tab-panel-home\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<section\u001b[39m\n \u001b[33maria-hidden\u001b[39m=\u001b[32m\"true\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-tab-panel platform-tab-panel--hidden\"\u001b[39m\n \u001b[33mid\u001b[39m=\u001b[32m\"platform-tab-panel-category\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<section\u001b[39m\n \u001b[33maria-hidden\u001b[39m=\u001b[32m\"true\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-tab-panel platform-tab-panel--hidden\"\u001b[39m\n \u001b[33mid\u001b[39m=\u001b[32m\"platform-tab-panel-create\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<section\u001b[39m\n \u001b[33maria-hidden\u001b[39m=\u001b[32m\"true\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-tab-panel platform-tab-panel--hidden\"\u001b[39m\n \u001b[33mid\u001b[39m=\u001b[32m\"platform-tab-panel-saves\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<section\u001b[39m\n \u001b[33maria-hidden\u001b[39m=\u001b[32m\"false\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-tab-panel platform-tab-panel--active\"\u001b[39m\n \u001b[33mid\u001b[39m=\u001b[32m\"platform-tab-panel-profile\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-page-stage platform-remap-surface min-w-0 space-y-4 overflow-hidden pb-2 platform-profile-page\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<section\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-profile-header\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-profile-header__actions\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<button\u001b[39m\n \u001b[33maria-label\u001b[39m=\u001b[32m\"打开充值入口\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-profile-header__icon-button\"\u001b[39m\n \u001b[33mtype\u001b[39m=\u001b[32m\"button\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<svg\u001b[39m\n \u001b[33maria-hidden\u001b[39m=\u001b[32m\"true\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"lucide lucide-scan-line h-5 w-5\"\u001b[39m\n \u001b[33mfill\u001b[39m=\u001b[32m\"none\"\u001b[39m\n \u001b[33mheight\u001b[39m=\u001b[32m\"24\"\u001b[39m\n \u001b[33mstroke\u001b[39m=\u001b[32m\"currentColor\"\u001b[39m\n \u001b[33mstroke-linecap\u001b[39m=\u001b[32m\"round\"\u001b[39m\n \u001b[33mstroke-linejoin\u001b[39m=\u001b[32m\"round\"\u001b[39m\n \u001b[33mstroke-width\u001b[39m=\u001b[32m\"2\"\u001b[39m\n \u001b[33mviewBox\u001b[39m=\u001b[32m\"0 0 24 24\"\u001b[39m\n \u001b[33mwidth\u001b[39m=\u001b[32m\"24\"\u001b[39m\n \u001b[33mxmlns\u001b[39m=\u001b[32m\"http://www.w3.org/2000/svg\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<path\u001b[39m\n \u001b[33md\u001b[39m=\u001b[32m\"M3 7V5a2 2 0 0 1 2-2h2\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<path\u001b[39m\n \u001b[33md\u001b[39m=\u001b[32m\"M17 3h2a2 2 0 0 1 2 2v2\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<path\u001b[39m\n \u001b[33md\u001b[39m=\u001b[32m\"M21 17v2a2 2 0 0 1-2 2h-2\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<path\u001b[39m\n \u001b[33md\u001b[39m=\u001b[32m\"M7 21H5a2 2 0 0 1-2-2v-2\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<path\u001b[39m\n \u001b[33md\u001b[39m=\u001b[32m\"M7 12h10\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m</svg>\u001b[39m\n \u001b[36m</button>\u001b[39m\n \u001b[36m<button\u001b[39m\n \u001b[33maria-label\u001b[39m=\u001b[32m\"打开设置\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-profile-header__icon-button\"\u001b[39m\n \u001b[33mtype\u001b[39m=\u001b[32m\"button\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<svg\u001b[39m\n \u001b[33maria-hidden\u001b[39m=\u001b[32m\"true\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"lucide lucide-settings h-5 w-5\"\u001b[39m\n \u001b[33mfill\u001b[39m=\u001b[32m\"none\"\u001b[39m\n \u001b[33mheight\u001b[39m=\u001b[32m\"24\"\u001b[39m\n \u001b[33mstroke\u001b[39m=\u001b[32m\"currentColor\"\u001b[39m\n \u001b[33mstroke-linecap\u001b[39m=\u001b[32m\"round\"\u001b[39m\n \u001b[33mstroke-linejoin\u001b[39m=\u001b[32m\"round\"\u001b[39m\n \u001b[33mstroke-width\u001b[39m=\u001b[32m\"2\"\u001b[39m\n \u001b[33mviewBox\u001b[39m=\u001b[32m\"0 0 24 24\"\u001b[39m\n \u001b[33mwidth\u001b[39m=\u001b[32m\"24\"\u001b[39m\n \u001b[33mxmlns\u001b[39m=\u001b[32m\"http://www.w3.org/2000/svg\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<path\u001b[39m\n \u001b[33md\u001b[39m=\u001b[32m\"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<circle\u001b[39m\n \u001b[33mcx\u001b[39m=\u001b[32m\"12\"\u001b[39m\n \u001b[33mcy\u001b[39m=\u001b[32m\"12\"\u001b[39m\n \u001b[33mr\u001b[39m=\u001b[32m\"3\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m</svg>\u001b[39m\n \u001b[36m</button>\u001b[39m\n \u001b[36m</div>\u001b[39m\n \u001b[36m<img\u001b[39m\n \u001b[33malt\u001b[39m=\u001b[32m\"\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-profile-scene-decor\"\u001b[39m\n \u001b[33msrc\u001b[39m=\u001b[32m\"/media/profile/_Image (3).png\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-profile-header__identity\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"flex min-w-0 items-center gap-4\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<button\u001b[39m\n \u001b[33maria-label\u001b[39m=\u001b[32m\"上传头像\"\u001b[39m\n ...\n\nIgnored nodes: comments, script, style\n\u001b[36m<body>\u001b[39m\n \u001b[36m<div>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-mobile-entry-shell flex h-full min-h-0 min-w-0 flex-col overflow-hidden\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-mobile-topbar mb-3 flex shrink-0 items-center justify-between gap-3 px-0.5\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<span\u001b[39m\n \u001b[33maria-label\u001b[39m=\u001b[32m\"陶泥儿 GENARRATIVE\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-brand-logo\"\u001b[39m\n \u001b[33mrole\u001b[39m=\u001b[32m\"img\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<span\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-brand-logo__title\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[0m陶泥\u001b[0m\n \u001b[36m<span\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-brand-logo__title-suffix\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[0m儿\u001b[0m\n \u001b[36m</span>\u001b[39m\n \u001b[36m</span>\u001b[39m\n \u001b[36m<span\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-brand-logo__subtitle\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[0mGENARRATIVE\u001b[0m\n \u001b[36m</span>\u001b[39m\n \u001b[36m</span>\u001b[39m\n \u001b[36m</div>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-tab-panel-stack min-w-0 flex-1\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<section\u001b[39m\n \u001b[33maria-hidden\u001b[39m=\u001b[32m\"true\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-tab-panel platform-tab-panel--hidden\"\u001b[39m\n \u001b[33mid\u001b[39m=\u001b[32m\"platform-tab-panel-home\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<section\u001b[39m\n \u001b[33maria-hidden\u001b[39m=\u001b[32m\"true\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-tab-panel platform-tab-panel--hidden\"\u001b[39m\n \u001b[33mid\u001b[39m=\u001b[32m\"platform-tab-panel-category\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<section\u001b[39m\n \u001b[33maria-hidden\u001b[39m=\u001b[32m\"true\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-tab-panel platform-tab-panel--hidden\"\u001b[39m\n \u001b[33mid\u001b[39m=\u001b[32m\"platform-tab-panel-create\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<section\u001b[39m\n \u001b[33maria-hidden\u001b[39m=\u001b[32m\"true\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-tab-panel platform-tab-panel--hidden\"\u001b[39m\n \u001b[33mid\u001b[39m=\u001b[32m\"platform-tab-panel-saves\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<section\u001b[39m\n \u001b[33maria-hidden\u001b[39m=\u001b[32m\"false\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-tab-panel platform-tab-panel--active\"\u001b[39m\n \u001b[33mid\u001b[39m=\u001b[32m\"platform-tab-panel-profile\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-page-stage platform-remap-surface min-w-0 space-y-4 overflow-hidden pb-2 platform-profile-page\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<section\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-profile-header\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-profile-header__actions\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<button\u001b[39m\n \u001b[33maria-label\u001b[39m=\u001b[32m\"打开充值入口\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-profile-header__icon-button\"\u001b[39m\n \u001b[33mtype\u001b[39m=\u001b[32m\"button\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<svg\u001b[39m\n \u001b[33maria-hidden\u001b[39m=\u001b[32m\"true\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"lucide lucide-scan-line h-5 w-5\"\u001b[39m\n \u001b[33mfill\u001b[39m=\u001b[32m\"none\"\u001b[39m\n \u001b[33mheight\u001b[39m=\u001b[32m\"24\"\u001b[39m\n \u001b[33mstroke\u001b[39m=\u001b[32m\"currentColor\"\u001b[39m\n \u001b[33mstroke-linecap\u001b[39m=\u001b[32m\"round\"\u001b[39m\n \u001b[33mstroke-linejoin\u001b[39m=\u001b[32m\"round\"\u001b[39m\n \u001b[33mstroke-width\u001b[39m=\u001b[32m\"2\"\u001b[39m\n \u001b[33mviewBox\u001b[39m=\u001b[32m\"0 0 24 24\"\u001b[39m\n \u001b[33mwidth\u001b[39m=\u001b[32m\"24\"\u001b[39m\n \u001b[33mxmlns\u001b[39m=\u001b[32m\"http://www.w3.org/2000/svg\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<path\u001b[39m\n \u001b[33md\u001b[39m=\u001b[32m\"M3 7V5a2 2 0 0 1 2-2h2\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<path\u001b[39m\n \u001b[33md\u001b[39m=\u001b[32m\"M17 3h2a2 2 0 0 1 2 2v2\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<path\u001b[39m\n \u001b[33md\u001b[39m=\u001b[32m\"M21 17v2a2 2 0 0 1-2 2h-2\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<path\u001b[39m\n \u001b[33md\u001b[39m=\u001b[32m\"M7 21H5a2 2 0 0 1-2-2v-2\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<path\u001b[39m\n \u001b[33md\u001b[39m=\u001b[32m\"M7 12h10\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m</svg>\u001b[39m\n \u001b[36m</button>\u001b[39m\n \u001b[36m<button\u001b[39m\n \u001b[33maria-label\u001b[39m=\u001b[32m\"打开设置\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-profile-header__icon-button\"\u001b[39m\n \u001b[33mtype\u001b[39m=\u001b[32m\"button\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<svg\u001b[39m\n \u001b[33maria-hidden\u001b[39m=\u001b[32m\"true\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"lucide lucide-settings h-5 w-5\"\u001b[39m\n \u001b[33mfill\u001b[39m=\u001b[32m\"none\"\u001b[39m\n \u001b[33mheight\u001b[39m=\u001b[32m\"24\"\u001b[39m\n \u001b[33mstroke\u001b[39m=\u001b[32m\"currentColor\"\u001b[39m\n \u001b[33mstroke-linecap\u001b[39m=\u001b[32m\"round\"\u001b[39m\n \u001b[33mstroke-linejoin\u001b[39m=\u001b[32m\"round\"\u001b[39m\n \u001b[33mstroke-width\u001b[39m=\u001b[32m\"2\"\u001b[39m\n \u001b[33mviewBox\u001b[39m=\u001b[32m\"0 0 24 24\"\u001b[39m\n \u001b[33mwidth\u001b[39m=\u001b[32m\"24\"\u001b[39m\n \u001b[33mxmlns\u001b[39m=\u001b[32m\"http://www.w3.org/2000/svg\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<path\u001b[39m\n \u001b[33md\u001b[39m=\u001b[32m\"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<circle\u001b[39m\n \u001b[33mcx\u001b[39m=\u001b[32m\"12\"\u001b[39m\n \u001b[33mcy\u001b[39m=\u001b[32m\"12\"\u001b[39m\n \u001b[33mr\u001b[39m=\u001b[32m\"3\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m</svg>\u001b[39m\n \u001b[36m</button>\u001b[39m\n \u001b[36m</div>\u001b[39m\n \u001b[36m<img\u001b[39m\n \u001b[33malt\u001b[39m=\u001b[32m\"\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-profile-scene-decor\"\u001b[39m\n \u001b[33msrc\u001b[39m=\u001b[32m\"/media/profile/_Image (3).png\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-profile-header__identity\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"flex min-w-0 items-center gap-4\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<button\u001b[39m\n \u001b[33maria-label\u001b[39m=\u001b[32m\"上传头像\"\u001b[39m\n ..."
],
"location": {
"line": 163,
"column": 27
}
},
{
"ancestorTitles": [""],
"fullName": " profile invite shortcut shows reward subtitle and invited users",
"status": "failed",
"title": "profile invite shortcut shows reward subtitle and invited users",
"duration": 77,
"failureMessages": [
"Unable to find an element with the text: 双方得30. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.\n\nIgnored nodes: comments, script, style\n\u001b[36m<button\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-profile-shortcut-button flex min-h-[5.25rem] flex-col items-center justify-center gap-2 px-2.5 py-3 text-center transition\"\u001b[39m\n \u001b[33mtype\u001b[39m=\u001b[32m\"button\"\u001b[39m\n\u001b[36m>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-profile-shortcut-button__icon\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<img\u001b[39m\n \u001b[33malt\u001b[39m=\u001b[32m\"\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"h-full w-full object-contain\"\u001b[39m\n \u001b[33msrc\u001b[39m=\u001b[32m\"/media/profile/_Image (5).png\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m</div>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"whitespace-nowrap text-[13px] font-semibold text-[var(--platform-text-strong)]\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[0m邀请好友\u001b[0m\n \u001b[36m</div>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"flex min-h-4 items-center justify-center gap-1 whitespace-nowrap text-[11px] font-medium text-[var(--platform-text-soft)]\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[0m双方得 30 泥点\u001b[0m\n \u001b[36m</div>\u001b[39m\n\u001b[36m</button>\u001b[39m"
],
"location": {
"line": 37,
"column": 19
}
},
{
"ancestorTitles": [""],
"fullName": " profile redeem invite shortcut sits between invite and community for fresh accounts",
"status": "failed",
"title": "profile redeem invite shortcut sits between invite and community for fresh accounts",
"duration": 209,
"failureMessages": ["expected +0 to be truthy"],
"location": {
"line": 2058,
"column": 5
}
},
{
"ancestorTitles": [""],
"fullName": " profile redeem invite shortcut hides after redeemed or one day old",
"status": "passed",
"title": "profile redeem invite shortcut hides after redeemed or one day old",
"duration": 226,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " invite query opens login modal for logged out users",
"status": "passed",
"title": "invite query opens login modal for logged out users",
"duration": 20,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " invite query opens redeem modal directly for logged in users",
"status": "passed",
"title": "invite query opens redeem modal directly for logged in users",
"duration": 154,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " profile redeem invite modal reads query invite code after login",
"status": "passed",
"title": "profile redeem invite modal reads query invite code after login",
"duration": 71,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " profile redeem invite modal submits code and hides shortcut after success",
"status": "failed",
"title": "profile redeem invite modal submits code and hides shortcut after success",
"duration": 1054,
"failureMessages": [
"Unable to find role=\"button\" and name `/填邀请码/u`\n\nIgnored nodes: comments, script, style\n\u001b[36m<body>\u001b[39m\n \u001b[36m<div>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-mobile-entry-shell flex h-full min-h-0 min-w-0 flex-col overflow-hidden\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-mobile-topbar mb-3 flex shrink-0 items-center justify-between gap-3 px-0.5\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<span\u001b[39m\n \u001b[33maria-label\u001b[39m=\u001b[32m\"陶泥儿 GENARRATIVE\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-brand-logo\"\u001b[39m\n \u001b[33mrole\u001b[39m=\u001b[32m\"img\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<span\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-brand-logo__title\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[0m陶泥\u001b[0m\n \u001b[36m<span\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-brand-logo__title-suffix\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[0m儿\u001b[0m\n \u001b[36m</span>\u001b[39m\n \u001b[36m</span>\u001b[39m\n \u001b[36m<span\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-brand-logo__subtitle\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[0mGENARRATIVE\u001b[0m\n \u001b[36m</span>\u001b[39m\n \u001b[36m</span>\u001b[39m\n \u001b[36m</div>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-tab-panel-stack min-w-0 flex-1\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<section\u001b[39m\n \u001b[33maria-hidden\u001b[39m=\u001b[32m\"true\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-tab-panel platform-tab-panel--hidden\"\u001b[39m\n \u001b[33mid\u001b[39m=\u001b[32m\"platform-tab-panel-home\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<section\u001b[39m\n \u001b[33maria-hidden\u001b[39m=\u001b[32m\"true\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-tab-panel platform-tab-panel--hidden\"\u001b[39m\n \u001b[33mid\u001b[39m=\u001b[32m\"platform-tab-panel-category\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<section\u001b[39m\n \u001b[33maria-hidden\u001b[39m=\u001b[32m\"true\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-tab-panel platform-tab-panel--hidden\"\u001b[39m\n \u001b[33mid\u001b[39m=\u001b[32m\"platform-tab-panel-create\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<section\u001b[39m\n \u001b[33maria-hidden\u001b[39m=\u001b[32m\"true\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-tab-panel platform-tab-panel--hidden\"\u001b[39m\n \u001b[33mid\u001b[39m=\u001b[32m\"platform-tab-panel-saves\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<section\u001b[39m\n \u001b[33maria-hidden\u001b[39m=\u001b[32m\"false\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-tab-panel platform-tab-panel--active\"\u001b[39m\n \u001b[33mid\u001b[39m=\u001b[32m\"platform-tab-panel-profile\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-page-stage platform-remap-surface min-w-0 space-y-4 overflow-hidden pb-2 platform-profile-page\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<section\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-profile-header\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-profile-header__actions\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<button\u001b[39m\n \u001b[33maria-label\u001b[39m=\u001b[32m\"打开充值入口\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-profile-header__icon-button\"\u001b[39m\n \u001b[33mtype\u001b[39m=\u001b[32m\"button\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<svg\u001b[39m\n \u001b[33maria-hidden\u001b[39m=\u001b[32m\"true\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"lucide lucide-scan-line h-5 w-5\"\u001b[39m\n \u001b[33mfill\u001b[39m=\u001b[32m\"none\"\u001b[39m\n \u001b[33mheight\u001b[39m=\u001b[32m\"24\"\u001b[39m\n \u001b[33mstroke\u001b[39m=\u001b[32m\"currentColor\"\u001b[39m\n \u001b[33mstroke-linecap\u001b[39m=\u001b[32m\"round\"\u001b[39m\n \u001b[33mstroke-linejoin\u001b[39m=\u001b[32m\"round\"\u001b[39m\n \u001b[33mstroke-width\u001b[39m=\u001b[32m\"2\"\u001b[39m\n \u001b[33mviewBox\u001b[39m=\u001b[32m\"0 0 24 24\"\u001b[39m\n \u001b[33mwidth\u001b[39m=\u001b[32m\"24\"\u001b[39m\n \u001b[33mxmlns\u001b[39m=\u001b[32m\"http://www.w3.org/2000/svg\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<path\u001b[39m\n \u001b[33md\u001b[39m=\u001b[32m\"M3 7V5a2 2 0 0 1 2-2h2\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<path\u001b[39m\n \u001b[33md\u001b[39m=\u001b[32m\"M17 3h2a2 2 0 0 1 2 2v2\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<path\u001b[39m\n \u001b[33md\u001b[39m=\u001b[32m\"M21 17v2a2 2 0 0 1-2 2h-2\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<path\u001b[39m\n \u001b[33md\u001b[39m=\u001b[32m\"M7 21H5a2 2 0 0 1-2-2v-2\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<path\u001b[39m\n \u001b[33md\u001b[39m=\u001b[32m\"M7 12h10\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m</svg>\u001b[39m\n \u001b[36m</button>\u001b[39m\n \u001b[36m<button\u001b[39m\n \u001b[33maria-label\u001b[39m=\u001b[32m\"打开设置\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-profile-header__icon-button\"\u001b[39m\n \u001b[33mtype\u001b[39m=\u001b[32m\"button\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<svg\u001b[39m\n \u001b[33maria-hidden\u001b[39m=\u001b[32m\"true\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"lucide lucide-settings h-5 w-5\"\u001b[39m\n \u001b[33mfill\u001b[39m=\u001b[32m\"none\"\u001b[39m\n \u001b[33mheight\u001b[39m=\u001b[32m\"24\"\u001b[39m\n \u001b[33mstroke\u001b[39m=\u001b[32m\"currentColor\"\u001b[39m\n \u001b[33mstroke-linecap\u001b[39m=\u001b[32m\"round\"\u001b[39m\n \u001b[33mstroke-linejoin\u001b[39m=\u001b[32m\"round\"\u001b[39m\n \u001b[33mstroke-width\u001b[39m=\u001b[32m\"2\"\u001b[39m\n \u001b[33mviewBox\u001b[39m=\u001b[32m\"0 0 24 24\"\u001b[39m\n \u001b[33mwidth\u001b[39m=\u001b[32m\"24\"\u001b[39m\n \u001b[33mxmlns\u001b[39m=\u001b[32m\"http://www.w3.org/2000/svg\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<path\u001b[39m\n \u001b[33md\u001b[39m=\u001b[32m\"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<circle\u001b[39m\n \u001b[33mcx\u001b[39m=\u001b[32m\"12\"\u001b[39m\n \u001b[33mcy\u001b[39m=\u001b[32m\"12\"\u001b[39m\n \u001b[33mr\u001b[39m=\u001b[32m\"3\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m</svg>\u001b[39m\n \u001b[36m</button>\u001b[39m\n \u001b[36m</div>\u001b[39m\n \u001b[36m<img\u001b[39m\n \u001b[33malt\u001b[39m=\u001b[32m\"\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-profile-scene-decor\"\u001b[39m\n \u001b[33msrc\u001b[39m=\u001b[32m\"/media/profile/_Image (3).png\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-profile-header__identity\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"flex min-w-0 items-center gap-4\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<button\u001b[39m\n \u001b[33maria-label\u001b[39m=\u001b[32m\"上传头像\"\u001b[39m\n ...\n\nIgnored nodes: comments, script, style\n\u001b[36m<body>\u001b[39m\n \u001b[36m<div>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-mobile-entry-shell flex h-full min-h-0 min-w-0 flex-col overflow-hidden\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-mobile-topbar mb-3 flex shrink-0 items-center justify-between gap-3 px-0.5\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<span\u001b[39m\n \u001b[33maria-label\u001b[39m=\u001b[32m\"陶泥儿 GENARRATIVE\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-brand-logo\"\u001b[39m\n \u001b[33mrole\u001b[39m=\u001b[32m\"img\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<span\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-brand-logo__title\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[0m陶泥\u001b[0m\n \u001b[36m<span\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-brand-logo__title-suffix\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[0m儿\u001b[0m\n \u001b[36m</span>\u001b[39m\n \u001b[36m</span>\u001b[39m\n \u001b[36m<span\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-brand-logo__subtitle\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[0mGENARRATIVE\u001b[0m\n \u001b[36m</span>\u001b[39m\n \u001b[36m</span>\u001b[39m\n \u001b[36m</div>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-tab-panel-stack min-w-0 flex-1\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<section\u001b[39m\n \u001b[33maria-hidden\u001b[39m=\u001b[32m\"true\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-tab-panel platform-tab-panel--hidden\"\u001b[39m\n \u001b[33mid\u001b[39m=\u001b[32m\"platform-tab-panel-home\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<section\u001b[39m\n \u001b[33maria-hidden\u001b[39m=\u001b[32m\"true\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-tab-panel platform-tab-panel--hidden\"\u001b[39m\n \u001b[33mid\u001b[39m=\u001b[32m\"platform-tab-panel-category\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<section\u001b[39m\n \u001b[33maria-hidden\u001b[39m=\u001b[32m\"true\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-tab-panel platform-tab-panel--hidden\"\u001b[39m\n \u001b[33mid\u001b[39m=\u001b[32m\"platform-tab-panel-create\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<section\u001b[39m\n \u001b[33maria-hidden\u001b[39m=\u001b[32m\"true\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-tab-panel platform-tab-panel--hidden\"\u001b[39m\n \u001b[33mid\u001b[39m=\u001b[32m\"platform-tab-panel-saves\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<section\u001b[39m\n \u001b[33maria-hidden\u001b[39m=\u001b[32m\"false\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-tab-panel platform-tab-panel--active\"\u001b[39m\n \u001b[33mid\u001b[39m=\u001b[32m\"platform-tab-panel-profile\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-page-stage platform-remap-surface min-w-0 space-y-4 overflow-hidden pb-2 platform-profile-page\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<section\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-profile-header\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-profile-header__actions\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<button\u001b[39m\n \u001b[33maria-label\u001b[39m=\u001b[32m\"打开充值入口\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-profile-header__icon-button\"\u001b[39m\n \u001b[33mtype\u001b[39m=\u001b[32m\"button\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<svg\u001b[39m\n \u001b[33maria-hidden\u001b[39m=\u001b[32m\"true\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"lucide lucide-scan-line h-5 w-5\"\u001b[39m\n \u001b[33mfill\u001b[39m=\u001b[32m\"none\"\u001b[39m\n \u001b[33mheight\u001b[39m=\u001b[32m\"24\"\u001b[39m\n \u001b[33mstroke\u001b[39m=\u001b[32m\"currentColor\"\u001b[39m\n \u001b[33mstroke-linecap\u001b[39m=\u001b[32m\"round\"\u001b[39m\n \u001b[33mstroke-linejoin\u001b[39m=\u001b[32m\"round\"\u001b[39m\n \u001b[33mstroke-width\u001b[39m=\u001b[32m\"2\"\u001b[39m\n \u001b[33mviewBox\u001b[39m=\u001b[32m\"0 0 24 24\"\u001b[39m\n \u001b[33mwidth\u001b[39m=\u001b[32m\"24\"\u001b[39m\n \u001b[33mxmlns\u001b[39m=\u001b[32m\"http://www.w3.org/2000/svg\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<path\u001b[39m\n \u001b[33md\u001b[39m=\u001b[32m\"M3 7V5a2 2 0 0 1 2-2h2\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<path\u001b[39m\n \u001b[33md\u001b[39m=\u001b[32m\"M17 3h2a2 2 0 0 1 2 2v2\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<path\u001b[39m\n \u001b[33md\u001b[39m=\u001b[32m\"M21 17v2a2 2 0 0 1-2 2h-2\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<path\u001b[39m\n \u001b[33md\u001b[39m=\u001b[32m\"M7 21H5a2 2 0 0 1-2-2v-2\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<path\u001b[39m\n \u001b[33md\u001b[39m=\u001b[32m\"M7 12h10\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m</svg>\u001b[39m\n \u001b[36m</button>\u001b[39m\n \u001b[36m<button\u001b[39m\n \u001b[33maria-label\u001b[39m=\u001b[32m\"打开设置\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-profile-header__icon-button\"\u001b[39m\n \u001b[33mtype\u001b[39m=\u001b[32m\"button\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<svg\u001b[39m\n \u001b[33maria-hidden\u001b[39m=\u001b[32m\"true\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"lucide lucide-settings h-5 w-5\"\u001b[39m\n \u001b[33mfill\u001b[39m=\u001b[32m\"none\"\u001b[39m\n \u001b[33mheight\u001b[39m=\u001b[32m\"24\"\u001b[39m\n \u001b[33mstroke\u001b[39m=\u001b[32m\"currentColor\"\u001b[39m\n \u001b[33mstroke-linecap\u001b[39m=\u001b[32m\"round\"\u001b[39m\n \u001b[33mstroke-linejoin\u001b[39m=\u001b[32m\"round\"\u001b[39m\n \u001b[33mstroke-width\u001b[39m=\u001b[32m\"2\"\u001b[39m\n \u001b[33mviewBox\u001b[39m=\u001b[32m\"0 0 24 24\"\u001b[39m\n \u001b[33mwidth\u001b[39m=\u001b[32m\"24\"\u001b[39m\n \u001b[33mxmlns\u001b[39m=\u001b[32m\"http://www.w3.org/2000/svg\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<path\u001b[39m\n \u001b[33md\u001b[39m=\u001b[32m\"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<circle\u001b[39m\n \u001b[33mcx\u001b[39m=\u001b[32m\"12\"\u001b[39m\n \u001b[33mcy\u001b[39m=\u001b[32m\"12\"\u001b[39m\n \u001b[33mr\u001b[39m=\u001b[32m\"3\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m</svg>\u001b[39m\n \u001b[36m</button>\u001b[39m\n \u001b[36m</div>\u001b[39m\n \u001b[36m<img\u001b[39m\n \u001b[33malt\u001b[39m=\u001b[32m\"\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-profile-scene-decor\"\u001b[39m\n \u001b[33msrc\u001b[39m=\u001b[32m\"/media/profile/_Image (3).png\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-profile-header__identity\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"flex min-w-0 items-center gap-4\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<button\u001b[39m\n \u001b[33maria-label\u001b[39m=\u001b[32m\"上传头像\"\u001b[39m\n ..."
],
"location": {
"line": 163,
"column": 27
}
},
{
"ancestorTitles": [""],
"fullName": " opens reward code modal from profile action on mobile",
"status": "passed",
"title": "opens reward code modal from profile action on mobile",
"duration": 234,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " profile page shows legal entries and ICP record link",
"status": "failed",
"title": "profile page shows legal entries and ICP record link",
"duration": 38,
"failureMessages": [
"expected false to be true // Object.is equality"
],
"location": {
"line": 2174,
"column": 5
}
},
{
"ancestorTitles": [""],
"fullName": " shows a reachable login entry outside mobile recommend tab",
"status": "passed",
"title": "shows a reachable login entry outside mobile recommend tab",
"duration": 72,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " logged out bottom nav turns active recommend tab into next action",
"status": "passed",
"title": "logged out bottom nav turns active recommend tab into next action",
"duration": 26,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " logged in draft bottom tab shows unread marker",
"status": "passed",
"title": "logged in draft bottom tab shows unread marker",
"duration": 28,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " logged in create tab shows real wallet balance beside the brand",
"status": "passed",
"title": "logged in create tab shows real wallet balance beside the brand",
"duration": 24,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " mobile discover search submits public work code",
"status": "passed",
"title": "mobile discover search submits public work code",
"duration": 415,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " discover search fuzzy matches public work id, name, author and description",
"status": "passed",
"title": "discover search fuzzy matches public work id, name, author and description",
"duration": 1186,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " mobile discover keeps edutainment works in the last dedicated channel only",
"status": "passed",
"title": "mobile discover keeps edutainment works in the last dedicated channel only",
"duration": 661,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " desktop discover shows child motion demo in edutainment channel",
"status": "passed",
"title": "desktop discover shows child motion demo in edutainment channel",
"duration": 200,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " mobile discover hides edutainment channel and work when switch is disabled",
"status": "passed",
"title": "mobile discover hides edutainment channel and work when switch is disabled",
"duration": 326,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " mobile discover keeps baby object match works in edutainment channel only",
"status": "passed",
"title": "mobile discover keeps baby object match works in edutainment channel only",
"duration": 419,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " discover search keeps public code fallback when local works do not match",
"status": "passed",
"title": "discover search keeps public code fallback when local works do not match",
"duration": 372,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " public gallery cards hide work code until detail is opened",
"status": "passed",
"title": "public gallery cards hide work code until detail is opened",
"duration": 124,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " logged out mobile shell defaults to discover tab",
"status": "passed",
"title": "logged out mobile shell defaults to discover tab",
"duration": 23,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " logged out recommend tab opens login modal and shows cover only",
"status": "passed",
"title": "logged out recommend tab opens login modal and shows cover only",
"duration": 89,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " logged out recommend cover opens login modal again",
"status": "passed",
"title": "logged out recommend cover opens login modal again",
"duration": 138,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " logged out desktop recommend page renders cover only",
"status": "passed",
"title": "logged out desktop recommend page renders cover only",
"duration": 20,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " logged in recommend page uses gated recommend detail callback",
"status": "passed",
"title": "logged in recommend page uses gated recommend detail callback",
"duration": 57,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " logged out mobile recommend page renders cover instead of runtime",
"status": "passed",
"title": "logged out mobile recommend page renders cover instead of runtime",
"duration": 21,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " mobile recommend loading state is themed instead of hardcoded black",
"status": "passed",
"title": "mobile recommend loading state is themed instead of hardcoded black",
"duration": 18,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " logged in recommend runtime preloads adjacent work previews and drag switches like video feed",
"status": "passed",
"title": "logged in recommend runtime preloads adjacent work previews and drag switches like video feed",
"duration": 79,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " logged out active recommend bottom tab selects next work without login",
"status": "passed",
"title": "logged out active recommend bottom tab selects next work without login",
"duration": 66,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " mobile recommend meta loads real author avatar from public user summary",
"status": "passed",
"title": "mobile recommend meta loads real author avatar from public user summary",
"duration": 27,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " mobile discover recommend feed only rotates the card closest to screen center",
"status": "passed",
"title": "mobile discover recommend feed only rotates the card closest to screen center",
"duration": 71,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " mobile discover recommend feed renders cover fallback for legacy browsers",
"status": "passed",
"title": "mobile discover recommend feed renders cover fallback for legacy browsers",
"duration": 26,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " mobile today channel only shows newly published works from today",
"status": "passed",
"title": "mobile today channel only shows newly published works from today",
"duration": 86,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " desktop logged in home syncs mobile home modules without square or latest labels",
"status": "failed",
"title": "desktop logged in home syncs mobile home modules without square or latest labels",
"duration": 28,
"failureMessages": [
"Unable to find an element with the text: 拼图. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.\n\nIgnored nodes: comments, script, style\n\u001b[36m<body>\u001b[39m\n \u001b[36m<div>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"flex h-full min-h-0 flex-col\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"flex h-full min-h-0 flex-col\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-desktop-shell flex h-full min-h-0 flex-col p-5 xl:p-6\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-desktop-topbar flex items-center gap-4 px-5 py-4\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"flex min-w-0 flex-1 items-center gap-5\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<span\u001b[39m\n \u001b[33maria-hidden\u001b[39m=\u001b[32m\"true\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-brand-logo shrink-0\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<span\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-brand-logo__title\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[0m陶泥\u001b[0m\n \u001b[36m<span\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-brand-logo__title-suffix\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[0m儿\u001b[0m\n \u001b[36m</span>\u001b[39m\n \u001b[36m</span>\u001b[39m\n \u001b[36m<span\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-brand-logo__subtitle\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[0mGENARRATIVE\u001b[0m\n \u001b[36m</span>\u001b[39m\n \u001b[36m</span>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-desktop-search flex min-w-0 items-center gap-3 px-4 py-3 text-[var(--platform-text-soft)] max-w-[34rem] flex-1\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<svg\u001b[39m\n \u001b[33maria-hidden\u001b[39m=\u001b[32m\"true\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"lucide lucide-search h-4 w-4 shrink-0\"\u001b[39m\n \u001b[33mfill\u001b[39m=\u001b[32m\"none\"\u001b[39m\n \u001b[33mheight\u001b[39m=\u001b[32m\"24\"\u001b[39m\n \u001b[33mstroke\u001b[39m=\u001b[32m\"currentColor\"\u001b[39m\n \u001b[33mstroke-linecap\u001b[39m=\u001b[32m\"round\"\u001b[39m\n \u001b[33mstroke-linejoin\u001b[39m=\u001b[32m\"round\"\u001b[39m\n \u001b[33mstroke-width\u001b[39m=\u001b[32m\"2\"\u001b[39m\n \u001b[33mviewBox\u001b[39m=\u001b[32m\"0 0 24 24\"\u001b[39m\n \u001b[33mwidth\u001b[39m=\u001b[32m\"24\"\u001b[39m\n \u001b[33mxmlns\u001b[39m=\u001b[32m\"http://www.w3.org/2000/svg\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<path\u001b[39m\n \u001b[33md\u001b[39m=\u001b[32m\"m21 21-4.34-4.34\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<circle\u001b[39m\n \u001b[33mcx\u001b[39m=\u001b[32m\"11\"\u001b[39m\n \u001b[33mcy\u001b[39m=\u001b[32m\"11\"\u001b[39m\n \u001b[33mr\u001b[39m=\u001b[32m\"8\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m</svg>\u001b[39m\n \u001b[36m<input\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"w-full min-w-0 bg-transparent text-sm text-[var(--platform-text-strong)] outline-none placeholder:text-[var(--platform-text-soft)]\"\u001b[39m\n \u001b[33mplaceholder\u001b[39m=\u001b[32m\"搜索作品号、名称、作者、描述\"\u001b[39m\n \u001b[33mvalue\u001b[39m=\u001b[32m\"\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<button\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"shrink-0 text-xs font-semibold text-[var(--platform-text-soft)] disabled:opacity-50\"\u001b[39m\n \u001b[33mdisabled\u001b[39m=\u001b[32m\"\"\u001b[39m\n \u001b[33mtype\u001b[39m=\u001b[32m\"button\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[0m搜索\u001b[0m\n \u001b[36m</button>\u001b[39m\n \u001b[36m</div>\u001b[39m\n \u001b[36m</div>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"flex items-center gap-3\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<button\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-desktop-search flex items-center gap-3 px-3 py-2.5 text-left\"\u001b[39m\n \u001b[33mtype\u001b[39m=\u001b[32m\"button\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<span\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"flex h-11 w-11 items-center justify-center overflow-hidden rounded-full text-base font-black text-white\"\u001b[39m\n \u001b[33mstyle\u001b[39m=\u001b[32m\"box-shadow: var(--platform-profile-avatar-shadow);\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[0m测\u001b[0m\n \u001b[36m</span>\u001b[39m\n \u001b[36m<span\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"min-w-0\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<span\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"block truncate text-sm font-semibold text-[var(--platform-text-strong)]\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[0m测试玩家\u001b[0m\n \u001b[36m</span>\u001b[39m\n \u001b[36m<span\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"block truncate text-xs text-[var(--platform-text-soft)]\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[0m100001\u001b[0m\n \u001b[36m</span>\u001b[39m\n \u001b[36m</span>\u001b[39m\n \u001b[36m</button>\u001b[39m\n \u001b[36m</div>\u001b[39m\n \u001b[36m</div>\u001b[39m\n \u001b[36m<div\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"mt-5 flex min-h-0 gap-5\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<aside\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-desktop-rail flex w-[5.8rem] shrink-0 flex-col gap-3 p-3\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<button\u001b[39m\n \u001b[33maria-label\u001b[39m=\u001b[32m\"推荐\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-desktop-rail__button platform-desktop-rail__button--active\"\u001b[39m\n \u001b[33mtype\u001b[39m=\u001b[32m\"button\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<span\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"platform-desktop-rail__icon-shell\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<svg\u001b[39m\n \u001b[33maria-hidden\u001b[39m=\u001b[32m\"true\"\u001b[39m\n \u001b[33mclass\u001b[39m=\u001b[32m\"lucide lucide-sparkles platform-desktop-rail__icon h-[1.1rem] w-[1.1rem]\"\u001b[39m\n \u001b[33mfill\u001b[39m=\u001b[32m\"none\"\u001b[39m\n \u001b[33mheight\u001b[39m=\u001b[32m\"24\"\u001b[39m\n \u001b[33mstroke\u001b[39m=\u001b[32m\"currentColor\"\u001b[39m\n \u001b[33mstroke-linecap\u001b[39m=\u001b[32m\"round\"\u001b[39m\n \u001b[33mstroke-linejoin\u001b[39m=\u001b[32m\"round\"\u001b[39m\n \u001b[33mstroke-width\u001b[39m=\u001b[32m\"2\"\u001b[39m\n \u001b[33mviewBox\u001b[39m=\u001b[32m\"0 0 24 24\"\u001b[39m\n \u001b[33mwidth\u001b[39m=\u001b[32m\"24\"\u001b[39m\n \u001b[33mxmlns\u001b[39m=\u001b[32m\"http://www.w3.org/2000/svg\"\u001b[39m\n \u001b[36m>\u001b[39m\n \u001b[36m<path\u001b[39m\n \u001b[33md\u001b[39m=\u001b[32m\"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<path\u001b[39m\n \u001b[33md\u001b[39m=\u001b[32m\"M20 2v4\"\u001b[39m\n \u001b[36m/>\u001b[39m\n \u001b[36m<path..."
],
"location": {
"line": 37,
"column": 19
}
},
{
"ancestorTitles": [""],
"fullName": " mobile home moves category shelf into game category channel",
"status": "passed",
"title": "mobile home moves category shelf into game category channel",
"duration": 119,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " mobile game category list orders works by composite public metric",
"status": "passed",
"title": "mobile game category list orders works by composite public metric",
"duration": 173,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " mobile game category filter dialog filters by play type",
"status": "passed",
"title": "mobile game category filter dialog filters by play type",
"duration": 344,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " bottom category tab becomes ranking and switches ranking metrics",
"status": "passed",
"title": "bottom category tab becomes ranking and switches ranking metrics",
"duration": 326,
"failureMessages": []
},
{
"ancestorTitles": [""],
"fullName": " ranking rows limit displayed work name and show two short tags on the third line",
"status": "passed",
"title": "ranking rows limit displayed work name and show two short tags on the third line",
"duration": 155,
"failureMessages": []
}
],
"startTime": 1779633397652,
"endTime": 1779633411811,
"status": "failed",
"message": "",
"name": "C:/Genarrative/src/components/rpg-entry/RpgEntryHomeView.recharge.test.tsx"
}
]
}