Commit 0d7cb00

mokha <mokha@cisco.com>
2019-01-12 17:35:25
exclude write only values that are nil
1 parent 7bdb077
Changed files (4)
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) }