jestjs - 是什么导致此 Stencil.js Jest 测试中的“assignedElements 不是函数”?
问题描述
我在 Jest 测试用例中收到错误消息assignedElements is not a function
。在代码中,我尝试查询插槽,然后获取如下所述的值:
let slot = this.element.shadowRoot?.querySelector('slot');
const testItems = slot.assignedElements({flatten:true});
此代码在大多数浏览器上运行良好,但在 Jest 测试用例中失败。我想过嘲笑和监视这个 API,但也没有运气。
解决方案
有些环境可能还slot.assignedElements
没有,但是在上面进行 polyfill 非常容易slot.assignedNodes
:
if (!HTMLSlotElement.prototype.assignedElements) {
HTMLSlotElement.prototype.assignedElements = function (...args) {
return HTMLSlotElement.prototype.assignedNodes
.apply(this, args)
.filter((n) => n instanceof Element)
}
}
推荐阅读
- r - 在 R 单位包中使用英制 slug 单位来表示质量
- drake - Mac 上的 Drake 安装问题
- css - CSS Grid:如何将所有内容放在一行上?
- html - 将动画阴影应用于 Bootstrap 4 卡片
- amazon-s3 - S3 拒绝无服务器框架 lambda 函数访问
- kubernetes - 如何正确地将 OpenLDAP 集成到 Keycloak?
- c++ - 为什么 C++ 向量交换方法具有恒定的时间复杂度
- django-3.0 - django3文件上传默认权限是420?
- ruby-on-rails - 如何修复损坏的系统 Ruby 安装
- git - 当你想在 github 上使用 Gatsby 实现的博客并在另一台计算机上使用时,如何构建?