Sha256: 867c3a004d7be3fc38821c35a2d7f6601185b2a990c1e1139f8eaf1e7e5ec260

Contents?: true

Size: 1.87 KB

Versions: 37

Compression:

Stored size: 1.87 KB

Contents

require 'spec_helper'

RSpec.describe Scimitar::Engine do
  before :each do
    allow_any_instance_of(Scimitar::ApplicationController).to receive(:authenticated?).and_return(true)
  end

  context 'parameter parser' do

    # "params" given here as a String, expecting the engine's custom parser to
    # decode it for us.
    #
    it 'decodes simple JSON', type: :model do
      post '/Users.scim', params: '{"userName": "foo"}', headers: { 'CONTENT_TYPE' => 'application/scim+json' }

      expect(response.status).to eql(201)
      expect(JSON.parse(response.body)['userName']).to eql('foo')
    end

    it 'decodes nested JSON', type: :model do
      post '/Users.scim', params: '{"userName": "foo", "name": {"givenName": "bar", "familyName": "baz"}}', headers: { 'CONTENT_TYPE' => 'application/scim+json' }

      expect(response.status).to eql(201)
      expect(JSON.parse(response.body)['userName']).to eql('foo')
      expect(JSON.parse(response.body)['name']['givenName']).to eql('bar')
      expect(JSON.parse(response.body)['name']['familyName']).to eql('baz')
    end

    it 'is case insensitive at the top level', type: :model do
      post '/Users.scim', params: '{"USERNAME": "foo"}', headers: { 'CONTENT_TYPE' => 'application/scim+json' }

      expect(response.status).to eql(201)
      expect(JSON.parse(response.body)['userName']).to eql('foo')
    end

    it 'is case insensitive in nested levels', type: :model do
      post '/Users.scim', params: '{"USERNAME": "foo", "NAME": {"GIVENNAME": "bar", "FAMILYNAME": "baz"}}', headers: { 'CONTENT_TYPE' => 'application/scim+json' }

      expect(response.status).to eql(201)
      expect(JSON.parse(response.body)['userName']).to eql('foo')
      expect(JSON.parse(response.body)['name']['givenName']).to eql('bar')
      expect(JSON.parse(response.body)['name']['familyName']).to eql('baz')
    end
  end # "context 'parameter parser' do"
end

Version data entries

37 entries across 37 versions & 2 rubygems

Version Path
scimitar-2.8.0 spec/requests/engine_spec.rb
scimitar-2.7.3 spec/requests/engine_spec.rb
powerhome-scimitar-1.0.0 spec/requests/engine_spec.rb
scimitar-2.7.2 spec/requests/engine_spec.rb
scimitar-1.8.2 spec/requests/engine_spec.rb
scimitar-1.8.1 spec/requests/engine_spec.rb
scimitar-2.7.1 spec/requests/engine_spec.rb
scimitar-1.8.0 spec/requests/engine_spec.rb
scimitar-2.7.0 spec/requests/engine_spec.rb
scimitar-1.7.1 spec/requests/engine_spec.rb
scimitar-2.6.1 spec/requests/engine_spec.rb
scimitar-1.7.0 spec/requests/engine_spec.rb
scimitar-2.6.0 spec/requests/engine_spec.rb
scimitar-1.6.0 spec/requests/engine_spec.rb
scimitar-2.5.0 spec/requests/engine_spec.rb
scimitar-2.4.3 spec/requests/engine_spec.rb
scimitar-1.5.3 spec/requests/engine_spec.rb
scimitar-1.5.2 spec/requests/engine_spec.rb
scimitar-2.4.2 spec/requests/engine_spec.rb
scimitar-2.4.1 spec/requests/engine_spec.rb