Я использую библиотеку javascript - clipboardjs - для копирования значений полей ввода в системный буфер обмена.как проверить javascript внутри rspec capybara?
В моем application.js:
function addressClipboard() {
new Clipboard('.address-copy', {
text: function(trigger) {
var addressString = "";
addressString += $('#addresses_attributes_0_street').val() + "\n" +
$('#addresses_attributes_0_city').val() + "\n";
addressString = addressString.trim();
return addressString;
}
})
};
Я хотел проверить функциональность с RSpec & водосвинки.
address_spec.rb:
it "checks the copied values when clicking the copy-to-clipboard link", :js do
new_address = build(:address)
visit new_address_path
fill_in "person_addresses_attributes_0_street", with: new_address.street
fill_in "person_addresses_attributes_0_city", with: new_address.city
click_link(I18n.t('helpers.copy_to_clipboard'))
# Pseudocode:
expect(page.execute_script("addressClipboard()")).to eq([new.address.street,new.address.city].join)
Есть ли способ, чтобы получить доступ к переменной JavaScript addressString и сравнить его с атрибутами адреса (например, new_address.street.) В пределах RSpec?
мой метод fill_in работает. Я просто борюсь с доступом к переменной javascript. – StandardNerd
@StandardNerd, если ваша функция определена в глобальной области действия, ваш вызов метода правильный, иначе вам нужно изучить область действия функции, а затем вызвать ее. Посмотрите на это: http://stackoverflow.com/a/9354233/2568849 –