From 47694c5f5219bd7bd8adf8fb0d9af4386d36e6b7 Mon Sep 17 00:00:00 2001 From: Seth Call Date: Thu, 6 Feb 2014 21:53:19 +0000 Subject: [PATCH] * adding tests for share_resolver --- ruby/spec/factories.rb | 3 +- .../share_tokens_controller_spec.rb | 20 +++++++-- web/spec/factories.rb | 43 ++++++++++++++++--- web/spec/spec_helper.rb | 1 + 4 files changed, 58 insertions(+), 9 deletions(-) diff --git a/ruby/spec/factories.rb b/ruby/spec/factories.rb index cf4afef18..769248fcd 100644 --- a/ruby/spec/factories.rb +++ b/ruby/spec/factories.rb @@ -130,8 +130,9 @@ FactoryGirl.define do end factory :instrument, :class => JamRuby::Instrument do + description { |n| "Instrument #{n}" } end - + factory :recording, :class => JamRuby::Recording do association :owner, factory: :user diff --git a/web/spec/controllers/share_tokens_controller_spec.rb b/web/spec/controllers/share_tokens_controller_spec.rb index a6965464f..30ded15f7 100644 --- a/web/spec/controllers/share_tokens_controller_spec.rb +++ b/web/spec/controllers/share_tokens_controller_spec.rb @@ -1,14 +1,28 @@ require 'spec_helper' -describe SharedTokenController do +describe ShareTokensController do render_views let(:user) { FactoryGirl.create(:user) } - let(:music_session) {FactoryGirl.create(:music_session, user: user) } + let(:music_session) {FactoryGirl.create(:music_session, creator: user) } + let(:claimed_recording) {FactoryGirl.create(:claimed_recording) } it "resolves music session" do music_session.touch - get :shareable_resolver, :id => ShareToken.find_by_shareable_id!(music_session.id).token + get :shareable_resolver, :id => music_session.music_session_history.share_token.token + + location_header = response.headers["Location"] + location_header.should == music_session_detail_url(music_session.id) + + end + + it "resolves claimed recording" do + claimed_recording.touch + get :shareable_resolver, :id => claimed_recording.share_token.token + + location_header = response.headers["Location"] + location_header.should == recording_detail_url(claimed_recording.id) + end end diff --git a/web/spec/factories.rb b/web/spec/factories.rb index c3e8c6dd6..215db3715 100644 --- a/web/spec/factories.rb +++ b/web/spec/factories.rb @@ -60,6 +60,7 @@ FactoryGirl.define do musician_access true legal_terms true genres [JamRuby::Genre.first] + association :creator, :factory => :user after(:create) { |session| MusicSessionHistory.save(session) @@ -120,20 +121,52 @@ FactoryGirl.define do priority 0 end - factory :recording, :class => JamRuby::Recording do - - end - factory :track, :class => JamRuby::Track do sound "mono" sequence(:client_track_id) { |n| "client_track_id_seq_#{n}"} end + factory :recorded_track, :class => JamRuby::RecordedTrack do + instrument JamRuby::Instrument.first + sound 'stereo' + sequence(:client_id) { |n| "client_id-#{n}"} + sequence(:track_id) { |n| "track_id-#{n}"} + sequence(:client_track_id) { |n| "client_track_id-#{n}"} + md5 'abc' + length 1 + fully_uploaded true + association :user, factory: :user + association :recording, factory: :recording + end + + factory :recording, :class => JamRuby::Recording do + + association :owner, factory: :user + association :music_session, factory: :music_session + + factory :recording_with_track do + before(:create) { |recording| + recording.recorded_tracks << FactoryGirl.create(:recorded_track, recording: recording, user: recording.owner) + } + end + end + + factory :claimed_recording, :class => JamRuby::ClaimedRecording do + sequence(:name) { |n| "name-#{n}" } + sequence(:description) { |n| "description-#{n}" } + is_public true + is_downloadable true + association :genre, factory: :genre + association :user, factory: :user + + before(:create) { |claimed_recording| + claimed_recording.recording = FactoryGirl.create(:recording_with_track, owner: claimed_recording.user) + } + end - factory :geocoder, :class => JamRuby::MaxMindGeo do country 'US' sequence(:region) { |n| ['NC', 'CA'][(n-1).modulo(2)] } diff --git a/web/spec/spec_helper.rb b/web/spec/spec_helper.rb index 8dbb93069..9aa9610a0 100644 --- a/web/spec/spec_helper.rb +++ b/web/spec/spec_helper.rb @@ -26,6 +26,7 @@ include JamRuby # put ActionMailer into test mode ActionMailer::Base.delivery_method = :test +RecordedTrack.observers.disable :all # only a few tests want this observer active Spork.prefork do