按所选月份上一月末各支付宝账号最后一笔余额汇总期初余额,余额按“期初余额 + 本期收入 - 本期支出”计算;页面新增期初余额卡片并补全余额展示。 > 开工时标题使用 `WIP: <任务名称>` 并先填写“任务占用与边界”。Codex 完成独立合并前自审后补齐其余内容并移除 `WIP:`。 ## 任务占用与边界 - 任务名称: - 实际开发者: - 任务来源/团队分工: - 目标结果: - 预计修改路径: - 将写入的公共契约(路由、Controller 方法、Repository、表/视图、`source_key`、`scope`、权限名、菜单键或共享组件): - 仅复用、明确不修改的公共契约: - 数据源、表/视图和字段: - 上游 `source_key` / `scope`: - 权限名、菜单键或共享组件: - 明确不修改的范围: ## 开工碰撞检查 - [ ] Codex 已执行 `scripts/codex-task-preflight.ps1` - [ ] 已检查最新 `main` 和所有远程任务分支 - [ ] 已搜索主线既有页面、接口、Repository 和数据查询 - [ ] 已把“将写入”和“仅复用、不修改”的公共契约分开;仅复用项不作为单独阻断条件 - [ ] 未发现实际写入重叠;或已在下方写明相关分支、具体重叠项和协调结论 相关分支、重叠项与协调结论: ## 实际改动 - 完成内容: - Codex 实际修改的文件: - 新增或变更的公共契约: - 与原计划的差异: ## 验证证据 - 正常流程: - 空数据/错误输入/无权限场景: - 受影响旧功能: - 自动测试及结果: - 实际页面、接口或只读业务查询结果: ## 风险检查 - [ ] 不涉及金额、权限、审批、数据库迁移、生产配置或数据修复 - [ ] 如涉及上述高风险内容,已在下方写明影响、回滚和所需授权 - [ ] 未提交 `.env`、密码、Token、私钥、真实财务数据、生产日志或构建产物 - [ ] 前端改动符合 `DESIGN.md`;无前端改动则写“不适用” 高风险影响、回滚和授权状态: ## 合并前复查 - [ ] 已重新拉取远程引用并用实际修改范围再次运行碰撞检查 - [ ] PR 不再是 `WIP:`,所有测试结果已经补齐 - [ ] Codex 已重新读取原始需求和验收标准,并逐文件审核 `origin/main...任务分支` 的完整 diff - [ ] Codex 自审确认无越界修改、重复实现、敏感内容、未处理冲突和未验证结果 - [ ] 合并顺序不会覆盖其他未合并任务 - [ ] 已授权当前任务的 Codex 执行 Squash merge、验证 `main` 并清理任务分支 - [ ] 如涉及生产迁移、数据修复、删除、覆盖配置或部署,已另行取得对应高风险授权 Reviewed-on: #881
38 lines
1.7 KiB
PHP
38 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace Tests\Unit\View;
|
|
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
class TaobaoAlipayBillsTableTest extends TestCase
|
|
{
|
|
public function testTableMatchesTheTwentyFiveAttachmentColumns(): void
|
|
{
|
|
$root = dirname(__DIR__, 3);
|
|
$source = file_get_contents(
|
|
$root . '/resources/assets/js/components/business/TaobaoAlipayBills.vue'
|
|
);
|
|
|
|
$this->assertIsString($source);
|
|
$this->assertStringContainsString('v-for="(group, index) in visibleGroups"', $source);
|
|
$this->assertStringContainsString(':colspan="visibleColumns.length"', $source);
|
|
$this->assertStringContainsString('v-if="error" class="tw-alert"', $source);
|
|
$this->assertStringContainsString('error.response.data.message', $source);
|
|
$this->assertStringContainsString('支付宝账号', $source);
|
|
$this->assertStringContainsString('@click="exportRows"', $source);
|
|
$this->assertStringContainsString('商品名称', $source);
|
|
$this->assertStringContainsString('余额', $source);
|
|
$this->assertStringContainsString('tw-stats--taobao-alipay', $source);
|
|
$this->assertStringContainsString("label: '期初余额'", $source);
|
|
$this->assertStringContainsString("label: '余额'", $source);
|
|
$this->assertStringContainsString("note: '期初余额 + 收入合计 - 支出合计'", $source);
|
|
$this->assertLessThan(
|
|
strpos($source, "label: '收入合计'"),
|
|
strpos($source, "label: '期初余额'"),
|
|
);
|
|
$this->assertStringNotContainsString('<th>财务备注</th>', $source);
|
|
$this->assertStringNotContainsString('<th>订单号</th>', $source);
|
|
$this->assertStringNotContainsString('<th class="tb-num">金额</th>', $source);
|
|
}
|
|
}
|