Skip to content

Commit

Permalink
Working playlist item ability tests
Browse files Browse the repository at this point in the history
  • Loading branch information
cjcolvar committed May 24, 2016
1 parent 87deeea commit a18df9a
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 10 deletions.
4 changes: 2 additions & 2 deletions app/models/ability.rb
Original file line number Diff line number Diff line change
Expand Up @@ -156,12 +156,12 @@ def playlist_permissions

def playlist_item_permissions
if @user.id.present?
can :manage, PlaylistItem do |playlist_item|
can [:create, :update, :delete], PlaylistItem do |playlist_item|
can? :manage, playlist_item.playlist
end
can :read, PlaylistItem do |playlist_item|
(can? :read, playlist_item.playlist) &&
(can? :read, playlist_item.annotation.master_file)
(can? :read, playlist_item.master_file)
end
end
end
Expand Down
4 changes: 0 additions & 4 deletions spec/factories/playlist_item.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,5 @@
factory :playlist_item do
playlist
association :annotation, factory: :avalon_annotation
#title { Faker::Lorem.word }
#comment { Faker::Lorem.sentence }
#start_time { 0.0 }
#end_time { 100.0 }
end
end
8 changes: 4 additions & 4 deletions spec/models/playlist_item_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
context 'when owner' do
let(:playlist) { FactoryGirl.create(:playlist, user: user) }

it{ is_expected.to be_able_to(:manage, playlist_item) }
it{ is_expected.to be_able_to(:create, playlist_item) }
it{ is_expected.to be_able_to(:update, playlist_item) }
it{ is_expected.to be_able_to(:delete, playlist_item) }
Expand All @@ -28,16 +27,16 @@
end

context 'when master file is readable by user' do
let(:media_object) { FactoryGirl.create(:media_object, visibility: 'public') }
let(:media_object) { FactoryGirl.create(:published_media_object, visibility: 'public') }
let(:master_file) { FactoryGirl.create(:master_file, mediaobject: media_object) }

it{ is_expected.to be_able_to(:read, playlist_item) }
end
end

context 'when other user' do
let(:playlist) { FactoryGirl.create(:playlist, visibility: Playlist::PUBLIC) }

it{ is_expected.not_to be_able_to(:manage, playlist_item) }
it{ is_expected.not_to be_able_to(:create, playlist_item) }
it{ is_expected.not_to be_able_to(:update, playlist_item) }
it{ is_expected.not_to be_able_to(:delete, playlist_item) }
Expand All @@ -47,8 +46,9 @@
end

context 'when master file is readable by user' do
let(:media_object) { FactoryGirl.create(:media_object, visibility: 'public') }
let(:media_object) { FactoryGirl.create(:published_media_object, visibility: 'public') }
let(:master_file) { FactoryGirl.create(:master_file, mediaobject: media_object) }

it{ is_expected.to be_able_to(:read, playlist_item) }
end
end
Expand Down

0 comments on commit a18df9a

Please sign in to comment.