# 聊天数量限制测试

## 功能点

验证游客在聊天页连续发送消息后，是否会在限定次数内触发聊天数量限制；触发后是否能够继续完成登录、订阅、支付和返回聊天页的完整链路。

## 测试目标

1. 游客进入聊天页后，连续聊天最多 `51` 条。
2. 若在 `51` 条以内触发聊天限制，则继续验证后续跳转和支付链路。
3. 若发送到第 `51` 条后仍未出现目标受限界面，则判定本功能点测试失败。

## 测试网址

- 统一测试网址请查看：[test-site.md](./test-site.md)

## 目标受限界面

出现以下现象时，视为命中目标界面：

1. 聊天输入框不可见或不可继续输入。
2. 页面出现跳转按钮，用于继续前往登录或订阅流程。

## 测试数据

### 聊天数据

- 消息发送上限：`51`
- 建议消息模板：
  - `limit test 01`
  - `limit test 02`
  - `limit test 03`
  - ...
  - `limit test 51`

### 登录流程引用

- 登录相关操作请参考：[email-login-from-other-options.md](./email-login-from-other-options.md) 中的“阶段三：进入邮箱登录方式”

## 操作流程

### 阶段一：进入聊天页并验证数量限制

1. 打开统一测试网址（见 [test-site.md](./test-site.md)）
2. 在首页点击 `Skip`
3. 进入聊天界面
4. 以顺序消息数据持续发送聊天内容，从 `limit test 01` 开始，最多发送到 `limit test 51`
5. 在发送过程中持续观察页面状态

### 阶段二：数量限制判定

1. 若在第 `1` 至第 `51` 条消息之间出现目标受限界面：
   - 继续执行后续登录与订阅流程
2. 若发送完第 `51` 条消息后仍未出现目标受限界面：
   - 直接判定该功能点测试失败
   - 停止后续登录、订阅、支付步骤

## 触发限制后的后续流程

### 阶段三：登录流程

1. 点击受限界面中的跳转按钮
2. 进入登录界面
3. 登录相关操作不在本文件内重复展开
4. 直接参考 [email-login-from-other-options.md](./email-login-from-other-options.md) 中的“阶段三：进入邮箱登录方式”
5. 登录成功后继续执行后续订阅流程

### 阶段四：订阅流程

1. 登录成功后，确认跳转到订阅界面
2. 点击订阅按钮
3. 点击 `Stripe` 按钮
4. 在 Stripe 界面中选择银行卡成功选项
5. 点击 Stripe 界面右上角关闭按钮

### 阶段五：支付与回跳验证

1. 点击 `Pay now` 按钮
2. 等待支付成功
3. 点击 `OK` 按钮
4. 等待页面跳转回聊天界面

## 预期结果

### 数量限制预期

1. 游客在连续聊天过程中，会在第 `51` 条消息以内命中聊天数量限制。
2. 命中限制后，聊天输入框不可继续使用。
3. 页面出现用于继续流程的跳转按钮。

### 登录与支付链路预期

1. 点击跳转按钮后，可进入登录界面。
2. 按照邮箱登录测试流程完成登录后，可进入订阅界面。
3. 订阅和 Stripe 流程可正常操作。
4. 支付成功后，点击 `OK` 可返回聊天界面。

## 失败判定

满足以下任一条件即判定本功能点失败：

1. 发送到第 `51` 条消息后，仍未出现目标受限界面。
2. 触发限制后，跳转按钮不存在或无法点击。
3. 无法进入登录界面。
4. 按照邮箱登录测试流程执行后登录失败。
5. 无法进入订阅页。
6. Stripe 流程无法继续。
7. 支付成功后无法返回聊天页。

## 执行备注

1. 若执行过程中出现验证码，需要人工确认后再继续。
2. 若支付步骤会产生真实外部副作用，应在执行支付提交前再次确认。
3. 建议在正式执行时逐条记录：
   - 实际发送到第几条时触发限制
   - 跳转按钮文案
   - 登录流程参考文件及登录跳转结果
   - 支付结果
   - 最终是否成功返回聊天页
