diff --git a/backend/EXTERNAL_HA_ACCEPTANCE_20260418.json b/backend/EXTERNAL_HA_ACCEPTANCE_20260418.json new file mode 100644 index 0000000..e7ef14a --- /dev/null +++ b/backend/EXTERNAL_HA_ACCEPTANCE_20260418.json @@ -0,0 +1,251 @@ +{ + "generatedAt": "2026-04-18T21:17:25", + "baseUrl": "http://192.168.1.101:9000", + "ingressUrl": "http://192.168.1.101", + "users": { + "userA": "exta25fb992e", + "userB": "extb81fa47e6" + }, + "ids": { + "videoId": 2, + "commentId": 1, + "replyId": 1, + "tagId": 2 + }, + "results": [ + { + "name": "80入口用户验证码", + "status": "PASSED", + "http": 200, + "apiCode": 200, + "elapsedMs": 60, + "url": "http://192.168.1.101/auth/captcha" + }, + { + "name": "80入口后台验证码", + "status": "PASSED", + "http": 200, + "apiCode": 200, + "elapsedMs": 53, + "url": "http://192.168.1.101/admin/auth/captcha" + }, + { + "name": "用户端无验证码登录应被拦截", + "status": "PASSED", + "http": 400, + "apiCode": null, + "elapsedMs": 44, + "url": "http://192.168.1.101:9000/auth/login" + }, + { + "name": "后台无验证码登录应被拦截", + "status": "PASSED", + "http": 403, + "apiCode": null, + "elapsedMs": 45, + "url": "http://192.168.1.101:9000/admin/auth/login" + }, + { + "name": "用户注册 exta25fb992e", + "status": "PASSED", + "http": 200, + "apiCode": 200, + "elapsedMs": 221, + "url": "http://192.168.1.101:9000/auth/register" + }, + { + "name": "用户登录 exta25fb992e", + "status": "PASSED", + "http": 200, + "apiCode": 200, + "elapsedMs": 156, + "url": "http://192.168.1.101:9000/auth/login" + }, + { + "name": "获取当前用户 exta25fb992e", + "status": "PASSED", + "http": 200, + "apiCode": 200, + "elapsedMs": 62, + "url": "http://192.168.1.101:9000/auth/current" + }, + { + "name": "用户注册 extb81fa47e6", + "status": "PASSED", + "http": 200, + "apiCode": 200, + "elapsedMs": 200, + "url": "http://192.168.1.101:9000/auth/register" + }, + { + "name": "用户登录 extb81fa47e6", + "status": "PASSED", + "http": 200, + "apiCode": 200, + "elapsedMs": 153, + "url": "http://192.168.1.101:9000/auth/login" + }, + { + "name": "获取当前用户 extb81fa47e6", + "status": "PASSED", + "http": 200, + "apiCode": 200, + "elapsedMs": 56, + "url": "http://192.168.1.101:9000/auth/current" + }, + { + "name": "后台登录 admin", + "status": "PASSED", + "http": 200, + "apiCode": 200, + "elapsedMs": 165, + "url": "http://192.168.1.101:9000/admin/auth/login" + }, + { + "name": "后台获取当前管理员信息", + "status": "PASSED", + "http": 200, + "apiCode": 200, + "elapsedMs": 55, + "url": "http://192.168.1.101:9000/admin/auth/info" + }, + { + "name": "获取分类列表", + "status": "PASSED", + "http": 200, + "apiCode": 200, + "elapsedMs": 62, + "url": "http://192.168.1.101:9000/content/category/list" + }, + { + "name": "创建标签", + "status": "PASSED", + "http": 200, + "apiCode": 200, + "elapsedMs": 62, + "url": "http://192.168.1.101:9000/content/tag" + }, + { + "name": "获取标签列表", + "status": "PASSED", + "http": 200, + "apiCode": 200, + "elapsedMs": 22, + "url": "http://192.168.1.101:9000/content/tag/list" + }, + { + "name": "创建视频", + "status": "PASSED", + "http": 200, + "apiCode": 200, + "elapsedMs": 57, + "url": "http://192.168.1.101:9000/content/video" + }, + { + "name": "后台审核视频通过", + "status": "PASSED", + "http": 200, + "apiCode": 200, + "elapsedMs": 197, + "url": "http://192.168.1.101:9000/admin/platform/content/video/review/2?status=1&reason=external-acceptance" + }, + { + "name": "获取公开视频详情", + "status": "PASSED", + "http": 200, + "apiCode": 200, + "elapsedMs": 54, + "url": "http://192.168.1.101:9000/content/video/public/2" + }, + { + "name": "获取公开视频列表", + "status": "PASSED", + "http": 200, + "apiCode": 200, + "elapsedMs": 107, + "url": "http://192.168.1.101:9000/content/video/public/list?pageNum=1&pageSize=10" + }, + { + "name": "点赞视频", + "status": "PASSED", + "http": 200, + "apiCode": 200, + "elapsedMs": 53, + "url": "http://192.168.1.101:9000/content/video/like/2" + }, + { + "name": "记录视频播放", + "status": "PASSED", + "http": 200, + "apiCode": 200, + "elapsedMs": 83, + "url": "http://192.168.1.101:9000/content/video/play" + }, + { + "name": "添加评论", + "status": "PASSED", + "http": 200, + "apiCode": 200, + "elapsedMs": 2521, + "url": "http://192.168.1.101:9000/comment" + }, + { + "name": "获取评论列表", + "status": "PASSED", + "http": 200, + "apiCode": 200, + "elapsedMs": 1181, + "url": "http://192.168.1.101:9000/comment/public/list?videoId=2&pageNum=1&pageSize=10" + }, + { + "name": "获取评论详情", + "status": "PASSED", + "http": 200, + "apiCode": 200, + "elapsedMs": 146, + "url": "http://192.168.1.101:9000/comment/public/detail/1" + }, + { + "name": "获取评论统计", + "status": "PASSED", + "http": 200, + "apiCode": 200, + "elapsedMs": 61, + "url": "http://192.168.1.101:9000/comment/public/stat/2" + }, + { + "name": "点赞评论", + "status": "PASSED", + "http": 200, + "apiCode": 200, + "elapsedMs": 71, + "url": "http://192.168.1.101:9000/comment/like/1" + }, + { + "name": "添加评论回复", + "status": "PASSED", + "http": 200, + "apiCode": 200, + "elapsedMs": 412, + "url": "http://192.168.1.101:9000/comment/reply" + }, + { + "name": "获取回复列表", + "status": "PASSED", + "http": 200, + "apiCode": 200, + "elapsedMs": 134, + "url": "http://192.168.1.101:9000/comment/reply/public/list/1?page=1&size=10" + }, + { + "name": "点赞回复", + "status": "PASSED", + "http": 200, + "apiCode": 200, + "elapsedMs": 78, + "url": "http://192.168.1.101:9000/comment/reply/like/1" + } + ], + "passed": 29, + "failed": 0 +} \ No newline at end of file diff --git a/frontend/video-frontend-admin/ADMIN_SELFTEST_20260421.json b/frontend/video-frontend-admin/ADMIN_SELFTEST_20260421.json new file mode 100644 index 0000000..5b43c9f --- /dev/null +++ b/frontend/video-frontend-admin/ADMIN_SELFTEST_20260421.json @@ -0,0 +1,40 @@ +{ + "generatedAt": "2026-04-21T02:00:49.566Z", + "appUrl": "http://127.0.0.1:3100", + "cases": [ + { + "name": "后台登录页渲染", + "passed": true, + "url": "http://127.0.0.1:3100/login" + }, + { + "name": "后台登录链路", + "passed": true, + "finalUrl": "http://127.0.0.1:3100/dashboard" + }, + { + "name": "后台页面 /dashboard", + "passed": true, + "url": "http://127.0.0.1:3100/dashboard", + "keyword": "HAOVP 平台治理总览" + }, + { + "name": "后台页面 /user/list", + "passed": true, + "url": "http://127.0.0.1:3100/user/list", + "keyword": "用户治理与账号状态管理" + }, + { + "name": "后台页面 /video/review", + "passed": true, + "url": "http://127.0.0.1:3100/video/review", + "keyword": "视频审核与发布管控" + }, + { + "name": "后台页面 /content/comment", + "passed": true, + "url": "http://127.0.0.1:3100/content/comment", + "keyword": "评论治理与互动内容清理" + } + ] +} \ No newline at end of file diff --git a/frontend/video-frontend-admin/admin-selftest-dashboard.png b/frontend/video-frontend-admin/admin-selftest-dashboard.png new file mode 100644 index 0000000..196e205 Binary files /dev/null and b/frontend/video-frontend-admin/admin-selftest-dashboard.png differ diff --git a/frontend/video-frontend-web/AUTH_UI_ACCEPTANCE_20260420.json b/frontend/video-frontend-web/AUTH_UI_ACCEPTANCE_20260420.json new file mode 100644 index 0000000..a3897b6 --- /dev/null +++ b/frontend/video-frontend-web/AUTH_UI_ACCEPTANCE_20260420.json @@ -0,0 +1,63 @@ +{ + "generatedAt": "2026-04-20T03:21:40.798Z", + "appUrl": "http://127.0.0.1:3001", + "cases": [ + { + "name": "页面注册链路", + "passed": true, + "username": "webui55300982", + "attempts": 1, + "finalUrl": "http://127.0.0.1:3001/login" + }, + { + "name": "页面登录链路", + "passed": true, + "username": "webui55300982", + "attempts": 2, + "finalUrl": "http://127.0.0.1:3001/", + "userId": 14 + }, + { + "name": "移动端渲染 /", + "passed": true, + "url": "http://127.0.0.1:3001/", + "keyword": "站内头条" + }, + { + "name": "移动端渲染 /category", + "passed": true, + "url": "http://127.0.0.1:3001/category", + "keyword": "全部分区" + }, + { + "name": "移动端渲染 /search?keyword=投稿", + "passed": true, + "url": "http://127.0.0.1:3001/search?keyword=投稿", + "keyword": "搜索视频、用户与话题" + }, + { + "name": "移动端渲染 /user/14", + "passed": true, + "url": "http://127.0.0.1:3001/user/14", + "keyword": "webui55300982" + }, + { + "name": "移动端渲染 /video/7", + "passed": true, + "url": "http://127.0.0.1:3001/video/7", + "keyword": "公开内容" + }, + { + "name": "移动端渲染 /login", + "passed": true, + "url": "http://127.0.0.1:3001/login", + "keyword": "安全验证" + }, + { + "name": "移动端渲染 /register", + "passed": true, + "url": "http://127.0.0.1:3001/register", + "keyword": "注册验证" + } + ] +} \ No newline at end of file diff --git a/frontend/video-frontend-web/DPLAYER_DANMAKU_CLOSURE_20260420.json b/frontend/video-frontend-web/DPLAYER_DANMAKU_CLOSURE_20260420.json new file mode 100644 index 0000000..1f452cf --- /dev/null +++ b/frontend/video-frontend-web/DPLAYER_DANMAKU_CLOSURE_20260420.json @@ -0,0 +1,21 @@ +{ + "generatedAt": "2026-04-20T12:07:24.429Z", + "ok": true, + "loginOk": true, + "beforeCount": 0, + "afterCount": 1, + "sentText": "closure-1776686844486", + "sendHttp": 200, + "sendCode": 200, + "found": true, + "foundItem": { + "id": 1, + "userId": 15, + "content": "closure-1776686844486", + "color": "16777215", + "fontSize": 25, + "position": 0, + "time": 0, + "createTime": "2026-04-20T12:07:26" + } +} \ No newline at end of file diff --git a/frontend/video-frontend-web/SELFTEST_20260420.json b/frontend/video-frontend-web/SELFTEST_20260420.json new file mode 100644 index 0000000..7cea218 --- /dev/null +++ b/frontend/video-frontend-web/SELFTEST_20260420.json @@ -0,0 +1,56 @@ +{ + "generatedAt": "2026-04-20T10:59:40.147Z", + "appUrl": "http://127.0.0.1:3001", + "cases": [ + { + "name": "页面渲染 /", + "passed": true, + "url": "http://127.0.0.1:3001/", + "keyword": "热播速览" + }, + { + "name": "页面渲染 /category", + "passed": true, + "url": "http://127.0.0.1:3001/category", + "keyword": "全部分区" + }, + { + "name": "页面渲染 /search?keyword=投稿", + "passed": true, + "url": "http://127.0.0.1:3001/search?keyword=投稿", + "keyword": "搜索视频、用户与话题" + }, + { + "name": "页面渲染 /video/7", + "passed": true, + "url": "http://127.0.0.1:3001/video/7", + "keyword": "公开内容" + }, + { + "name": "页面渲染 /login", + "passed": true, + "url": "http://127.0.0.1:3001/login", + "keyword": "安全验证" + }, + { + "name": "页面渲染 /register", + "passed": true, + "url": "http://127.0.0.1:3001/register", + "keyword": "注册验证" + }, + { + "name": "页面注册链路", + "passed": true, + "username": "selfui82788524", + "attempts": 1, + "finalUrl": "http://127.0.0.1:3001/login" + }, + { + "name": "页面登录链路", + "passed": true, + "username": "selfui82788524", + "attempts": 1, + "finalUrl": "http://127.0.0.1:3001/" + } + ] +} \ No newline at end of file diff --git a/frontend/video-frontend-web/UI_PAGE_ACCEPTANCE_20260420.json b/frontend/video-frontend-web/UI_PAGE_ACCEPTANCE_20260420.json new file mode 100644 index 0000000..7d35937 --- /dev/null +++ b/frontend/video-frontend-web/UI_PAGE_ACCEPTANCE_20260420.json @@ -0,0 +1,47 @@ +{ + "generatedAt": "2026-04-20T02:11:15.435Z", + "appUrl": "http://127.0.0.1:3001", + "apiBaseUrl": "http://192.168.1.101:9000", + "username": "ui5ab3a745", + "cases": [ + { + "name": "视频详情页作者信息", + "passed": true, + "url": "http://127.0.0.1:3001/video/7", + "expected": { + "name": "final6dbd4a97", + "fans": "0 粉丝", + "userId": 11 + }, + "actual": { + "name": "final6dbd4a97", + "fans": "0 粉丝" + } + }, + { + "name": "隐私设置页读取与保存", + "passed": true, + "url": "http://127.0.0.1:3001/settings/privacy", + "initialPrivacyLevel": 1, + "savedPrivacyLevel": 2, + "targetPrivacyLevel": 2, + "initialLabelFound": true, + "reloadedLabelFound": true + }, + { + "name": "通知设置页读取与保存", + "passed": true, + "url": "http://127.0.0.1:3001/settings/notification", + "before": { + "commentNotify": 1, + "systemNotify": 1 + }, + "after": { + "commentNotify": 0, + "systemNotify": 0, + "summary": "点赞 / 关注" + }, + "summaryVisibleAfterReload": true + } + ] +} \ No newline at end of file diff --git a/frontend/video-frontend-web/acceptance-notification-settings.png b/frontend/video-frontend-web/acceptance-notification-settings.png new file mode 100644 index 0000000..833b659 Binary files /dev/null and b/frontend/video-frontend-web/acceptance-notification-settings.png differ diff --git a/frontend/video-frontend-web/acceptance-privacy-settings.png b/frontend/video-frontend-web/acceptance-privacy-settings.png new file mode 100644 index 0000000..69c5cec Binary files /dev/null and b/frontend/video-frontend-web/acceptance-privacy-settings.png differ diff --git a/frontend/video-frontend-web/acceptance-video-author.png b/frontend/video-frontend-web/acceptance-video-author.png new file mode 100644 index 0000000..c2a5773 Binary files /dev/null and b/frontend/video-frontend-web/acceptance-video-author.png differ diff --git a/frontend/video-frontend-web/auth-acceptance-home.png b/frontend/video-frontend-web/auth-acceptance-home.png new file mode 100644 index 0000000..f5c41d1 Binary files /dev/null and b/frontend/video-frontend-web/auth-acceptance-home.png differ diff --git a/frontend/video-frontend-web/selftest-home-after-login.png b/frontend/video-frontend-web/selftest-home-after-login.png new file mode 100644 index 0000000..c917c3b Binary files /dev/null and b/frontend/video-frontend-web/selftest-home-after-login.png differ