main
 1# frozen_string_literal: true
 2
 3require 'rails_helper'
 4
 5RSpec.describe "/scim/v2/Schemas" do
 6  let(:headers) do
 7    {
 8      'Accept' => Mime[:scim].to_s,
 9      'Content-Type' => Mime[:scim].to_s,
10    }
11  end
12
13  describe "GET scim/v2/Schemas" do
14    let(:json) { JSON.parse(response.body, symbolize_names: true) }
15
16    before { get "/scim/v2/schemas", headers: headers }
17
18    specify { expect(response).to have_http_status(:ok) }
19    specify { expect(json.count).to be(2) }
20    specify { expect(json[0][:id]).to eql('urn:ietf:params:scim:schemas:core:2.0:User') }
21    specify { expect(json[1][:id]).to eql('urn:ietf:params:scim:schemas:core:2.0:Group') }
22  end
23
24  describe "GET /Schemas/urn:ietf:params:scim:schemas:core:2.0:User" do
25    let(:json) { JSON.parse(response.body, symbolize_names: true) }
26
27    before { get "/scim/v2/schemas/urn:ietf:params:scim:schemas:core:2.0:User", headers: headers }
28
29    specify { expect(response).to have_http_status(:ok) }
30    specify { expect(json[:id]).to eql('urn:ietf:params:scim:schemas:core:2.0:User') }
31    specify { expect(json[:meta][:location]).to eql(scim_v2_schema_url(id: 'urn:ietf:params:scim:schemas:core:2.0:User')) }
32  end
33
34  describe "GET /Schemas/urn:ietf:params:scim:schemas:core:2.0:Group" do
35    let(:json) { JSON.parse(response.body, symbolize_names: true) }
36
37    before { get "/scim/v2/schemas/urn:ietf:params:scim:schemas:core:2.0:Group", headers: headers }
38
39    specify { expect(response).to have_http_status(:ok) }
40    specify { expect(json[:id]).to eql('urn:ietf:params:scim:schemas:core:2.0:Group') }
41    specify { expect(json[:meta][:location]).to eql(scim_v2_schema_url(id: 'urn:ietf:params:scim:schemas:core:2.0:Group')) }
42  end
43end