Как запустить keyup в тестах на капибару.Я перепробовал все стандартные методы - PullRequest
0 голосов
/ 23 февраля 2019

Я написал следующий тест rspec / capybara:

scenario "admin can create patient invoices with discounted items", driver: :poltergeist do
    product = create(:product, practice_group: practice_group)
    patient = create(:patient)
    location = create(:location, practice_group: practice_group)

    practice_group

    login_as_admin(admin)

    visit "/invoices/new?patient_id=#{patient.id}"

    select location.name, :from => "invoice_location_id"
    add_product_to_invoice(product)
    add_discount_to_product(0.05)
    submit_invoice_form

    expect(Invoice.count).to eq(1)
    expect(Invoice.last.total_amount).to eq("£9.50")
end

def add_discount_to_product(discount)
    find(".discount-input").send_keys((discount * 100).to_s)
    page.execute_script("$('.discount-input').trigger('keyup')")
end

Я пробовал разные стратегии для запуска этого события нажатия клавиши, но слушатель jQuery .on просто не запускается во время теста.

Я использую драйвер poltergeist.

Какой-нибудь совет, как я могу запустить это событие?Похоже, что .trigger Капибары не работает с Полтергейстом.

1 Ответ

0 голосов
/ 23 февраля 2019

send_keys будет отправлять события keyup. Скорее всего, на вашей странице действительно есть JS, который не запускается Poltergeist, поскольку он не поддерживает современный JS / CSS.Попробуйте запустить тест с селеном или одним из новых драйверов для прямого подключения к Chrome, таких как apparition

...