Commit b66449b
Changed files (4)
lib
scim
shady
builders
spec
scim
builders
lib/scim/shady/builders/resource.rb
@@ -14,8 +14,8 @@ module Scim
'id' => id,
'meta' => {
'resourceType' => self.class.name.split(/::/).last,
- 'created' => created_at.utc.iso8601,
- 'lastModified' => updated_at.utc.iso8601,
+ 'created' => created_at.to_time.utc.iso8601,
+ 'lastModified' => updated_at.to_time.utc.iso8601,
'location' => location,
'version' => version,
},
lib/scim/shady/resource.rb
@@ -26,13 +26,12 @@ module Scim
end
def to_h
- JSON.parse(to_json)
+ @json_hash ||= JSON.parse(to_json)
end
def to_json
@json
end
-
end
end
end
spec/scim/builders/user_spec.rb
@@ -0,0 +1,29 @@
+RSpec.describe Scim::Shady::Builders::User do
+ subject { described_class.new }
+
+ describe ".build" do
+ let(:id) { SecureRandom.uuid }
+ let(:created_at) { Time.now }
+ let(:updated_at) { Time.now }
+ let(:user_url) { FFaker::Internet.uri("https") }
+ let(:user_version) { SecureRandom.uuid }
+ let(:username) { FFaker::Internet.user_name }
+
+ it 'builds a scim user' do
+ subject.id = id
+ subject.username = username
+ subject.created_at = created_at
+ subject.updated_at = updated_at
+ subject.location = user_url
+ subject.version = user_version
+ result = subject.build
+
+ expect(result.id).to eql(id)
+ expect(result.username).to eql(username)
+ expect(result.created).to eql(DateTime.parse(created_at.utc.iso8601))
+ expect(result.last_modified).to eql(DateTime.parse(updated_at.utc.iso8601))
+ expect(result.version).to eql(user_version)
+ expect(result.location).to eql(user_url)
+ end
+ end
+end
spec/scim/user_spec.rb
@@ -30,7 +30,7 @@ RSpec.describe Scim::Shady::User do
end
end
- describe ".build_json" do
+ describe ".to_json" do
subject { described_class }
it 'produces valid json' do