Archived
fix(w05): 评审回来的一条 Critical、一条 Important、两条 Minor
Critical:S1 数据工单的 gateLedgers 带着 parts.chip_type,而这张件没有任何手段 写它(选类型走 data-options 下拉现读,不是编辑表)—— mine:parts.chip_type 永远 是空数组,desk.ts 的 emptyGate 永远判「这一单还一行都没有」,确认钮永久按不下去, 三张真被编辑的表填得再全也一样。删掉 parts.chip_type,只留真被这张件写过的三张; 注释写明这是永久决定,不是等 Task 7b 补了新建类型的编辑表就该还原(主路是从下拉 挑已有类型,那时这张表天然零行,「零行=没干完」这条闸的前提对它压根不成立)。 新增 apps/api 侧回归探针(调用生产 emptyGate,不抄实现):证明旧配置确实会永久 卡死、新配置在同一份数据下真的放行。 Important:BIND_COMMON 的序号计数器规则只认 .tbl-wrap,而三张表的外壳是 .jc-tbl-wrap(继承自已删除的旧 P08_MASTER_CREATE 同一个坑)—— 两个 class 对不上, 「#」列在只读态与编辑态下逐行空白。补上 .jc-tbl-wrap,钉一条结构测试。 Minor:①block③ 的注释「只两栏可改」没说全 —— internal_pn/param_name 也走 cell() (主键格必挂 data-col 是既定约定,行的钥匙),补全这句话;②data-class-of="gate_reason" 在中文自由文本上永远算不出 v-token,是源码里躺着的一个永远不起作用的属性——删掉, 显隐只留 :has(:empty) 一处,brief 给的那条断言同步改成断真实机制。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LKMZDwMbyKzjw6Hembwvet
This commit is contained in:
@@ -188,11 +188,21 @@ describe('S1 配方', () => {
|
||||
expect(when).toContain('parts_parameter_missing > 0');
|
||||
});
|
||||
|
||||
it('卡:数据工单、四张表都在闸上、且有 basis(基座拒发 basis 为空的工单)', () => {
|
||||
/*
|
||||
* 2026-08-29 评审 Critical(Task 7 走查):`gateLedgers` 一度带着 `parts.chip_type`,
|
||||
* 而 `input-supplement` 这张件没有任何 `data-edit="parts.chip_type"`(选类型走
|
||||
* `data-options` 下拉现读,不写这张表)—— `mine:parts.chip_type` 永远是空数组,
|
||||
* `desk.ts` 的 `emptyGate` 会永远判「这一单还一行都没有」,提交钮永久按不下去。
|
||||
* **`parts.chip_type` 永久不列进这张卡的闸**(不是等新建类型的编辑表补上就该还原 ——
|
||||
* 见 `case-model.ts` 该处注释:主路是从下拉挑一个已有类型,那时这张表天然零行,
|
||||
* `emptyGate`「这张卡就是来建它的」这条语义对一张只是有时候才写的表根本不成立)。
|
||||
*/
|
||||
it('卡:数据工单、三张真被这张件写过的表在闸上(parts.chip_type 不在——它没有编辑手段,列了就永久卡死)、且有 basis(基座拒发 basis 为空的工单)', () => {
|
||||
const card = acts[4];
|
||||
expect(card?.kind === 'card' && card.as).toBe('execution');
|
||||
expect(card?.kind === 'card' && card.variant).toBe('data');
|
||||
expect(card?.kind === 'card' && card.gateLedgers).toEqual(['parts.chip_type', 'parts.type_param', 'parts.profile', 'parts.parameter']);
|
||||
expect(card?.kind === 'card' && card.gateLedgers).toEqual(['parts.type_param', 'parts.profile', 'parts.parameter']);
|
||||
expect((card?.kind === 'card' ? card.gateLedgers ?? [] : [])).not.toContain('parts.chip_type');
|
||||
expect((card?.kind === 'card' ? card.basis ?? [] : []).length).toBeGreaterThan(0);
|
||||
expect((card?.kind === 'card' ? card.guide ?? [] : []).length).toBeGreaterThanOrEqual(3);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user