Merge pull request #190 from ChrisBr/step_by_step_list

Implements todo list for instance dashboard
This commit is contained in:
Christian Bruckmayer 2014-06-03 19:47:28 +02:00
commit ab21bb14de
13 changed files with 333 additions and 102 deletions

8
spec/factories/venues.rb Normal file
View file

@ -0,0 +1,8 @@
# Read about factories at https://github.com/thoughtbot/factory_girl
FactoryGirl.define do
factory :venue do
name 'Suse Office'
address 'Maxfeldstrasse 5 \n90409 Nuremberg'
website 'www.opensuse.org'
end
end

View file

@ -6,6 +6,166 @@ describe Conference do
let(:subject) { create(:conference) }
describe '#get_status' do
before(:each) do
# Setup positive result hash
@result = {}
@result['registration'] = true
@result['cfp'] = true
@result['venue'] = true
@result['rooms'] = true
@result['tracks'] = true
@result['event_types'] = true
@result['difficulty_levels'] = true
# Setup negative result hash
@result_false = Hash.new
@result.each { |key, value| @result_false[key] = !value }
@result['short_title'] = @result_false['short_title'] = subject.short_title
@result['process'] = 100.to_s
@result_false['process'] = 0.to_s
end
it 'calculates correct for new conference' do
subject.registration_start_date = nil
subject.registration_end_date = nil
subject.call_for_papers = nil
subject.venue = nil
subject.rooms = []
subject.tracks = []
subject.event_types = []
subject.difficulty_levels = []
expect(subject.get_status).to eq(@result_false)
end
it 'calculates correct for conference with registration' do
subject.registration_start_date = Date.today
subject.registration_end_date = Date.today + 14
subject.call_for_papers = nil
subject.rooms = []
subject.tracks = []
subject.event_types = []
subject.difficulty_levels = []
@result_false['registration'] = true
@result_false['process'] = 14.to_s
expect(subject.get_status).to eq(@result_false)
end
it 'calculates correct for conference with registration, cfp' do
subject.registration_start_date = Date.today
subject.registration_end_date = Date.today + 14
subject.call_for_papers = create(:call_for_papers)
subject.rooms = []
subject.tracks = []
subject.event_types = []
subject.difficulty_levels = []
@result_false['cfp'] = true
@result_false['registration'] = true
@result_false['process'] = 29.to_s
expect(subject.get_status).to eq(@result_false)
end
it 'calculates correct for conference with registration, cfp, venue' do
subject.registration_start_date = Date.today
subject.registration_end_date = Date.today + 14
subject.call_for_papers = create(:call_for_papers)
subject.venue = create(:venue)
subject.rooms = []
subject.tracks = []
subject.event_types = []
subject.difficulty_levels = []
@result_false['cfp'] = true
@result_false['registration'] = true
@result_false['venue'] = true
@result_false['process'] = 43.to_s
expect(subject.get_status).to eq(@result_false)
end
it 'calculates correct for conference with registration, cfp, venue, rooms' do
subject.rooms = [create(:room)]
subject.registration_start_date = Date.today
subject.registration_end_date = Date.today + 14
subject.call_for_papers = create(:call_for_papers)
subject.venue = create(:venue)
subject.tracks = []
subject.event_types = []
subject.difficulty_levels = []
@result_false['cfp'] = true
@result_false['registration'] = true
@result_false['venue'] = true
@result_false['rooms'] = true
@result_false['process'] = 57.to_s
expect(subject.get_status).to eq(@result_false)
end
it 'calculates correct for conference with registration, cfp, venue, rooms, tracks' do
subject.rooms = [create(:room)]
subject.tracks = [create(:track)]
subject.registration_start_date = Date.today
subject.registration_end_date = Date.today + 14
subject.call_for_papers = create(:call_for_papers)
subject.venue = create(:venue)
subject.event_types = []
subject.difficulty_levels = []
@result_false['cfp'] = true
@result_false['registration'] = true
@result_false['venue'] = true
@result_false['rooms'] = true
@result_false['tracks'] = true
@result_false['process'] = 71.to_s
expect(subject.get_status).to eq(@result_false)
end
it 'calculates correct for conference with registration, cfp,
venue, rooms, tracks, event_types' do
subject.rooms = [create(:room)]
subject.tracks = [create(:track)]
subject.event_types = [create(:event_type)]
subject.registration_start_date = Date.today
subject.registration_end_date = Date.today + 14
subject.call_for_papers = create(:call_for_papers)
subject.venue = create(:venue)
subject.difficulty_levels = []
@result_false['cfp'] = true
@result_false['registration'] = true
@result_false['venue'] = true
@result_false['rooms'] = true
@result_false['tracks'] = true
@result_false['event_types'] = true
@result_false['process'] = 86.to_s
expect(subject.get_status).to eq(@result_false)
end
it 'calculates correct for conference with all mandatory options' do
subject.rooms = [create(:room)]
subject.tracks = [create(:track)]
subject.event_types = [create(:event_type)]
subject.difficulty_levels = [create(:difficulty_level)]
subject.registration_start_date = Date.today
subject.registration_end_date = Date.today + 14
subject.venue = create(:venue)
subject.call_for_papers = create(:call_for_papers)
subject.venue = create(:venue)
expect(subject.get_status).to eq(@result)
end
end
describe '#registration_weeks' do
it 'calculates new year' do

View file

@ -3,9 +3,10 @@ require 'spec_helper'
describe 'admin/conference/show' do
it 'renders conference dashboard' do
@conference = create(:conference, title: 'OpenSUSE')
assign :conference, @conference
conference = create(:conference, title: 'OpenSUSE')
assign :conference, conference
assign :conference_progress, conference.get_status
render
expect(rendered).to include("Dashboard for #{@conference.title}")
expect(rendered).to include("Dashboard for #{conference.title}")
end
end