Cześć,
Nie wiem czemu nie przechodzi mi test ajaksowy.
Komunikat: No RJS statement that replaces or inserts HTML content.
[code]TEST
test “should create line_item via ajax” do
assert_difference(‘LineItem.count’) do
xhr :post, :create, :product_id => products(:ruby).id
end
assert_response :success
assert_select_rjs :replace_html, 'cart' do
assert_select '#current_item td', /Programming Ruby 1.9/
end
end[/code]
W products.yml jest prawidłowy wpis ‘ruby’, normalny test create bez ajaksa działa.
[code]KONTROLER
def create
@cart = current_cart
product = Product.find(params[:product_id])
@line_item = @cart.add_product(product.id)
respond_to do |format|
if @line_item.save
format.html { redirect_to(store_url, :notice => 'Line item was successfully created.') }
format.js { @current_item = @line_item }
format.xml { render :xml => @line_item, :status => :created, :location => @line_item }
else
format.html { render :action => "new" }
format.xml { render :xml => @line_item.errors, :status => :unprocessable_entity }
end
end
end[/code]
WIDOK create.js.rjs
page.replace_html('cart', render(@cart))
Funkcja create działa jak należy, dodaje produkty za pomocą ajaksa więc trochę dziwne, że test nie chce działać.
Mógłby mi ktoś pomóc?