Спецификации за метода на модела DRY

Ако нови новини са активирани, те автоматично премахват активираните от предишните новини. Написах спецификация, но те се провалят. Тъй като тези спецификации могат да бъдат подобрени?

Post.rb

before_validation :removes_enabled


def removes_enabled
  if enabled_changed? && enabled?
    Post.update_all( enabled: false )
  end
end

Моята спецификация:

describe "#remove_enabled" do
  let!(:p1) {create :post, enabled: true }

  it "should remove enabled for other post" do
    p2 = create :post, enabled: true
    expect(p1.enabled).to eq(false)
  end

  it "should not remove enabled for other post if current post is not enabled" do
    p2 = create :post, enabled: false
    expect(p1.enabled).to eq(true)
  end
end

person vadus1    schedule 12.02.2014    source източник
comment
Опитайте да презаредите p1 и в двата си тестови случая. expect(p1.reload.enabled).to eq(false) и expect(p1.reload.enabled).to eq(true)   -  person usha    schedule 12.02.2014