Also fixed the "fix public photos"-migration, because it didn't work with migration-models :/ fixes #6177
55 lines
1.9 KiB
Ruby
55 lines
1.9 KiB
Ruby
# Copyright (c) 2010-2011, Diaspora Inc. This file is
|
|
# licensed under the Affero General Public License version 3 or later. See
|
|
# the COPYRIGHT file.
|
|
|
|
require "spec_helper"
|
|
|
|
describe ShareVisibility, type: :model do
|
|
describe ".batch_import" do
|
|
let(:post) { FactoryGirl.create(:status_message, author: alice.person) }
|
|
|
|
it "returns false if share is public" do
|
|
post.public = true
|
|
post.save
|
|
expect(ShareVisibility.batch_import([bob.id], post)).to be false
|
|
end
|
|
|
|
it "creates a visibility for each user" do
|
|
expect {
|
|
ShareVisibility.batch_import([bob.id], post)
|
|
}.to change {
|
|
ShareVisibility.exists?(user_id: bob.id, shareable_id: post.id, shareable_type: "Post")
|
|
}.from(false).to(true)
|
|
end
|
|
|
|
it "does not raise if a visibility already exists" do
|
|
ShareVisibility.create!(user_id: bob.id, shareable_id: post.id, shareable_type: "Post")
|
|
expect {
|
|
ShareVisibility.batch_import([bob.id], post)
|
|
}.not_to raise_error
|
|
end
|
|
|
|
it "does not create visibilities for a public shareable" do
|
|
public_post = FactoryGirl.create(:status_message, author: alice.person, public: true)
|
|
|
|
ShareVisibility.batch_import([bob.id], public_post)
|
|
expect(ShareVisibility.where(user_id: bob.id, shareable_id: post.id, shareable_type: "Post")).not_to exist
|
|
end
|
|
|
|
context "scopes" do
|
|
before do
|
|
alice.post(:status_message, text: "Hey", to: alice.aspects.first)
|
|
|
|
photo_path = File.join(File.dirname(__FILE__), "..", "fixtures", "button.png")
|
|
alice.post(:photo, user_file: File.open(photo_path), text: "Photo", to: alice.aspects.first)
|
|
end
|
|
|
|
describe ".for_a_user" do
|
|
it "searches for share visibilies for a user" do
|
|
expect(ShareVisibility.for_a_user(bob).count).to eq(2)
|
|
expect(ShareVisibility.for_a_user(bob)).to eq(ShareVisibility.where(user_id: bob.id).to_a)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|