Browse Source

test(B-81): signature.canvas2d 契约断言装置修正——01c 仅匹配调用形式(排除注释引用) + 03b 双断言(运行时格式+源码 _uid 机制);v2 实现(c0db9643c)下验证 11/11 全绿

E2E Test Bot 4 days ago
parent
commit
7d7c0b23ad
1 changed files with 7 additions and 4 deletions
  1. 7 4
      cfc-frontend/__tests__/pages/signature/signature.canvas2d.test.js

+ 7 - 4
cfc-frontend/__tests__/pages/signature/signature.canvas2d.test.js

@@ -130,8 +130,9 @@ describe('签名实现重写 v2(竖屏直签 + canvas 2d)· signature.canvas
   })
 
   test('TC-SIG2D-01c 不再调用 wx.setPageOrientation / screen.orientation.lock', function () {
-    expect(pageScript).not.toMatch(/setPageOrientation/)
-    expect(pageScript).not.toMatch(/orientation\.lock/)
+    // 只匹配「调用形式」(带括号),排除注释中的引用文字(v2 实现注释明确写"不再调用…")
+    expect(pageScript).not.toMatch(/setPageOrientation\s*\(/)
+    expect(pageScript).not.toMatch(/orientation\.lock\s*\(/)
   })
 
   test('TC-SIG2D-02 computeCanvasHeight 保留竖屏计算(174/214 两档 + 160 下限)', function () {
@@ -152,8 +153,10 @@ describe('签名实现重写 v2(竖屏直签 + canvas 2d)· signature.canvas
     const opts = loadOptions(PAD, { uni: {}, wx: undefined, window: undefined })
     const data = typeof opts.data === 'function' ? opts.data() : opts.data
     expect(data).toHaveProperty('_canvasNode', null)
-    // canvasId 赋值应含 "(this._uid || 0)" 保证多实例唯一
-    expect(String(data.canvasId)).toMatch(/hsCanvas_.*_uid/)
+    // canvasId 唯一化:运行时输出为 hsCanvas_<数字>;静态求值拿不到真实 _uid 时按 0 兜底
+    expect(String(data.canvasId)).toMatch(/^hsCanvas_\d+$/)
+    // 源码必须保留 "(this._uid || 0)" 拼接机制,保证多实例唯一(参照 RadarChart)
+    expect(padScript).toMatch(/hsCanvas_['"]?\s*\+\s*\(?(this\._uid|this\.uid)\s*\|\|\s*0/)
   })
 
   test('TC-SIG2D-04 mounted 用 createSelectorQuery().in(this).select("#canvasId").fields({node:true,size:true,rect:true})', function () {