Я использую RSpec / Capybara и chrome / firefox для тестирования.
Я использую iframe PayPal / Javascript поток покупок.
Когда пользователь завершает транзакцию покупки в всплывающее окно браузера, это окно закрывается, и вызывается функция обратного вызова внутри кнопки / зарегистрированной функции (извините за плохое описание - я не эксперт Javascript).
Вот что PayPal функция выглядит так:
function paypal_button(plan_id, container_id) {
paypal.Buttons({
createSubscription: function(data, actions) {
return actions.subscription.create({
'plan_id': plan_id
});
},
onCancel: function (data) {
console.log("canceled");
},
onError: function (err) {
console.log("error")
},
onApprove: function(data, actions) {
stuff
}
}).render(container_id);
}
В приведенном выше коде stuff
вносит ряд изменений в DOM, включая отправку формы. Я не думаю, что смогу перехватить Javascript перед отправкой формы, поэтому мне просто нужно понять, что я могу сделать в тесте RSpe c, чтобы сработала эта функция onApprove.
onApprove задокументировано здесь: https://developer.paypal.com/docs/checkout/integrate/#5 -capture-the-transaction
Я все делаю неправильно? Должен ли я делать что-то совершенно другое для тестирования этого уровня на странице Javascript?