Files
larablog/docs/specs/plugin-extension-commerce/TESTPLAN.md
T
ak 263b98b218 Initial baseline: LaraBlog core with plugin commerce surface.
Captures the current working tree after theme slots, ArticleAccess, and the payment / paid-content plugins so subsequent work has a reviewable git history.
2026-08-12 01:15:38 +08:00

58 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 插件扩展面 + 支付 / 内容付费 — 待测清单
## 状态
- 对应 SPEC`docs/specs/plugin-extension-commerce/SPEC.md`
- 最近更新:2026-08-12 01:12
## 待测项
### 未启用商务插件
- [x] 场景:免费文 Web;步骤:打开 show;期望:全文可见,行为同现网
- [x] 场景:密码文 Web;步骤:未解锁打开 → 输错 → 输对;期望:密码页 / 错误 / 全文
- [x] 场景:密码文 API;步骤:GET `/api/v1/articles/{id}`;期望:无 `content`/`content_html` 全文,有 `access.status=need_password`
- [x] 场景:密码文 RSS;步骤:打开 `/rss.xml`;期望:该条目无全文 HTML
### 依赖与插件管理
- [x] 场景:仅启用 paid-content;步骤:后台启用;期望:拒绝并提示需要 payment
- [x] 场景:先 payment 再 paid-content;步骤:依次启用;期望:成功
- [x] 场景:查看说明;步骤:插件卡片打开 docs;期望:可见 README 内容
- [x] 场景:禁用后 UI;步骤:禁用两插件;期望:订单菜单/付费表单 Section 消失
- [x] 场景:禁用被依赖的 payment;期望:拒绝并提示 dependents
### payment Stub
- [x] 场景:登录建单支付;步骤:对测试商品走 checkout → 模拟成功;期望:order=paid、entitlement 有效、触发逻辑可观测
- [ ] 场景:后台标记已支付;步骤:pending 订单点标记;期望:同上入账(人工)
- [x] 场景:重复购买;步骤:已有权益再 checkout;期望:拒绝并提示
- [x] 场景:未登录 checkout;步骤:访问建单;期望:重定向 `/login.shtml`(非 500
### paid-content
- [x] 场景:后台定价;步骤:编辑文章启用付费设价格保存;期望:`article_products` 有记录
- [x] 场景:互斥;步骤:同时设密码与付费启用;期望:校验失败
- [x] 场景:未购 Web(含未登录);步骤:打开付费文;期望:试读+购买,`need_purchase`,无全文
- [x] 场景:购买后 Web;步骤:登录 Stub 支付后打开;期望:全文
- [x] 场景:作者/admin;步骤:作者或 admin 打开未购付费文;期望:全文
- [x] 场景:付费文 API/RSS;步骤:匿名拉取;期望:无全文
- [x] 场景:首页列表;期望:不泄露付费/密码全文
### Review 修复验证(Bugbot 2026-08-12
- [x] 场景:`trial_value` 大于正文长度的付费短文;期望:Web/API 均看不到结尾内容
- [x] 场景:两个 `article.access` 监听器(先收紧后放行 + 一个返回非法值);期望:最终仍 `need_purchase`
- [x] 场景:manifest `docs``../../../../.env`;期望:`docsPath`/`readDocs` 返回 null
- [x] 场景:同一商品连续两次 checkout;期望:复用同一 pending 单
- [x] 场景:已由 A 单开通权益后对 B 单 `markPaid`;期望:抛错拒绝
- [x] 场景:隐藏/未发布付费文 checkout;期望:422 且不建单
- [x] 场景:复用 pending 单时价格已变;期望:订单与明细按新价刷新,仍只有 1 张单
### 回归
- [x] 场景:免费文 API/RSS;期望:仍有全文(或既有摘要策略不变)
- [x] 场景:主题槽/snippet;期望:不受影响
- [x] 场景:`php artisan test` 相关用例全绿(40 passed
## 变更记录
| 时间 | 原因 | 变更 |
|------|------|------|
| 2026-08-12 00:17 | SPEC 定稿后初版 | 创建待测清单 |
| 2026-08-12 00:50 | 实现+qodercli 闭环 | 勾选自动化覆盖项;后台标记已支付留人工 |
| 2026-08-12 01:01 | Bugbot review 修复 | 新增 6 条 Review 修复验证项,全部自动化覆盖 |
| 2026-08-12 01:12 | 复用单重新定价 | 新增第 7 条验证项(新价刷新且不叠单) |