mirror of
https://github.com/openSUSE/osem.git
synced 2026-08-13 19:54:02 +00:00
105 lines
3 KiB
Ruby
105 lines
3 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe Target do
|
|
|
|
describe 'validations' do
|
|
it 'has a valid factory' do
|
|
expect(build(:target)).to be_valid
|
|
end
|
|
|
|
it 'is not valid without a due date' do
|
|
should validate_presence_of(:due_date)
|
|
end
|
|
|
|
it 'is not valid without a target_count' do
|
|
should validate_presence_of(:target_count)
|
|
end
|
|
|
|
it 'is not valid without a unit' do
|
|
should validate_presence_of(:unit)
|
|
end
|
|
|
|
it 'is valid with a target_count greater than zero' do
|
|
should allow_value(10).for(:target_count)
|
|
end
|
|
|
|
it 'is not valid with a target_count equals zero' do
|
|
should_not allow_value(0).for(:target_count)
|
|
end
|
|
|
|
it 'is not valid with a target_count smaller than zero' do
|
|
should_not allow_value(-10).for(:target_count)
|
|
end
|
|
end
|
|
|
|
describe '#get_progress' do
|
|
it 'returns zero if there are no registrations' do
|
|
conference = build(:conference)
|
|
target = build(:target, target_count: 10, unit: Target.units[:registrations])
|
|
conference.targets = [target]
|
|
|
|
expect(target.get_progress).to eq('0')
|
|
end
|
|
|
|
it 'returns 10 if there one registrations of 10' do
|
|
conference = create(:conference)
|
|
target = create(:target, target_count: 10, unit: Target.units[:registrations])
|
|
registration = create(:registration)
|
|
|
|
conference.targets = [target]
|
|
conference.registrations = [registration]
|
|
|
|
expect(target.get_progress).to eq('10')
|
|
end
|
|
|
|
it 'returns zero if there are no submissions' do
|
|
conference = build(:conference)
|
|
target = build(:target, target_count: 10, unit: Target.units[:submissions])
|
|
conference.targets = [target]
|
|
|
|
expect(target.get_progress).to eq('0')
|
|
end
|
|
|
|
it 'returns 10 if there one submissions of 10' do
|
|
conference = create(:conference)
|
|
target = create(:target, target_count: 10, unit: Target.units[:submissions])
|
|
event = create(:event)
|
|
|
|
conference.targets = [target]
|
|
conference.events = [event]
|
|
|
|
expect(target.get_progress).to eq('10')
|
|
end
|
|
|
|
it 'returns zero if there are no program minutes' do
|
|
conference = build(:conference)
|
|
target = build(:target, target_count: 10, unit: Target.units[:program_minutes])
|
|
conference.targets = [target]
|
|
|
|
expect(target.get_progress).to eq('0')
|
|
end
|
|
|
|
it 'returns 10 if there are 30 program minutes of 300' do
|
|
conference = create(:conference)
|
|
target = create(:target, target_count: 300, unit: Target.units[:program_minutes])
|
|
event = create(:event)
|
|
|
|
conference.targets = [target]
|
|
conference.events = [event]
|
|
|
|
expect(target.get_progress).to eq('10')
|
|
end
|
|
end
|
|
|
|
describe '#to_s' do
|
|
it 'returns a string in the correct format' do
|
|
conference = build(:conference)
|
|
target = build(:target, target_count: 10, unit: Target.units[:registrations])
|
|
conference.targets = [target]
|
|
|
|
result = "10 Registrations by #{Date.today + 14}"
|
|
|
|
expect(target.to_s).to eq(result)
|
|
end
|
|
end
|
|
end
|