views:

189

answers:

1

Hello,

I am currently trying to write functional tests for a charging form which gets loaded on to the page via AJAX(jQuery). It loads the form from the charge_form action which returns the consult_form.js.erb view.

This all works, but I am having trouble with my testing.

In the functional I can go to the action but I cannot use assert_select to find a an element and verify that the form is in fact there.

Error: 1) Failure: test_should_create_new_consult(ConsultsControllerTest) [/test/functional/consults_controller_test.rb:8]: Expected at least 1 element matching "h4", found 0. <false> is not true.

This is the view. consult_form.js.erb:

<div id="charging_form">
 <h4>Charging form</h4>
 <div class="left" id="charge_selection">
  <%= select_tag("select_category", options_from_collection_for_select(@categories, :id, :name)) %><br/>
...

consults_controller_test.rb:

require 'test_helper'

class ConsultsControllerTest < ActionController::TestCase
 def test_should_create_new_consult
  get_with_user :charge_form, :animal_id => animals(:one), :id => consults(:one), :format => 'js'
  assert_response :success

  assert_select 'h4', "Charging form" #can't find h4
 end
end

Is there a problem with using assert_select with types other than html?

Thank you for any help!

A: 

So, the problem was that I should put javascript in .js and HTML in .html :P Kinda obvious.

I was putting html into a javascript file. I fixed it by simply renaming charge_form.js.erb to charge_form.html.erb.

Macint