mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-21 06:09:38 +02:00
50 lines
1.6 KiB
Ruby
50 lines
1.6 KiB
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
require "test_helper"
|
||
|
|
||
|
class OauthBasicTest < ActionDispatch::IntegrationTest
|
||
|
test "oauth authorization endpoint requires authentication" do
|
||
|
oauth_app = Doorkeeper::Application.create!(
|
||
|
name: "Test API Client",
|
||
|
redirect_uri: "https://client.example.com/callback",
|
||
|
scopes: "read"
|
||
|
)
|
||
|
|
||
|
get "/oauth/authorize?client_id=#{oauth_app.uid}&redirect_uri=#{CGI.escape(oauth_app.redirect_uri)}&response_type=code&scope=read"
|
||
|
|
||
|
# Should redirect to login page when not authenticated
|
||
|
assert_redirected_to new_session_path
|
||
|
end
|
||
|
|
||
|
test "oauth token endpoint exists and handles requests" do
|
||
|
post "/oauth/token", params: {
|
||
|
grant_type: "authorization_code",
|
||
|
code: "invalid_code",
|
||
|
redirect_uri: "https://example.com/callback",
|
||
|
client_id: "invalid_client"
|
||
|
}
|
||
|
|
||
|
# Should return 401 for invalid client (correct OAuth behavior)
|
||
|
assert_response :unauthorized
|
||
|
response_body = JSON.parse(response.body)
|
||
|
assert_equal "invalid_client", response_body["error"]
|
||
|
end
|
||
|
|
||
|
test "oauth applications can be created" do
|
||
|
assert_difference("Doorkeeper::Application.count") do
|
||
|
Doorkeeper::Application.create!(
|
||
|
name: "Test App",
|
||
|
redirect_uri: "https://example.com/callback",
|
||
|
scopes: "read"
|
||
|
)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
test "doorkeeper configuration is properly set up" do
|
||
|
# Test that Doorkeeper is configured and working
|
||
|
assert Doorkeeper.configuration.present?, "Doorkeeper configuration should exist"
|
||
|
assert_equal 1.year, Doorkeeper.configuration.access_token_expires_in
|
||
|
assert_equal "read", Doorkeeper.configuration.default_scopes.first.to_s
|
||
|
end
|
||
|
end
|