mirror of
https://github.com/openSUSE/osem.git
synced 2026-08-13 19:54:02 +00:00
120 lines
4.8 KiB
Ruby
120 lines
4.8 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe EmailSettings do
|
|
let(:conference) { create(:conference, short_title: 'goto', start_date: Date.new(2014, 05, 01), end_date: Date.new(2014, 05, 06)) }
|
|
let(:user) { create(:user, username: 'johnd', email: 'john@doe.com', name: 'John Doe') }
|
|
let(:event) { create(:event, program: conference.program, title: 'Talk about talks', submitter: user) }
|
|
let(:expected_hash) do
|
|
{
|
|
'email' => 'john@doe.com',
|
|
'name' => 'John Doe',
|
|
'conference' => conference.title,
|
|
'conference_start_date' => Date.new(2014, 05, 01),
|
|
'conference_end_date' => Date.new(2014, 05, 06),
|
|
'registrationlink' => 'http://localhost:3000/conferences/goto/register',
|
|
'conference_splash_link' => 'http://localhost:3000/conferences/goto',
|
|
'schedule_link' => 'http://localhost:3000/conferences/goto/schedule',
|
|
'cfp_end_date' => 'Unknown',
|
|
'cfp_start_date' => 'Unknown',
|
|
'venue' => 'Unknown',
|
|
'venue_address' => 'Unknown'
|
|
}
|
|
end
|
|
|
|
it 'has a valid factory' do
|
|
expect(build(:email_settings)).to be_valid
|
|
end
|
|
|
|
describe '#get_values' do
|
|
context 'user has name' do
|
|
it 'returns correct key-value pairs' do
|
|
expect(conference.email_settings.get_values(conference, user)).to eq expected_hash
|
|
end
|
|
end
|
|
|
|
context 'user does not have name' do
|
|
before do
|
|
user.update_attributes(name: nil)
|
|
username_hash = { 'name' => 'johnd' }
|
|
expected_hash.merge!(username_hash)
|
|
end
|
|
|
|
it 'returns correct key-value pairs with username as name' do
|
|
expect(conference.email_settings.get_values(conference, user)).to eq expected_hash
|
|
end
|
|
end
|
|
|
|
context 'conference has cfp' do
|
|
before do
|
|
conference.program.update_attributes(cfp: create(:cfp,
|
|
start_date: Date.new(2014, 04, 29),
|
|
end_date: Date.new(2014, 05, 06)))
|
|
cfp_dates_hash = { 'cfp_start_date' => Date.new(2014, 04, 29), 'cfp_end_date' => Date.new(2014, 05, 06) }
|
|
expected_hash.merge!(cfp_dates_hash)
|
|
end
|
|
|
|
it 'returns hash with cfp start and end date' do
|
|
expect(conference.email_settings.get_values(conference, user)).to eq expected_hash
|
|
end
|
|
end
|
|
|
|
context 'conference has venue' do
|
|
before do
|
|
conference.update_attributes(venue: create(:venue))
|
|
venue_hash = { 'venue' => conference.venue.name, 'venue_address' => conference.venue.address }
|
|
expected_hash.merge!(venue_hash)
|
|
end
|
|
|
|
it 'returns hash with venue and venue_address' do
|
|
expect(conference.email_settings.get_values(conference, user)).to eq expected_hash
|
|
end
|
|
end
|
|
|
|
context 'conference has registration period' do
|
|
before do
|
|
conference.update_attributes(registration_period: create(:registration_period,
|
|
start_date: Date.new(2014, 05, 03),
|
|
end_date: Date.new(2014, 05, 05)))
|
|
registration_period_hash = { 'registration_start_date' => Date.new(2014, 05, 03), 'registration_end_date' => Date.new(2014, 05, 05) }
|
|
expected_hash.merge!(registration_period_hash)
|
|
end
|
|
|
|
it 'returns hash with registration_start_date and registration_end_date' do
|
|
expect(conference.email_settings.get_values(conference, user)).to eq expected_hash
|
|
end
|
|
end
|
|
|
|
context 'conference has event' do
|
|
before do
|
|
event_hash = { 'eventtitle' => 'Talk about talks', 'proposalslink' => 'http://localhost:3000/conferences/goto/program/proposals' }
|
|
expected_hash.merge!(event_hash)
|
|
end
|
|
|
|
it 'returns hash with eventtitle and proposalslink' do
|
|
expect(conference.email_settings.get_values(conference, user, event)).to eq expected_hash
|
|
end
|
|
end
|
|
end
|
|
|
|
describe '#generate_event_mail' do
|
|
let(:event_template) do
|
|
"Dear {name}\n\nWe are very pleased" \
|
|
'to inform you that your submission {eventtitle} has been accepted for the conference {conference}.'
|
|
end
|
|
|
|
it 'replaces fillers in template' do
|
|
expected_text = "Dear John Doe\n\nWe are very pleased" \
|
|
"to inform you that your submission Talk about talks has been accepted for the conference #{conference.title}."
|
|
expect(conference.email_settings.generate_event_mail(event, event_template)).to eq expected_text
|
|
end
|
|
end
|
|
|
|
describe '#generate_email_on_conf_updates' do
|
|
let(:conf_update_template) { "Dear {name},\n\nThank you for Registering for the conference {conference}." }
|
|
|
|
it 'replaces fillers in template' do
|
|
expected_text = "Dear John Doe,\n\nThank you for Registering for the conference #{conference.title}."
|
|
expect(conference.email_settings.generate_email_on_conf_updates(conference, user, conf_update_template)).to eq expected_text
|
|
end
|
|
end
|
|
end
|