views:

36

answers:

0

I am testing a Ajax action using Rspec and Selenium. My story is as follows:

it "should create a new User with any input" do

@browser.open "/people"
@browser.wait_for_page_to_load "2000"
@browser.type "user_name", "Alok Swain"
@browser.click "user_submit"
@browser.text?("Alok Swain").should be_true

end

The action i am testing is:

def add_user

@users = User.all
User.create(params[:user])

render :update do |page|
  page.alert "Created User"
  page.replace_html "users", :partial => '/people/users_list', :locals => {:users => @users}
end

end

The test fails and the error I get is: 'User should create a new User with any input' FAILED expected false to be true.

This test should pass right ? I also kept an alert and tried @browser.is_alert_present.should be_true but i got the same error.

I also tried @browser.get_alert() when there should is no alert being rendered as a response. The test fails as expected.

I tried @browser.is_text_present("test") and this test succeeded. In the test database a record was created for Alok Swain but when I tried the above assertion it passed when i expected it to fail.

Is there any thing else to be done here. What am I missing ?