【问题标题】:Jest focus() is not a function开玩笑 focus() 不是一个函数
【发布时间】:2021-10-28 23:56:22
【问题描述】:

这是我的文件,其中有阅读更多按钮,此按钮将焦点设置在元素上

组件

 ...
 handleFocusOnText = (): void => {
  setTimeout(() => this.hiddenTextRef?.focus(), 500)
 }
...
rednder()
...
<span ref={(el) => (this.hiddenTextRef = el)} tabIndex={-1} innerHTML={hiddenContent} />

<button
 data-qa="readmore-expander-button"
 onClick={this.handleClick}
 >
 {this.isOpen ? this.labelLess : this.labelMore}
 </button>

handleClick 方法也在调用 handleFocusOnText。

问题是我在我的测试文件中调用了单击此按钮,并且其从 handleFocusOnText 聚焦的引发 TS 错误不是一个函数。你能帮我解决这个问题吗?

Test.spec.ts

 ....
// Click "read more" button
page.doc.querySelector('button').click()

await page.waitForChanges()
const spanEl = document.querySelector('[data-qa="test-span"]')

expect(spanEl).not.toBeNull()

【问题讨论】:

    标签: javascript unit-testing jestjs stenciljs


    【解决方案1】:

    我想知道这不是正确的上下文 - 改变如何

    onClick={this.handleClick}
    

    onClick={() => this.handleClick()}
    

    这行得通吗?

    【讨论】:

    • 您好,感谢您的回答。不幸的是,这无济于事。点击功能很好用。问题出在测试文件中,该文件从单击调用一些处理并且焦点不存在 - 很可能组件未初始化。
    猜你喜欢
    • 1970-01-01
    • 2021-02-26
    • 2020-02-24
    • 1970-01-01
    • 2021-06-25
    • 1970-01-01
    • 1970-01-01
    • 2020-08-24
    • 2021-03-23
    相关资源
    最近更新 更多