Matthijs Langenberg
2007-May-11 09:12 UTC
[rspec-users] spec a replace_html with a partial
I wanted to use ARTS to add RJS in a behaviour driven way to my application, but I''m having some trouble asserting a replace_html with a partial. I''ve created a pastie (http://pastie.caboo.se/60694) which contains the RJS I want to spec, the spec which I already wrote and its failure message. I''m currently using RSpec-0.9.2
Matthijs Langenberg
2007-May-11 09:30 UTC
[rspec-users] spec a replace_html with a partial
I''ve replaced the mock model with a real AR object, but the spec is
still failing:
==== Changed spec:
require File.dirname(__FILE__) + ''/../../spec_helper''
describe "/pos_orderlines/create.rjs" do
before(:each) do
@orderlines = [stub(''orderlines'', :to_param =>
"2", :item =>
stub(''item'', :description => ''an item'',
:price => 10))]
@order = stub(''order'', :id => 1, :pos_orderlines =>
@orderlines,
:total_price => 10, :payments => stub(''payments'',
:empty? => true))
@the_order = PosOrder.create!
assigns[:order] = @the_order
end
it "should replace orderlines div" do
render "/pos_orderlines/create.rjs"
assert_rjs :replace_html, :orderlines, :partial =>
''pos_orders/orderlines'', :locals => { :order =>
@the_order }
end
end
==== failes with:
Test::Unit::AssertionFailedError in ''/pos_orderlines/create.rjs should
replace orderlines div''
No replace_html call found on div: ''orderlines'' and content:
{partial: "pos_orders/orderlines", locals: {order: {items: [],
payments: [], errors: [], attributes: {id: 65, state: "open",
created_at: {}}, new_record_before_save: true, new_record: false,
pos_orderlines: []}}}
in response:
Element.update("orderlines", "<table
id=\"orderlines\">\n\t<tr>\n\t\t<th>description</th>\n\t\t<th
class=\"price\">price</th>\n\t\t<th></th>\n\t</tr>\n\t\n\t<tr>\n\t\t<td
class=\"total\">Total</td>\n\t\t<td
id=\"total-price\"
class=\"price\">$0.00</td>\n\t\t<td></td>\n\t</tr>\n\n</table>");.
<nil> is not true.
===
Any ideas?
On 5/11/07, Matthijs Langenberg <mlangenberg at gmail.com>
wrote:> I wanted to use ARTS to add RJS in a behaviour driven way to my
> application, but I''m having some trouble asserting a replace_html
with
> a partial.
> I''ve created a pastie (http://pastie.caboo.se/60694) which
contains
> the RJS I want to spec, the spec which I already wrote and its failure
> message.
>
> I''m currently using RSpec-0.9.2
>
On 5/11/07, Matthijs Langenberg <mlangenberg at gmail.com> wrote:> I''ve replaced the mock model with a real AR object, but the spec is > still failing: > ==== Changed spec: > require File.dirname(__FILE__) + ''/../../spec_helper'' > > describe "/pos_orderlines/create.rjs" do > > before(:each) do > @orderlines = [stub(''orderlines'', :to_param => "2", :item => > stub(''item'', :description => ''an item'', :price => 10))] > @order = stub(''order'', :id => 1, :pos_orderlines => @orderlines, > :total_price => 10, :payments => stub(''payments'', :empty? => true)) > > @the_order = PosOrder.create! > assigns[:order] = @the_order > end > > it "should replace orderlines div" do > render "/pos_orderlines/create.rjs" > assert_rjs :replace_html, :orderlines, :partial => > ''pos_orders/orderlines'', :locals => { :order => @the_order } > end > > endLooking at http://glu.ttono.us/articles/2006/05/29/guide-test-driven-rjs-with-arts, you need to do an xhr request, which isn''t supported yet in view specs. Please try doing the same thing in a controller spec using integrate_views and do the request using xhr and see if that works. In the mean time I''ll submit an RFE to support this directly in view specs.> > ==== failes with: > Test::Unit::AssertionFailedError in ''/pos_orderlines/create.rjs should > replace orderlines div'' > No replace_html call found on div: ''orderlines'' and content: > {partial: "pos_orders/orderlines", locals: {order: {items: [], > payments: [], errors: [], attributes: {id: 65, state: "open", > created_at: {}}, new_record_before_save: true, new_record: false, > pos_orderlines: []}}} > in response: > Element.update("orderlines", "<table > id=\"orderlines\">\n\t<tr>\n\t\t<th>description</th>\n\t\t<th > class=\"price\">price</th>\n\t\t<th></th>\n\t</tr>\n\t\n\t<tr>\n\t\t<td > class=\"total\">Total</td>\n\t\t<td id=\"total-price\" > class=\"price\">$0.00</td>\n\t\t<td></td>\n\t</tr>\n\n</table>");. > <nil> is not true. > ===> > Any ideas? > > > On 5/11/07, Matthijs Langenberg <mlangenberg at gmail.com> wrote: > > I wanted to use ARTS to add RJS in a behaviour driven way to my > > application, but I''m having some trouble asserting a replace_html with > > a partial. > > I''ve created a pastie (http://pastie.caboo.se/60694) which contains > > the RJS I want to spec, the spec which I already wrote and its failure > > message. > > > > I''m currently using RSpec-0.9.2 > > > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >