Add Eventserializer tests and fix undefined method `l' for Eventserializer

Solution of no method error pointed by @nishanthvijayan:
http://stackoverflow.com/a/11724935
This commit is contained in:
Aditya Prakash 2016-04-03 00:40:13 +05:30
parent a786321800
commit 0aa36b470e
2 changed files with 59 additions and 1 deletions

View file

@ -5,7 +5,7 @@ class EventSerializer < ActiveModel::Serializer
def date
t = object.start_time
t.blank? ? '' : %{ #{l t, format: :short}#{t.formatted_offset(false)} }
t.blank? ? '' : %{ #{I18n.l t, format: :short}#{t.formatted_offset(false)} }
end
def speaker_ids

View file

@ -0,0 +1,58 @@
require 'spec_helper'
describe EventSerializer, type: :serializer do
let(:event) { create(:event, title: 'Some Talk', abstract: 'Lorem ipsum dolor sit amet') }
let(:serializer) { EventSerializer.new(event) }
context 'event does not have date, speakers, room and tracks assigned' do
it 'sets guid, title, length, abstract and type' do
expected_json = {
event: {
guid: event.guid,
title: 'Some Talk',
length: 30,
date: '',
language: nil,
abstract: '<p>Lorem ipsum dolor sit amet</p>',
speaker_ids: [],
type: 'Example Event Type',
room: nil,
track: nil
}
}.to_json
expect(serializer.to_json).to eq expected_json
end
end
context 'event has date, speakers, room and tracks assigned' do
let(:speaker) { create(:speaker) }
let(:room) { create(:room) }
let(:track) { create(:track) }
before do
event.update_attributes(start_time: Date.new(2014, 03, 04), language: 'English')
event.event_users << speaker
event.room = room
event.track = track
end
it 'sets guid, title, length, abstract, type, date, language, speakers, room and track' do
expected_json = {
event: {
guid: event.guid,
title: 'Some Talk',
length: 30,
date: ' 2014-03-04T00:00:00+0000 ',
language: 'English',
abstract: '<p>Lorem ipsum dolor sit amet</p>',
speaker_ids: [speaker.user.id],
type: 'Example Event Type',
room: room.guid,
track: track.guid
}
}.to_json
expect(serializer.to_json).to eq expected_json
end
end
end