Large changes across frontend, backend and docs to align creation-tab and generation-page behavior with new product UI/UX and Spacetime bindings. Updated hermes decision-log and pitfalls with concrete rules (banner carousel, font sizing, unread-dot tokens, template-card layout, direct card->entry routing, separation of account balance vs prize pools, removal of global page card shell, generation progress milestones and unified circular progress, and background video handling). Added GenerationProgressHero component and media assets, plus generation-related UI/tests updates (CustomWorldGenerationView, BarkBattleGeneratingView, creation hub/cards, platform entry routing, index tests). Backend and contract updates include new category fields in admin API types and admin UI form/list, spacetime-client/module/migration changes and generated bindings script. Misc: many tests adjusted, new docs and plan files added, and several server-rs crate changes to support the updated creation/ generation workflows.
652 lines
79 KiB
JSON
652 lines
79 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"
|
|
}
|
|
]
|
|
} |