为什么新的JavaScript脚本会使Capybara测试失败?

时间:2019-02-14 15:31:04

标签: javascript ruby-on-rails rspec capybara

我编写了一个新的JS脚本,用于针对某些点击事件提交HTTP请求。目前正在针对我的Rails应用程序中的所有页面运行。 (虽然不理想,但我认为暂时不会造成严重问题。但是,它的存在使大量的水豚测试失败了。我不知道为什么。

function onCheckboxClick() {
  const url = $(this).attr("data-action")
  const data = {
    method: "PATCH",
    body: JSON.stringify({ confidential: this.checked }),
    headers: {
      'X-CSRF-Token': Rails.csrfToken(),
      'Content-Type': 'application/json'
    }
  }
  fetch(url, data)
    .then(response => { return response.json() })
    .catch(error => console.log(error))
}

$(document).on('turbolinks:load', () => {
  const checkboxes = document.querySelectorAll("#invoice_confidential")
  checkboxes.forEach((box) => {
    box.addEventListener("click", onCheckboxClick)
  })
})

1 个答案:

答案 0 :(得分:0)

您正在使用ES6语法我不知道您要使用哪种浏览器进行测试,但这可能是问题所在,也许需要将其编译为ES5。

但是您没有提供足够的信息。您正在使用哪个Rails版本?您在使用Webpacker吗?您有Babel设定吗?也许您可以共享一些配置资料。