From 84843ade483aa300c6990541ac2382a0eba84415 Mon Sep 17 00:00:00 2001 From: Chrisbr Date: Tue, 13 May 2014 10:35:23 +0200 Subject: [PATCH] refactoring setup_roles and updated tests --- app/models/user.rb | 21 +++++++------------ .../conferences_controller_spec.rb | 5 +++++ spec/features/conference_spec.rb | 5 +++++ spec/features/proposal_spec.rb | 5 +++++ spec/models/conference_spec.rb | 5 +++++ 5 files changed, 27 insertions(+), 14 deletions(-) diff --git a/app/models/user.rb b/app/models/user.rb index 296b4114..c322b710 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -29,15 +29,8 @@ class User < ActiveRecord::Base end def setup_role - if User.count == 0 - admin = Role.where(name: 'Admin').first - self.role_ids = [admin.id] unless admin.nil? - end - - if self.role_ids.empty? - participant = Role.where(name: 'Participant').first - self.role_ids = [participant.id] unless participant.nil? - end + self.roles << Role.find_by(name: 'Admin') if User.count == 0 + self.roles << Role.find_by(name: 'Participant') if self.roles.empty? end def popup_details @@ -56,9 +49,9 @@ class User < ActiveRecord::Base end private - def create_person - # TODO Search people for existing email address, add to their account - build_person(:email => self.email) if person.nil? - true - end + def create_person + # TODO Search people for existing email address, add to their account + build_person(:email => self.email) if person.nil? + true + end end diff --git a/spec/controllers/conferences_controller_spec.rb b/spec/controllers/conferences_controller_spec.rb index 2b606ab1..a310ad56 100644 --- a/spec/controllers/conferences_controller_spec.rb +++ b/spec/controllers/conferences_controller_spec.rb @@ -2,6 +2,11 @@ require 'spec_helper' describe Admin::ConferenceController do + # It is necessary to use bang version of let to build roles before user + let!(:organizer_role) { create(:organizer_role) } + let!(:participant_role) { create(:participant_role) } + let!(:admin_role) { create(:admin_role) } + let(:conference) { create(:conference) } let(:admin) { create(:admin) } let(:organizer) { create(:organizer) } diff --git a/spec/features/conference_spec.rb b/spec/features/conference_spec.rb index f923f9be..b5c6fd52 100644 --- a/spec/features/conference_spec.rb +++ b/spec/features/conference_spec.rb @@ -2,6 +2,11 @@ require 'spec_helper' feature Conference do + # It is necessary to use bang version of let to build roles before user + let!(:organizer_role) { create(:organizer_role) } + let!(:participant_role) { create(:participant_role) } + let!(:admin_role) { create(:admin_role) } + shared_examples 'add and update conference' do |user| scenario 'adds a new conference', feature: true, js: true do expected_count = Conference.count + 1 diff --git a/spec/features/proposal_spec.rb b/spec/features/proposal_spec.rb index 3f4a2050..0f318b41 100644 --- a/spec/features/proposal_spec.rb +++ b/spec/features/proposal_spec.rb @@ -2,6 +2,11 @@ require 'spec_helper' feature Event do + # It is necessary to use bang version of let to build roles before user + let!(:organizer_role) { create(:organizer_role) } + let!(:participant_role) { create(:participant_role) } + let!(:admin_role) { create(:admin_role) } + shared_examples 'participant' do |user| scenario 'submitts a new proposal and updates account', feature: true, js: true do expected_count = Event.count + 1 diff --git a/spec/models/conference_spec.rb b/spec/models/conference_spec.rb index e1d2093f..ecaac1be 100644 --- a/spec/models/conference_spec.rb +++ b/spec/models/conference_spec.rb @@ -52,6 +52,11 @@ describe Conference do describe '#user_registered?' do + # It is necessary to use bang version of let to build roles before user + let!(:organizer_role) { create(:organizer_role) } + let!(:participant_role) { create(:participant_role) } + let!(:admin_role) { create(:admin_role) } + let(:user) { create(:user) } context 'user not registered' do