fix: 防止拖选内容误关闭弹窗 (#56)
This commit is contained in:
@@ -112,3 +112,24 @@ func TestMainPagesReturnOK(t *testing.T) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 公共弹窗不能只看 click.target 关闭:从密码框拖选到遮罩松开时,
|
||||
// 浏览器会把 click 目标合成为遮罩。这个静态守卫确保 #56 的手势起点判断不被删掉;
|
||||
// 真实指针行为另用 Chrome 回归验证。
|
||||
func TestModalBackdropRequiresPointerStart(t *testing.T) {
|
||||
js, err := staticFS.ReadFile("static/js/app.js")
|
||||
if err != nil {
|
||||
t.Fatalf("读取公共 JavaScript 失败: %v", err)
|
||||
}
|
||||
source := string(js)
|
||||
for _, required := range []string{
|
||||
`addEventListener("pointerdown"`,
|
||||
`pointerStartedOnBackdrop = e.target === modal`,
|
||||
`e.target === modal && pointerStartedOnBackdrop`,
|
||||
`addEventListener("pointercancel"`,
|
||||
} {
|
||||
if !strings.Contains(source, required) {
|
||||
t.Errorf("公共弹窗缺少拖选防误关闭守卫 %q", required)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user