Commit 2d40104

mo <mo.khan@gmail.com>
2019-01-04 23:28:36
add other supportable features
1 parent 1ce0672
lib/scim/kit/v2/templates/service_provider_configuration.json.jbuilder
@@ -4,7 +4,7 @@ json.key_format! camelize: :lower
 json.schemas [Scim::Kit::V2::Schema::SERVICE_PROVIDER_CONFIGURATION]
 json.documentation_uri documentation_uri
 json.patch do
-  json.supported false
+  render patch, json: json
 end
 json.bulk do
   json.supported false
@@ -13,10 +13,10 @@ json.filter do
   json.supported false
 end
 json.change_password do
-  json.supported false
+  render change_password, json: json
 end
 json.sort do
-  json.supported false
+  render sort, json: json
 end
 json.etag do
   render etag, json: json
lib/scim/kit/v2/service_provider_configuration.rb
@@ -10,13 +10,16 @@ module Scim
         attr_accessor :documentation_uri
         attr_accessor :created, :last_modified, :version
         attr_reader :authentication_schemes
-        attr_reader :etag
+        attr_reader :etag, :sort, :change_password, :patch
 
         def initialize(location:)
           @location = location
           @version = @created = @last_modified = Time.now
           @authentication_schemes = []
           @etag = Supportable.new
+          @sort = Supportable.new
+          @change_password = Supportable.new
+          @patch = Supportable.new
         end
 
         def add_authentication(type)
spec/scim/kit/v2/service_provider_configuration_spec.rb
@@ -70,11 +70,27 @@ RSpec.describe Scim::Kit::V2::ServiceProviderConfiguration do
     end
 
     context "with etag support" do
-      before do
-        subject.etag.supported = true
-      end
+      before { subject.etag.supported = true }
 
       specify { expect(result[:etag][:supported]).to be(true) }
     end
+
+    context "with sort support" do
+      before { subject.sort.supported = true }
+
+      specify { expect(result[:sort][:supported]).to be(true) }
+    end
+
+    context "with change_password support" do
+      before { subject.change_password.supported = true }
+
+      specify { expect(result[:changePassword][:supported]).to be(true) }
+    end
+
+    context "with patch support" do
+      before { subject.patch.supported = true }
+
+      specify { expect(result[:patch][:supported]).to be(true) }
+    end
   end
 end