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