mirror of
https://github.com/internetee/registry.git
synced 2025-08-03 08:22:05 +02:00
New contact list for REPP
This commit is contained in:
parent
4453fbe302
commit
2438e1e052
3 changed files with 73 additions and 18 deletions
|
@ -4,30 +4,79 @@ describe Repp::ContactV1 do
|
|||
before :all do
|
||||
create_settings
|
||||
@api_user = Fabricate(:gitlab_api_user)
|
||||
Fabricate.times(2, :contact, registrar: @api_user.registrar)
|
||||
Fabricate.times(2, :contact)
|
||||
end
|
||||
|
||||
describe 'GET /repp/v1/contacts', autodoc: true do
|
||||
it 'returns contacts of the current registrar' do
|
||||
Fabricate.times(2, :contact, registrar: @api_user.registrar)
|
||||
Fabricate.times(2, :contact)
|
||||
|
||||
get_with_auth '/repp/v1/contacts', { page: 1 }, @api_user
|
||||
get_with_auth '/repp/v1/contacts', { limit: 1, details: true }, @api_user
|
||||
expect(response.status).to eq(200)
|
||||
|
||||
body = JSON.parse(response.body)
|
||||
expect(body['total_pages']).to eq(1)
|
||||
body['total_number_of_records'].should == 2
|
||||
|
||||
# TODO: Maybe there is a way not to convert from and to json again
|
||||
expect(body['contacts'].to_json).to eq(@api_user.registrar.contacts.to_json)
|
||||
expect(body['contacts'].to_json).to eq(@api_user.registrar.contacts.limit(1).to_json)
|
||||
|
||||
log = ApiLog::ReppLog.first
|
||||
log = ApiLog::ReppLog.last
|
||||
expect(log[:request_path]).to eq('/repp/v1/contacts')
|
||||
expect(log[:request_method]).to eq('GET')
|
||||
expect(log[:request_params]).to eq('{"page":"1"}')
|
||||
expect(log[:request_params]).to eq('{"limit":1,"details":"true"}')
|
||||
expect(log[:response].length).to be > 20
|
||||
expect(log[:response_code]).to eq('200')
|
||||
expect(log[:api_user_name]).to eq('gitlab')
|
||||
expect(log[:ip]).to eq('127.0.0.1')
|
||||
end
|
||||
|
||||
it 'returns contact names with offset' do
|
||||
get_with_auth '/repp/v1/contacts', { offset: 1 }, @api_user
|
||||
expect(response.status).to eq(200)
|
||||
|
||||
body = JSON.parse(response.body)
|
||||
body['total_number_of_records'].should == 2
|
||||
|
||||
# TODO: Maybe there is a way not to convert from and to json again
|
||||
expect(body['contacts'].to_json).to eq(@api_user.registrar.contacts.offset(1).pluck(:code).to_json)
|
||||
|
||||
log = ApiLog::ReppLog.last
|
||||
expect(log[:request_path]).to eq('/repp/v1/contacts')
|
||||
expect(log[:request_method]).to eq('GET')
|
||||
expect(log[:request_params]).to eq('{"offset":1}')
|
||||
expect(log[:response].length).to be > 20
|
||||
expect(log[:response_code]).to eq('200')
|
||||
expect(log[:api_user_name]).to eq('gitlab')
|
||||
expect(log[:ip]).to eq('127.0.0.1')
|
||||
end
|
||||
|
||||
it 'returns contact names of the current registrar' do
|
||||
get_with_auth '/repp/v1/contacts', {}, @api_user
|
||||
expect(response.status).to eq(200)
|
||||
|
||||
body = JSON.parse(response.body)
|
||||
body['total_number_of_records'].should == 2
|
||||
|
||||
# TODO: Maybe there is a way not to convert from and to json again
|
||||
expect(body['contacts'].to_json).to eq(@api_user.registrar.contacts.pluck(:code).to_json)
|
||||
|
||||
log = ApiLog::ReppLog.last
|
||||
expect(log[:request_path]).to eq('/repp/v1/contacts')
|
||||
expect(log[:request_method]).to eq('GET')
|
||||
expect(log[:request_params]).to eq('{}')
|
||||
expect(log[:response].length).to be > 20
|
||||
expect(log[:response_code]).to eq('200')
|
||||
expect(log[:api_user_name]).to eq('gitlab')
|
||||
expect(log[:ip]).to eq('127.0.0.1')
|
||||
end
|
||||
|
||||
it 'returns an error with invalid parameters in contact index' do
|
||||
get_with_auth '/repp/v1/contacts', { limit: 0 }, @api_user
|
||||
expect(response.status).to eq(400)
|
||||
|
||||
body = JSON.parse(response.body)
|
||||
body['error'].should == 'limit does not have a valid value'
|
||||
|
||||
# TODO: Log failed API requests too
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue