Sha256: f3af7bc81a0d1be8c8c0aeef014876e68fefbc5ac85f825c2bba84a586cebac2
Contents?: true
Size: 1.34 KB
Versions: 200
Compression:
Stored size: 1.34 KB
Contents
require 'spec_helper' describe "attribute overrides" do before do define_model('User', admin: :boolean) define_model('Post', title: :string, secure: :boolean, user_id: :integer) do belongs_to :user def secure=(value) return unless user && user.admin? write_attribute(:secure, value) end end FactoryGirl.define do factory :user do factory :admin do admin true end end factory :post do user title "default title" end end end let(:admin) { FactoryGirl.create(:admin) } let(:post_attributes) do { secure: false } end let(:non_admin_post_attributes) do post_attributes[:user] = FactoryGirl.create(:user) post_attributes end let(:admin_post_attributes) do post_attributes[:user] = admin post_attributes end context "with an admin posting" do subject { FactoryGirl.create(:post, admin_post_attributes) } its(:secure) { should == false } end context "with a non-admin posting" do subject { FactoryGirl.create(:post, non_admin_post_attributes) } its(:secure) { should be_nil } end context "with no user posting" do subject { FactoryGirl.create(:post, post_attributes) } its(:secure) { should be_nil } end end
Version data entries
200 entries across 92 versions & 7 rubygems