0

In meiner Rails App, ich benutze Rails_admin und ich muss Integrationstest es. Ich verwende Capybara und Minitest für Integrationstests. Nachdem ich im Dashboard auf den Link geklickt habe, muss ich den Pfad der aktuellen Seite mit dem erwarteten Pfad überprüfen.Rails Admin: Integrationstests, wie Sie die benannten Pfade für Modelle

Ich möchte benannte Routen verwenden, die rails_admin bietet. Ich habe versucht:

assert_equal page.current_url, app.rails_admin.dashboard_url 

Diese korrekte URL in der Konsole gibt aber in Integrationstest nicht funktioniert. Was vermisse ich hier.

Vielen Dank im Voraus,

Antwort

0

habe es funktioniert, Wiki-Seite von rails_admin geholfen. https://github.com/sferik/rails_admin/wiki/Rspec-with-capybara-examples

Ich habe Admin Panel auf einer anderen Subdomain. rails_admin_url hat den richtigen Pfad rails_admin.dashboard URL hat standardmäßig keine Subdomain, daher habe ich als Option bestanden. Es klappt.

assert_equal page.current_url, rails_admin.dashboard_url(subdomain: 'admin') 
# Also following works 
assert_equal page.current_url, rails_admin.index_url(model_name: 'post',subdomain: 'admin') 

Direkt mit rails_admin gearbeitet. In der Konsole habe ich app.rails_admin benutzt und es hat funktioniert. In Integrationstests funktioniert rails_admin.dashboard_url.

+0

ok - Sie sollten immer noch die Capybara bereitgestellten Matcher verwenden - 'page.assert_current_path rails_admin.dashboard_url (Subdomain: 'admin'), url: true' - es wird Ihnen eine Menge Kopfschmerzen beim Arbeiten mit JS unterstützen Fahrer –