notebook/spec/support/public_scope_example.rb
2016-10-01 19:00:09 -05:00

72 lines
1.7 KiB
Ruby

require 'rails_helper'
shared_examples_for 'content with an is_public scope' do
context 'when model is in a public universe' do
let(:universe) { create(:universe, privacy: 'public') }
context 'when model is private' do
let(:model) do
create(
described_class.model_name.param_key.to_sym,
universe: universe,
privacy: 'private'
)
end
describe '#is_public' do
subject { described_class.is_public }
it { is_expected.to include(model) }
end
end
context 'when model is public' do
let(:model) do
create(
described_class.model_name.param_key.to_sym,
universe: universe,
privacy: 'public'
)
end
describe '#is_public' do
subject { described_class.is_public }
it { is_expected.to include(model) }
end
end
end
context 'when model is in a private universe' do
let(:universe) { build(:universe, privacy: 'private') }
context 'when model is private' do
let(:model) do
create(
described_class.model_name.param_key.to_sym,
universe: universe,
privacy: 'private'
)
end
describe '#is_public' do
subject { described_class.is_public }
it { is_expected.to_not include(model) }
end
end
context 'when model is public' do
let(:model) do
create(
described_class.model_name.param_key.to_sym,
universe: universe,
privacy: 'public'
)
end
describe '#is_public' do
subject { described_class.is_public }
it { is_expected.to include(model) }
end
end
end
end