From d9925f00e969a611385efe986c796a34adef79b5 Mon Sep 17 00:00:00 2001 From: hitman Date: Thu, 16 Mar 2017 22:31:42 +0530 Subject: [PATCH] add volunteers helper --- .../admin/volunteers_controller.rb | 1 + app/helpers/admin/volunteers_helper.rb | 11 ++++++++++ spec/helpers/events_helper_spec.rb | 21 +++++++++++++++++++ spec/helpers/format_helper_spec.rb | 20 ++++++++++++++++++ spec/helpers/users_helper_spec.rb | 11 ++++++++++ 5 files changed, 64 insertions(+) create mode 100644 app/helpers/admin/volunteers_helper.rb create mode 100644 spec/helpers/events_helper_spec.rb create mode 100644 spec/helpers/format_helper_spec.rb create mode 100644 spec/helpers/users_helper_spec.rb diff --git a/app/controllers/admin/volunteers_controller.rb b/app/controllers/admin/volunteers_controller.rb index ec6d7ac7..a6ce367b 100644 --- a/app/controllers/admin/volunteers_controller.rb +++ b/app/controllers/admin/volunteers_controller.rb @@ -1,5 +1,6 @@ module Admin class VolunteersController < Admin::BaseController + include VolunteersHelper load_and_authorize_resource :conference, find_by: :short_title def index diff --git a/app/helpers/admin/volunteers_helper.rb b/app/helpers/admin/volunteers_helper.rb new file mode 100644 index 00000000..d71719db --- /dev/null +++ b/app/helpers/admin/volunteers_helper.rb @@ -0,0 +1,11 @@ +module Admin + module VolunteersHelper + def can_manage_volunteers(conference) + if (current_user.has_role? :organizer, conference) || (current_user.has_role? :volunteers_coordinator, conference) + true + else + false + end + end + end +end diff --git a/spec/helpers/events_helper_spec.rb b/spec/helpers/events_helper_spec.rb new file mode 100644 index 00000000..4d92ce0b --- /dev/null +++ b/spec/helpers/events_helper_spec.rb @@ -0,0 +1,21 @@ +require 'spec_helper' + +describe EventsHelper, type: :helper do + let(:conference) { create(:conference) } + let(:event) { create(:event, program: conference.program) } + + describe '#registered_text' do + describe 'returns correct string' do + it 'when there are no registrations' do + expect(registered_text(event)).to eq 'Registered: 0' + end + + it 'when there is 1 registration' do + event.require_registration = true + event.max_attendees = 3 + event.registrations << create(:registration, user: event.submitter) + expect(registered_text(event)).to eq 'Registered: 1/3' + end + end + end +end diff --git a/spec/helpers/format_helper_spec.rb b/spec/helpers/format_helper_spec.rb new file mode 100644 index 00000000..dd306b5f --- /dev/null +++ b/spec/helpers/format_helper_spec.rb @@ -0,0 +1,20 @@ +require 'spec_helper' + +describe FormatHelper, type: :helper do + + describe 'markdown' do + it 'should return empty string for nil' do + expect(markdown(nil)).to eq '' + end + + it 'should return HTML for header markdown' do + expect(Redcarpet::Markdown).to receive(:new). + with(Redcarpet::Render::HTML, autolink: true, + space_after_headers: true, + no_intra_emphasis: true). + and_call_original + + expect(markdown('# this is my header')).to eq "

this is my header

\n" + end + end +end diff --git a/spec/helpers/users_helper_spec.rb b/spec/helpers/users_helper_spec.rb new file mode 100644 index 00000000..dfc337e6 --- /dev/null +++ b/spec/helpers/users_helper_spec.rb @@ -0,0 +1,11 @@ +require 'spec_helper' + +describe UsersHelper, type: :helper do + + describe 'show_roles' do + it 'formats the hash passed' do + roles = { 'organizer' => ['oSC16', 'oSC15'], 'cfp' => ['oSC16'] } + expect(show_roles(roles)).to eq 'Organizer (oSC16, oSC15), Cfp (oSC16)' + end + end +end