spec/unit/visibility_spec.rb in hydra-access-controls-9.4.0 vs spec/unit/visibility_spec.rb in hydra-access-controls-9.4.1
- old
+ new
@@ -1,18 +1,8 @@
require 'spec_helper'
describe Hydra::AccessControls::Visibility do
- module VisibilityOverride
- extend ActiveSupport::Concern
- include Hydra::AccessControls::Permissions
- def visibility; super; end
- def visibility=(value); super(value); end
- end
- class MockParent < ActiveFedora::Base
- include VisibilityOverride
- end
-
describe "setting visibility" do
before do
class Foo < ActiveFedora::Base
include Hydra::AccessControls::Permissions
end
@@ -65,16 +55,49 @@
expect(subject.permissions.map(&:to_hash)).to match_array [
{type: "group", access: "read", name: Hydra::AccessControls::AccessRight::PERMISSION_TEXT_VALUE_PUBLIC } ]
end
end
end
+ end
+ end
+ describe "overiding visibility" do
+ module VisibilityOverride
+ extend ActiveSupport::Concern
+ include Hydra::AccessControls::Permissions
+ def visibility; super; end
+ def visibility=(value); super(value); end
end
+ class MockParent < ActiveFedora::Base
+ include VisibilityOverride
+ end
+ it 'allows for overrides of visibility' do
+ expect {
+ MockParent.new(visibility: Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PRIVATE)
+ }.to_not raise_error
+ end
end
- it 'allows for overrides of visibility' do
- expect{
- MockParent.new(visibility: Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PRIVATE)
- }.to_not raise_error
+ context "when represented_visibility is overridden" do
+ let(:model) { MockObject.new }
+ before do
+ class MockObject < ActiveFedora::Base
+ include Hydra::AccessControls::Permissions
+ def represented_visibility
+ ['one']
+ end
+ end
+
+ model.read_groups = ['one', 'another']
+ end
+
+ after do
+ Object.send(:remove_const, :MockObject)
+ end
+
+ it "replaces the represented visibility" do
+ model.visibility = Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PUBLIC
+ expect(model.read_groups).to contain_exactly 'public', 'another'
+ end
end
end