jam-cloud/web/spec/helpers/recording_helper_spec.rb

124 lines
5.0 KiB
Ruby
Raw Permalink Normal View History

2014-02-06 16:31:52 +00:00
require 'spec_helper'
describe RecordingHelper, type: :helper do
2014-02-06 16:31:52 +00:00
before(:each) do
@user = FactoryGirl.create(:user)
@connection = FactoryGirl.create(:connection, :user => @user)
@instrument = FactoryGirl.create(:instrument, :description => 'a great instrument')
@track = FactoryGirl.create(:track, :connection => @connection, :instrument => @instrument)
2014-05-06 13:34:38 +00:00
@music_session = FactoryGirl.create(:active_music_session, :creator => @user, :musician_access => true)
# @music_session.connections << @connection
2014-02-06 16:31:52 +00:00
@music_session.save
@connection.join_the_session(@music_session, true, nil, @user, 10)
2014-02-06 16:31:52 +00:00
@recording = Recording.start(@music_session, @user)
@recording.stop
@recording.reload
@genre = FactoryGirl.create(:genre)
@recording.claim(@user, "name", "description", @genre, true)
2014-02-06 16:31:52 +00:00
@recording.reload
@claimed_recording = @recording.claimed_recordings.first
end
describe "facebook_image_for_claimed_recording" do
it "with band with no photo url" do
@recording.band = FactoryGirl.create(:band)
@recording.save!(:validate => false)
@claimed_recording.reload
result = helper.facebook_image_for_claimed_recording(@claimed_recording)
result.include?('/assets/web/logo-256.png').should be true
2014-02-06 16:31:52 +00:00
end
it "with band with photo url" do
@recording.band = FactoryGirl.create(:band, large_photo_url: 'abc.png')
@recording.save!(:validate => false)
@claimed_recording.reload
result = helper.facebook_image_for_claimed_recording(@claimed_recording)
result.include?(@claimed_recording.recording.band.large_photo_url).should be true
2014-02-06 16:31:52 +00:00
end
it "with user with no photo url" do
result = helper.facebook_image_for_claimed_recording(@claimed_recording)
result.include?("/assets/web/logo-256.png").should be true
2014-02-06 16:31:52 +00:00
end
it "with user with photo url" do
@claimed_recording.user.large_photo_url = 'abc.png'
@claimed_recording.user.save!
@claimed_recording.save!
@claimed_recording.reload
result = helper.facebook_image_for_claimed_recording(@claimed_recording)
result.include?("/assets/web/logo-256.png").should be true
2014-02-06 16:31:52 +00:00
end
it "with sharer with no photo url" do
sharer = FactoryGirl.create(:user)
result = helper.facebook_image_for_claimed_recording(@claimed_recording)
result.include?("/assets/web/logo-256.png").should be true
2014-02-06 16:31:52 +00:00
end
it "with sharer with photo url" do
sharer = FactoryGirl.create(:user, large_photo_url: 'abc.png')
result = helper.facebook_image_for_claimed_recording(@claimed_recording)
result.include?("/assets/web/logo-256.png").should be true
2014-02-06 16:31:52 +00:00
end
end
describe "title_for_claimed_recording" do
2014-02-06 16:31:52 +00:00
it "with band" do
@recording.band = FactoryGirl.create(:band)
@recording.save!(:validate => false)
@claimed_recording.reload
result = helper.title_for_claimed_recording(@claimed_recording)
result.start_with?("RECORDING").should be true
result.end_with?(@claimed_recording.recording.band.name).should be true
2014-02-06 16:31:52 +00:00
end
it "with user" do
result = helper.title_for_claimed_recording(@claimed_recording)
result.start_with?("RECORDING").should be true
result.end_with?(@claimed_recording.user.name).should be true
2014-02-06 16:31:52 +00:00
end
2014-11-09 15:50:28 +00:00
# regression: https://jamkazam.atlassian.net/browse/VRFS-2468
it "correct number of others when multiple tracks for 2 users" do
second_user = FactoryGirl.create(:user)
track1 = FactoryGirl.create(:recorded_track, user: second_user, recording: @recording)
track2 = FactoryGirl.create(:recorded_track, user: second_user, recording: @recording)
result = helper.title_for_claimed_recording(@claimed_recording)
result.include?("& #{second_user.name}").should be true
2014-11-09 15:50:28 +00:00
end
# regression: https://jamkazam.atlassian.net/browse/VRFS-2468
it "correct number of others when multiple tracks for 3 users" do
second_user = FactoryGirl.create(:user)
track1 = FactoryGirl.create(:recorded_track, user: second_user, recording: @recording)
track2 = FactoryGirl.create(:recorded_track, user: second_user, recording: @recording)
third_user = FactoryGirl.create(:user)
track1 = FactoryGirl.create(:recorded_track, user: third_user, recording: @recording)
track2 = FactoryGirl.create(:recorded_track, user: third_user, recording: @recording)
result = helper.title_for_claimed_recording(@claimed_recording)
result.include?("& 2 OTHERS").should be true
2014-11-09 15:50:28 +00:00
end
2014-02-06 16:31:52 +00:00
end
describe "additional_member_count" do
it "no unique users" do
helper.additional_member_count([], @user).should == ""
2014-02-06 16:31:52 +00:00
end
it "has 2 users" do
user2 = FactoryGirl.create(:user)
helper.additional_member_count([@user, user2], @user).should == " & #{user2.name}"
end
it "has 3 users" do
user2 = FactoryGirl.create(:user)
user3 = FactoryGirl.create(:user)
helper.additional_member_count([@user, user2, user3], @user).should == " & 2 OTHERS"
2014-02-06 16:31:52 +00:00
end
end
end