В моем index.html я создаю экземпляр своего виджета. Я хочу иметь возможность заглушить options
перед запуском тестов, чтобы попробовать разные инициализации.
<html>
<body>
...
<script>
document.addEventListener('DOMContentLoaded', function() {
var options = {
input_element_id: 'inputid',
list: ['a', 'b', 'c', 'd'],
app_id: 'xxx'
api_key: 'xxx'
}
var widget = new MyWidget(options)
widget.start()
})
</script>
</body>
</html>
Как я могу сделать это с Cypress?
Лучшим подходом, который я нашел, было предоставление переменных кипарису с использованием объекта окна. Затем в тесте я могу манипулировать ими.
<script>
document.addEventListener('DOMContentLoaded', function() {
var options = {...}
var widget = new MyWidget(options)
if (window.Cypress) {
window.options = options
window.widget = widget
}
widget.start()
})
</script>
Затем в моем тесте я могу запустить это на beforeEach()
или там, где мне это нужно.
cy.window()
.then(win => {
win.options['search_on_slash'] = false
})