[1m[46m RUN [49m[22m [36mv4.1.0 [39m[90mE:/Desktop/CICD[39m [32m✓[39m [30m[42m unit [49m[39m src/modules/announcements/schema.test.ts [2m([22m[2m18 tests[22m[2m)[22m[32m 13[2mms[22m[39m [32m✓[39m [30m[42m unit [49m[39m src/modules/announcements/is-announcement-visible.test.ts [2m([22m[2m15 tests[22m[2m)[22m[32m 7[2mms[22m[39m [31m❯[39m [30m[42m unit [49m[39m src/modules/announcements/components/announcement-card.test.tsx [2m([22m[2m16 tests[22m[2m | [22m[31m9 failed[39m[2m)[22m[33m 400[2mms[22m[39m [31m [31m×[31m 渲染标题与内容[39m[32m 41[2mms[22m[39m [32m✓[39m 渲染类型 badge(school)[32m 7[2mms[22m[39m [32m✓[39m 未提供 href 时不渲染外层 Link[32m 5[2mms[22m[39m [32m✓[39m isRead=false 时应用 ring-2 ring-primary/40 类名[32m 3[2mms[22m[39m [32m✓[39m isRead=true 时不应用 ring 类名[32m 3[2mms[22m[39m [32m✓[39m isRead=undefined 时不应用 ring 类名[32m 2[2mms[22m[39m [32m✓[39m isRead=false 时渲染未读 badge[32m 3[2mms[22m[39m [32m✓[39m isPinned=true 时渲染已置顶 badge 与 Pin 图标 fill[32m 6[2mms[22m[39m [31m [31m×[31m canManage=true 时渲染置顶按钮[39m[32m 144[2mms[22m[39m [31m [31m×[31m canManage=false 时不渲染置顶按钮[39m[32m 30[2mms[22m[39m [31m [31m×[31m 点击置顶按钮调用 service.togglePin[39m[32m 30[2mms[22m[39m [31m [31m×[31m togglePin 返回失败时回滚 isPinned 并显示 toast.error[39m[32m 20[2mms[22m[39m [31m [31m×[31m togglePin 抛错时回滚并显示 toast.error[39m[32m 27[2mms[22m[39m [31m [31m×[31m 置顶按钮支持 Enter 键触发[39m[32m 27[2mms[22m[39m [31m [31m×[31m 置顶按钮支持 Space 键触发[39m[32m 23[2mms[22m[39m [31m [31m×[31m 置顶按钮在 toggling 时禁用[39m[32m 26[2mms[22m[39m node.exe : At line:1 char:1 + & "C:\Program Files\nodejs/node.exe" "C:\Program Files\nodejs/node_mo ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:String) [], RemoteException + FullyQualifiedErrorId : NativeCommandError [31m⎯⎯⎯⎯⎯⎯⎯[39m[1m[41m Failed Tests 9 [49m[22m[31m⎯⎯⎯⎯⎯⎯⎯[39m [41m[1m FAIL [22m[49m [30m[42m unit [49m[39m src/modules/announcements/components/announcement-card.test.tsx[2 m > [22mAnnouncementCard[2m > [22m基础渲染[2m > [22m渲染标题与内容 [31m[1mError[22m: Invalid Chai property: toBeInTheDocument[39m [36m [2m❯[22m src/modules/announcements/components/announcement-card.test.tsx:[2m128:41[22m[39m [90m126|[39m [35mconst[39m service [33m=[39m [34mcreateMockService[39m() [90m127|[39m [34mrenderCard[39m(service) [90m128|[39m [34mexpect[39m(screen[33m.[39m[34mgetByText[39m([32m"测试公告标题"[39m))[33m.[39m[34mtoBe InTheDocument[39m() [90m |[39m [31m^[39m [90m129|[39m [34mexpect[39m(screen[33m.[39m[34mgetByText[39m([32m"测试公告内容"[39m))[33m.[39m[34mtoBe InTheDocument[39m() [90m130|[39m }) [31m[2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/9]⎯[22m[39m [41m[1m FAIL [22m[49m [30m[42m unit [49m[39m src/modules/announcements/components/announcement-card.test.tsx[2 m > [22mAnnouncementCard[2m > [22misPinned 视觉与交互[2m > [22mcanManage=true 时渲染置顶按钮 [31m[1mTestingLibraryElementError[22m[39m: Found multiple elements with the role "button" and name "actions.pin" Here are the matching elements: Ignored nodes: comments, script, style [36m[39m Ignored nodes: comments, script, style [36m[39m Ignored nodes: comments, script, style [36m[39m Ignored nodes: comments, script, style [36m[39m Ignored nodes: comments, script, style [36m[39m Ignored nodes: comments, script, style [36m[39m Ignored nodes: comments, script, style [36m[39m Ignored nodes: comments, script, style [36m[39m (If this is intentional, then use the `*AllBy*` variant of the query (like `queryAllByText`, `getAllByText`, or `findAl lByText`)). Ignored nodes: comments, script, style [36m
[39m [36m[39m [0m测试公告内容[0m [36m
[39m [36m[39m [0m测试公告内容[0m [36m
[39m [36m[39m [0m测试公告内容[0m [36m
[39m [36m[39m [0m测试公告内容[0m [36m
[39m [36m[39m [0m测试公告内容[0m [36m
[39m [36m[39m [0m测试公告内容[0m [36m
[39m [36m[39m [0m测试公告内容[0m [36m
[39m [36m[39m [0m测试公告内容[0m [36m
[39m [36m[39m [0m测试公告内容[0m [36m
[39m [36m[39m [0m测试公告内容[0m [36m
[39m [36m[39m [0m测试公告内容[0m [36m
[39m [36m[39m [0m测试公告内容[0m [36m
[39m [36m[39m [0m测试公告内容[0m [36m
[39m [36m[39m [0m测试公告内容[0m [36m
[39m [36m[39m [0m测试公告内容[0m [36m
[39m [36m[39m [0m测试公告内容[0m [36m
[39m [36m