Forum: Ruby on Rails Howto test RJS templates?

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Fb89d03a8d934fe3de9128a0a0d05af9?d=identicon&s=25 Christian Mayer (Guest)
on 2007-04-05 23:19
(Received via mailing list)
Hi,


The following code works, but I don't know how to test ist properly:


In the view there is a simple link_to_remote:

| <div id="create">
|     <%= link_to_remote "Create New", :url => new_category_url %>
| </div>


Essentially, when I click on this link the "div" box gets hidden with a

| page.hide "create"


How do I test this? I have so far the following test:

| class CreateCategoriesTest < ActionController::IntegrationTest
|   def test_create_category
|       get 'categories'
|       assert_select "#create", "Create New"
|       xml_http_request new_category_path
|       assert_response :success
|       # ???
|   end
| end

How can I test, that the "#create" element is hidden?



TIA and regards,
     chris
52cb4115a870ff1942e7e1ae96f4306f?d=identicon&s=25 Tyler MacDonald (Guest)
on 2007-04-05 23:22
(Received via mailing list)
Christian Mayer <trigger.error@gmail.com> wrote:
> How can I test, that the "#create" element is hidden?

  Using standard ruby functional tests, you can only check tht the
correct
signal was sent to the server to hide the "#create" element.

  If you want to test, in the browser, that the element is really
hidden,
then you'll need to use a browser-oriented testing framework like
Selenium.

  Cheers,
    Tyler
83ca41657a99b65d99889abe712ba5e2?d=identicon&s=25 Jason Roelofs (Guest)
on 2007-04-06 14:55
(Received via mailing list)
Well, there are steps available to help test RJS, but there is no be-all
end-all testing solution, because in the end it is javascript and you
can't
run it.

Check out:

ARTS:
http://glu.ttono.us/articles/2006/05/29/guide-test...

There's also #assert_select_rjs if you're on Rails 1.2+, but I'm not
sure
how to really use this:
http://api.rubyonrails.org/classes/ActionControlle...

As an example. your simple one-line RJS is testable in ARTS:

assert_rjs :hide, 'create'

In the end, if you want to fully test your javascript interactions,
you'll
need a browser testing solution like Selenium, or lighter-weight Systir
+
Watir (http://atomicobject.com/pages/System+Testing+in+Ruby)

Jason
This topic is locked and can not be replied to.