You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to shoulda
Hi!
I have this Request model that I want to test a little bit different
depending on an attribute. The attribute is *local*. So if a Request
is local, I don't want to validate uniqueness of *url*. But I do want
that if the Request is global.
So I thought I would do it like this:
class RequestTest < ActiveSupport::TestCase
subject { Factory(:request) }
context "a local request" do
setup { subject { Factory(:request, :local => true) } }
# No uniqueness validation
end
context "a global request" do
setup { subject { Factory(:request, :local => false) } }
should_validate_uniqueness_of :url
end
# ...
end
But this does not work.
I also tried to stub the subject block:
context "a global request" do
setup do
request = Factory(:request, :local => false)
stubs(:subject).returns(request)
end
should_validate_uniqueness_of :url
end
But no success there either...
Do you know how to solve this?
Thanks!
François Beausoleil
unread,
Nov 22, 2009, 10:58:00 PM11/22/09
Reply to author
Sign in to reply to author
Forward
Sign in to forward
Delete
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to sho...@googlegroups.com
You don't show any error messages, so I'm not too sure. I believe #subject is a class method, so you'd do it this way:
context "a global request" do
subject do
@subject ||= Factory(:request, :local => false)
end
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to shoulda
Sorry if I was unclear. There's no error, but the test fails with
this:
Expected errors to include "has already been taken" when url is set to
"http://domain.com", got no errors
Your suggestion didn't work.
On Nov 23, 3:58 am, François Beausoleil
<francois.beausol...@gmail.com> wrote:
> You don't show any error messages, so I'm not too sure. I believe #subject is a class method, so you'd do it this way:
>
> context "a global request" do
> subject do
> @subject ||= Factory(:request, :local => false)
> end
>
> should_validate_uniqueness_of :url
> end
>
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to shoulda
Maybe there's a better way to do it? What I'm trying to test is this:
validates_uniqueness_of :url, :unless => :local?
validates_uniqueness_of :url, :if => :local?, :scope => :user_id