У меня есть вызовы AJAX, инициированные Rails UJS, которые я хотел бы протестировать. в частности, я использовал события ajax для Rails UJS для обеспечения случаев ошибок.Stub Rails Статус ответа UJS/Ajax для проверки возвращаемого сообщения в тесте функции Rspec/Capybara
Я хотел бы, чтобы проверить их, но я не знаю, как сказать RSpec/водосвинку к «заглушки» и считать код ошибки
$("button").
on('ajax:error',function(event,xhr, status, error){
if(status == "timeout") {
var msg;
msg = Messenger().post({
message: "This is taking too long"
});
} else {
var msg;
msg = Messenger().post({
message: "it seems there is a bug. Please try again."
});
};
});
Я хотел бы сделать что-то вроде следующего:
describe "test returning error message", js: true do
it "should be successful" do
visit deal_page_path(deal)
first('a.button').click
stub(:xhr.status) = "timeout"
expect(page).to have_content('This is taking too long')
end
end
Как это сделать?
Примечание: запросы ajax являются внутренними, они не идут на сторонний API или службы (например, facebook for ex).
спасибо, я наткнулся на бифлон. но он больше фокусировался на http, чем на обрезке рельсов ujs ajax modal. могу я сделать это с пыхтящим билли? – Mathieu
@Mathieu. Вы хотите подделать ответ статуса на запрос http, это именно то, что puffing billy позволяет делать –
, он работал благодаря. – Mathieu