来自 PR #6142(#6050 实施)的反向验证实测,值得写进 os-dev / pm-dispatch 的验证纪律条款。unassigned,交 devx 车道分诊。
事实
#6142 给 undefined 比较数装拒收闸时做反向验证(删掉闸、看哪些用例转红),实测结果分两种机制:
driver-sql 侧 22 红中,多数红在「抛出 knex 的裸 Undefined binding(s)」——那是一个 code / status 均为 undefined 的 Error;
driver-turso remote 侧 20 红全部红在「本该拒收却编译出了 SQL」(该 transport 从不抛)。
推论(PR 原文):一个只断言「它抛了」的拒收用例,会在本 issue 所针对的那个驱动上保持绿色——因为未修的驱动本来就抛,只是抛的是没有信封的裸错。这类用例看似钉住了拒收,实则对「缺 ADR-0112 信封」这一族缺陷完全失明。
建议条款(不代裁决,供 devx 定稿)
拒收/错误类用例的最低断言集:错误的 code 与 status(ADR-0112 信封),而不是 expect(...).toThrow() 或 rejects.toThrow() 单独使用;若措辞是契约的一部分(#5240「一个条件一种措辞」),再加首句断言。
关联:#6142 / #6050(出处)、#1116 / #4436(信封清点的历史单)、#5240(措辞一致)、#5347(拒收先例)。
来自 PR #6142(#6050 实施)的反向验证实测,值得写进 os-dev / pm-dispatch 的验证纪律条款。unassigned,交 devx 车道分诊。
事实
#6142 给
undefined比较数装拒收闸时做反向验证(删掉闸、看哪些用例转红),实测结果分两种机制:driver-sql侧 22 红中,多数红在「抛出 knex 的裸Undefined binding(s)」——那是一个code/status均为undefined的 Error;driver-tursoremote 侧 20 红全部红在「本该拒收却编译出了 SQL」(该 transport 从不抛)。推论(PR 原文):一个只断言「它抛了」的拒收用例,会在本 issue 所针对的那个驱动上保持绿色——因为未修的驱动本来就抛,只是抛的是没有信封的裸错。这类用例看似钉住了拒收,实则对「缺 ADR-0112 信封」这一族缺陷完全失明。
建议条款(不代裁决,供 devx 定稿)
拒收/错误类用例的最低断言集:错误的
code与status(ADR-0112 信封),而不是expect(...).toThrow()或rejects.toThrow()单独使用;若措辞是契约的一部分(#5240「一个条件一种措辞」),再加首句断言。关联:#6142 / #6050(出处)、#1116 / #4436(信封清点的历史单)、#5240(措辞一致)、#5347(拒收先例)。