mirror of
https://github.com/internetee/registry.git
synced 2025-06-07 05:05:45 +02:00
REPP: Authentication test
This commit is contained in:
parent
2a136a776f
commit
87dff41a4e
5 changed files with 58 additions and 4 deletions
|
@ -76,7 +76,8 @@ module Repp
|
||||||
def basic_token
|
def basic_token
|
||||||
pattern = /^Basic /
|
pattern = /^Basic /
|
||||||
header = request.headers['Authorization']
|
header = request.headers['Authorization']
|
||||||
header.gsub(pattern, '') if header&.match(pattern)
|
header = header.gsub(pattern, '') if header&.match(pattern)
|
||||||
|
header.strip
|
||||||
end
|
end
|
||||||
|
|
||||||
def authenticate_user
|
def authenticate_user
|
||||||
|
@ -85,9 +86,12 @@ module Repp
|
||||||
|
|
||||||
return if @current_user
|
return if @current_user
|
||||||
|
|
||||||
render(json: { errors: [{ base: ['Not authorized'] }] }, status: :unauthorized)
|
raise(ArgumentError)
|
||||||
rescue NoMethodError
|
rescue NoMethodError, ArgumentError
|
||||||
render(json: { errors: [{ base: ['Not authorized'] }] }, status: :unauthorized)
|
render(
|
||||||
|
json: { code: 2202, message: 'Invalid authorization information' },
|
||||||
|
status: :unauthorized
|
||||||
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_ip_restriction
|
def check_ip_restriction
|
||||||
|
|
26
test/integration/repp/v1/base_test.rb
Normal file
26
test/integration/repp/v1/base_test.rb
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
require 'test_helper'
|
||||||
|
|
||||||
|
class ReppV1BaseTest < ActionDispatch::IntegrationTest
|
||||||
|
def setup
|
||||||
|
@registrant = users(:api_bestnames)
|
||||||
|
token = Base64.encode64("#{@registrant.username}:#{@registrant.plain_text_password}")
|
||||||
|
token = "Basic #{token}"
|
||||||
|
|
||||||
|
@auth_headers = { 'Authorization' => token }
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_unauthorized_user_has_no_access
|
||||||
|
get repp_v1_contacts_path
|
||||||
|
response_json = JSON.parse(response.body, symbolize_names: true)
|
||||||
|
|
||||||
|
assert_response :unauthorized
|
||||||
|
assert_equal 'Invalid authorization information', response_json[:message]
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_authenticates_valid_user
|
||||||
|
get repp_v1_contacts_path, headers: @auth_headers
|
||||||
|
response_json = JSON.parse(response.body, symbolize_names: true)
|
||||||
|
|
||||||
|
assert_response :ok
|
||||||
|
end
|
||||||
|
end
|
24
test/integration/repp/v1/contacts_test.rb
Normal file
24
test/integration/repp/v1/contacts_test.rb
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
require 'test_helper'
|
||||||
|
|
||||||
|
class ReppV1ContactsTest < ActionDispatch::IntegrationTest
|
||||||
|
def setup
|
||||||
|
@auction = auctions(:one)
|
||||||
|
@auction.update!(uuid: '1b3ee442-e8fe-4922-9492-8fcb9dccc69c',
|
||||||
|
domain: 'auction.test',
|
||||||
|
status: Auction.statuses[:started])
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_get_index
|
||||||
|
get repp_v1_contacts_path
|
||||||
|
response_json = JSON.parse(response.body, symbolize_names: true)
|
||||||
|
|
||||||
|
puts response_json
|
||||||
|
|
||||||
|
assert response_json[:count] == 1
|
||||||
|
|
||||||
|
expected_response = [{ domain_name: @auction.domain,
|
||||||
|
punycode_domain_name: @auction.domain }]
|
||||||
|
|
||||||
|
assert_equal expected_response, response_json[:auctions]
|
||||||
|
end
|
||||||
|
end
|
Loading…
Add table
Add a link
Reference in a new issue