Как заглушить переменную, определенную в html, перед запуском теста - PullRequest
0 голосов
/ 28 мая 2019

В моем 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?

1 Ответ

0 голосов
/ 30 мая 2019

Лучший подход, который я нашел, это выставить переменные кипарису, используя объект окна. Затем в тесте я могу манипулировать ими.

<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
    })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...