Технические характеристики метода модели DRY

Если новые новости включены, они автоматически удаляются из предыдущих новостей. Я написал спецификацию, но они терпят неудачу. Как эти характеристики можно улучшить?

Пост.рб

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