Commit 0d7cb00
Changed files (4)
lib
scim
kit
spec
scim
lib/scim/kit/v2/attribute.rb
@@ -34,6 +34,7 @@ module Scim
def renderable?
return false if read_only? && _resource.mode?(:client)
return false if write_only? && _resource.mode?(:server)
+ return false if write_only? && _value.nil?
true
end
lib/scim/kit/v2/attribute_type.rb
@@ -63,6 +63,7 @@ module Scim
end
def coerce(value)
+ return value if value.nil?
return value if complex?
if multi_valued
spec/scim/kit/v2/attribute_spec.rb
@@ -297,7 +297,15 @@ RSpec.describe Scim::Kit::V2::Attribute do
context 'when the type is write only' do
before { type.mutability = :write_only }
- specify { expect(subject).to be_renderable }
+ specify do
+ subject._value = 'hello'
+ expect(subject).to be_renderable
+ end
+
+ specify do
+ subject._value = nil
+ expect(subject).not_to be_renderable
+ end
end
end
end
spec/scim/kit/v2/resource_spec.rb
@@ -254,7 +254,10 @@ RSpec.describe Scim::Kit::V2::Resource do
let(:external_id) { SecureRandom.uuid }
- before { subject.external_id = external_id }
+ before do
+ subject.password = FFaker::Internet.password
+ subject.external_id = external_id
+ end
specify { expect(subject.to_h.key?(:id)).to be(false) }
specify { expect(subject.to_h.key?(:externalId)).to be(true) }