On 20 Apr 2009, at 02:57, Michael Schuerig wrote:
I'd rather check that a particular scope is in effect for a call to
#find. Just as I said. ;-)

As is always the case with spec'ing Rails, I don't know which level of abstraction is the right one to check, but it seems like what you're asking for is literally:

Person.should_receive(:all) do
  find_scope = Person.send(:scope, :find)
find_scope[:conditions].should == { name => ["LOWER(firstname || ' ' || lastname) = LOWER(?)", 'Dav%'] } find_scope[:order].should == { :name => "lastname ASC, firstname ASC" }
end

However this is obviously getting your hands a bit dirty with Rails guts -- I suspect others would suggest that you just set an expectation on with_scope and be done with it (or just load some fixtures, let the find hit the database, and make sure you get the right records back? presumably that's wrong in another way, as is traditional).

Cheers,
-Tom
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to