2018-05-07 16:47:29 -07:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
2016-04-03 00:40:13 +05:30
|
|
|
require 'spec_helper'
|
|
|
|
|
describe EventSerializer, type: :serializer do
|
2022-09-28 13:22:15 -07:00
|
|
|
let(:conference) { create(:conference, timezone: 'UTC') }
|
|
|
|
|
let(:program) { create(:program, conference: conference) }
|
|
|
|
|
let(:event) do
|
|
|
|
|
create(:event, program: program,
|
|
|
|
|
title: 'Some Talk',
|
|
|
|
|
abstract: 'Lorem ipsum dolor sit amet')
|
|
|
|
|
end
|
2016-04-03 00:40:13 +05:30
|
|
|
let(:serializer) { EventSerializer.new(event) }
|
|
|
|
|
|
2017-02-02 16:34:59 +02:00
|
|
|
context 'event does not have date, room and tracks assigned' do
|
2016-04-03 00:40:13 +05:30
|
|
|
it 'sets guid, title, length, abstract and type' do
|
|
|
|
|
expected_json = {
|
2018-09-29 16:13:38 -07:00
|
|
|
guid: event.guid,
|
2022-10-27 12:57:42 -07:00
|
|
|
url: "http://localhost:3000/conferences/#{event.conference.short_title}/program/proposals/#{event.id}",
|
2018-09-29 16:13:38 -07:00
|
|
|
title: 'Some Talk',
|
|
|
|
|
length: 30,
|
2022-09-28 09:34:01 -07:00
|
|
|
scheduled_date: nil,
|
2018-09-29 16:13:38 -07:00
|
|
|
language: nil,
|
|
|
|
|
abstract: 'Lorem ipsum dolor sit amet',
|
|
|
|
|
speaker_ids: event.speaker_ids,
|
|
|
|
|
type: 'Example Event Type',
|
|
|
|
|
room: nil,
|
|
|
|
|
track: nil
|
2016-04-03 00:40:13 +05:30
|
|
|
}.to_json
|
|
|
|
|
|
|
|
|
|
expect(serializer.to_json).to eq expected_json
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
context 'event has date, speakers, room and tracks assigned' do
|
2017-02-02 16:34:59 +02:00
|
|
|
let(:speaker) { create(:user) }
|
2016-04-03 00:40:13 +05:30
|
|
|
let(:room) { create(:room) }
|
|
|
|
|
let(:track) { create(:track) }
|
|
|
|
|
|
|
|
|
|
before do
|
2017-02-02 16:34:59 +02:00
|
|
|
event.language = 'English'
|
|
|
|
|
event.speakers = [speaker]
|
2017-04-22 01:20:05 +05:30
|
|
|
create(:event_schedule, event: event, room: room, start_time: Date.new(2014, 03, 04) + 9.hours)
|
2016-04-03 00:40:13 +05:30
|
|
|
event.track = track
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
it 'sets guid, title, length, abstract, type, date, language, speakers, room and track' do
|
|
|
|
|
expected_json = {
|
2018-09-29 16:13:38 -07:00
|
|
|
guid: event.guid,
|
2022-10-27 12:57:42 -07:00
|
|
|
url: "http://localhost:3000/conferences/#{event.conference.short_title}/program/proposals/#{event.id}",
|
2018-09-29 16:13:38 -07:00
|
|
|
title: 'Some Talk',
|
|
|
|
|
length: 30,
|
2022-09-28 09:34:01 -07:00
|
|
|
scheduled_date: '2014-03-04T09:00:00.000Z',
|
2018-09-29 16:13:38 -07:00
|
|
|
language: 'English',
|
|
|
|
|
abstract: 'Lorem ipsum dolor sit amet',
|
|
|
|
|
speaker_ids: [speaker.id],
|
|
|
|
|
type: 'Example Event Type',
|
|
|
|
|
room: room.guid,
|
|
|
|
|
track: track.guid
|
2016-04-03 00:40:13 +05:30
|
|
|
}.to_json
|
|
|
|
|
|
|
|
|
|
expect(serializer.to_json).to eq expected_json
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|