为什么新的 javascript 脚本会使 Capybara 测试失败?
Why does new javascript script make Capybara tests fail?
我已经编写了一个新的 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)
})
})
好吧,您使用的是 ES6 语法,我不知道您使用的是什么浏览器进行测试,但这可能是问题所在,也许需要将其编译为 ES5。
但是您没有提供足够的信息。您使用的 Rails 版本是什么?你在使用 Webpacker 吗?你有 Babel 设置吗?也许你可以分享一些配置的东西。
我已经编写了一个新的 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)
})
})
好吧,您使用的是 ES6 语法,我不知道您使用的是什么浏览器进行测试,但这可能是问题所在,也许需要将其编译为 ES5。
但是您没有提供足够的信息。您使用的 Rails 版本是什么?你在使用 Webpacker 吗?你有 Babel 设置吗?也许你可以分享一些配置的东西。