wangeditor-team/wangEditor-v5

单元中关于 Map 的疑问

wangfupeng1988 opened this issue · 2 comments

描述

我正在 packages/core 为 DomEditor.findPath 写单元测试,一直报错,目前的现象看着和 Map 相关。

复现步骤

第一,找到 NODE_TO_PARENT 的定义,把 WeakMap 临时修改为 Map ,这样好验证。

第二,如下图,在这里可以正常打印 NODE_TO_PARENT.size (当单元测试中执行 createEditor 或者操作 editor 时)

image

第三,如下图,在单元测试中打印 NODE_TO_PARENT.size,结果就是 0

image

总结

同是在单元测试中,执行 createEditor 即可正常打印 NODE_TO_PARENT.size。但直接引用、打印 NODE_TO_PARENT.size 就是 0 。

所以,猜测 DomEditor.findPath 测试一直报错,也和 NODE_TO_PARENT.size 有关。而且,DomEditor 其他很多 API 也都用了 WeakMap ,都有这个问题。

可以试试用 setTimeout 异步获取 NODE_TO_PARENT.size,或者异步验证测试断言。

异步,案例是符合代码逻辑的,但我尚未测试成功。

找到解决方案了:packages/core 中的单元测试,不能在使用 packages/editor 的 createEditor 。使用 packages/core 的 createEditor 就没问题了。

因为从模块关系上,前者也不能依赖于后者