Cypress assert contextmenu preventDefault true
Cypress assert contextmenu preventDefault true
我正在尝试测试当用户右键单击时上下文菜单不显示。
我有 cy.getByTestId('element-to-click').rightclick();
当我单击 rightclick
并查看命令输出时,我看到有一个数组 Mouse Events
,其中之一是 Event Type: 'contextmenu'
并且有 Prevented Default: true
。
我不知道如何在 Cypress 中断言 contextmenu
已将 Prevented Default
设置为 true
。
我不知道为什么围绕事件进行测试如此困难,但是 reverse-engineering 赛普拉斯控制台 table 我想到了这个。
const getClickEvents = (subject) => {
const { mouse } = cy.devices
const coords = Cypress.dom.getElementCoordinatesByPosition(subject)
const clickEvents = mouse.click(coords.fromElViewport, subject[0])
return clickEvents
}
cy.get('button#1')
.then(getClickEvents)
.should(clickEvents => {
expect(clickEvents.click.preventedDefault).to.eq(true) // passes
})
cy.get('button#2')
.then(getClickEvents)
.should(clickEvents => {
expect(clickEvents.click.preventedDefault).to.eq(false) // passes
})
其中 clickEvents
是整个 table 的数据,如您的问题所示,因此您可以轻松挑选出要断言的属性。
我正在尝试测试当用户右键单击时上下文菜单不显示。
我有 cy.getByTestId('element-to-click').rightclick();
当我单击 rightclick
并查看命令输出时,我看到有一个数组 Mouse Events
,其中之一是 Event Type: 'contextmenu'
并且有 Prevented Default: true
。
我不知道如何在 Cypress 中断言 contextmenu
已将 Prevented Default
设置为 true
。
我不知道为什么围绕事件进行测试如此困难,但是 reverse-engineering 赛普拉斯控制台 table 我想到了这个。
const getClickEvents = (subject) => {
const { mouse } = cy.devices
const coords = Cypress.dom.getElementCoordinatesByPosition(subject)
const clickEvents = mouse.click(coords.fromElViewport, subject[0])
return clickEvents
}
cy.get('button#1')
.then(getClickEvents)
.should(clickEvents => {
expect(clickEvents.click.preventedDefault).to.eq(true) // passes
})
cy.get('button#2')
.then(getClickEvents)
.should(clickEvents => {
expect(clickEvents.click.preventedDefault).to.eq(false) // passes
})
其中 clickEvents
是整个 table 的数据,如您的问题所示,因此您可以轻松挑选出要断言的属性。