From 53f732ce9cfd98c2b7a48061eb2a73e1686853ed Mon Sep 17 00:00:00 2001 From: Aditya Prakash Date: Tue, 22 Mar 2016 18:38:42 +0530 Subject: [PATCH] Add model test for sponsership_level --- spec/models/sponsorship_level_spec.rb | 29 ++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/spec/models/sponsorship_level_spec.rb b/spec/models/sponsorship_level_spec.rb index 1ca073e1..9ca74b47 100644 --- a/spec/models/sponsorship_level_spec.rb +++ b/spec/models/sponsorship_level_spec.rb @@ -1,7 +1,7 @@ require 'spec_helper' describe SponsorshipLevel do - describe 'validations' do + describe 'validation' do it 'has a valid factory' do expect(build(:sponsorship_level)).to be_valid @@ -11,4 +11,31 @@ describe SponsorshipLevel do should validate_presence_of(:title) end end + + describe 'association' do + it { is_expected.to belong_to(:conference) } + it { is_expected.to have_many(:sponsors) } + end + + describe 'acts_as_list' do + let(:conference) { create(:conference) } + + before do + @first_sponsorship_level = create(:sponsorship_level, conference: conference) + @second_sponsorship_level = create(:sponsorship_level, conference: conference) + @second_sponsorship_level.move_higher + @third_sponsorship_level = create(:sponsorship_level, conference: conference) + end + + it 'is positions sponsorship_levels in order' do + expect(SponsorshipLevel.where(conference_id: conference.id).order(:position).map(&:id)) + .to eq [2, 1, 3] + end + + it 'maintains order after deleting one element' do + @first_sponsorship_level.destroy + expect(SponsorshipLevel.where(conference_id: conference.id).order(:position).map(&:id)) + .to eq [2, 3] + end + end end