# frozen_string_literal: true

require 'spec_helper'
describe SpeakerSerializer, type: :serializer do
  let(:speaker) { create(:user, name: 'John Doe', affiliation: 'JohnDoesInc', biography: nil) }
  let(:serializer) { SpeakerSerializer.new(speaker) }

  context 'speaker does not have biography' do
    it 'sets name and affiliation' do
      expected_json = {
        url:         "http://localhost:3000/users/#{speaker.id}",
        name:        'John Doe',
        affiliation: 'JohnDoesInc',
        biography:   nil
      }.to_json

      expect(serializer.to_json).to eq expected_json
    end
  end

  context 'speaker has biography' do
    before{ speaker.update_attribute(:biography, 'Doest of all Jon Does') }

    it 'sets name, affiliation and biography' do
      expected_json = {
        url:         "http://localhost:3000/users/#{speaker.id}",
        name:        'John Doe',
        affiliation: 'JohnDoesInc',
        biography:   'Doest of all Jon Does'
      }.to_json

      expect(serializer.to_json).to eq expected_json
    end
  end
end
