main
1# frozen_string_literal: true
2
3require 'rails_helper'
4
5RSpec.describe "/.well-known/oauth-authorization-server" do
6 describe "GET /.well-known/oauth-authorization-server" do
7 let(:json) { JSON.parse(response.body, symbolize_names: true) }
8
9 before { get "/.well-known/oauth-authorization-server" }
10
11 specify { expect(response).to have_http_status(:ok) }
12 specify { expect(response.content_type).to start_with("application/json") }
13 specify { expect(response.headers['Set-Cookie']).to be_nil }
14 specify { expect(json[:issuer]).to eql(root_url) }
15 specify { expect(json[:authorization_endpoint]).to eql(oauth_authorizations_url) }
16 specify { expect(json[:token_endpoint]).to eql(oauth_tokens_url) }
17 specify { expect(json[:token_endpoint_auth_methods_supported]).to match_array(['client_secret_basic']) }
18 specify { expect(json[:token_endpoint_auth_signing_alg_values_supported]).to match_array(['RS256']) }
19 specify { expect(json[:userinfo_endpoint]).to eql(oauth_me_url) }
20 specify { expect(json[:jwks_uri]).to eql('') }
21 specify { expect(json[:registration_endpoint]).to eql(oauth_clients_url) }
22 specify { expect(json[:scopes_supported]).to match_array([]) }
23 specify { expect(json[:response_types_supported]).to match_array(Client::RESPONSE_TYPES) }
24 specify { expect(json[:service_documentation]).to eql(root_url + 'doc') }
25 specify { expect(json[:ui_locales_supported]).to eql(I18n.available_locales.map(&:to_s)) }
26 end
27end