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