Add admin mailers and tests to white_ips

This commit is contained in:
Sergei Tsoganov 2023-07-10 09:51:56 +03:00
parent 149cbb6138
commit f68d8e91c2
8 changed files with 45 additions and 6 deletions

View file

@ -58,7 +58,7 @@ module Repp
return
end
uncommit_and_notify_admins(ip: ip, action: 'deleted') if ip.interfaces.include?(WhiteIp::API)
uncommit_and_notify_admins(ip: ip, action: 'deleted') if api_interface?(ip)
render_success
end

View file

@ -1,6 +1,7 @@
<p>This email is to inform you that an API Whitelisted IP address was deleted by Registrar Portal API user. Please review the details below:</p>
<ul>
<li>Registrar: <%= @api_user.registrar.name %></li>
<li>API User: <%= @api_user.username %></li>
<li>IP Address: <%= @white_ip.ipv4.presence || @white_ip.ipv6 %></li>
<li>Interface: <%= @white_ip.interfaces.join(', ') %></li>

View file

@ -1,5 +1,6 @@
This email is to inform you about an API Whitelisted IP address change by Registrar Portal API user. Please review the details below:
Registrar: <%= @api_user.registrar.name %>
API User: <%= @api_user.username %>
IP Address: <%= @white_ip.ipv4.presence || @white_ip.ipv6 %>
Interface: <%= @white_ip.interfaces.join(', ') %>

View file

@ -1,6 +1,7 @@
<p>This email is to inform you about an API Whitelisted IP address change by Registrar Portal API user. Please review the details below:</p>
<ul>
<li>Registrar: <%= @api_user.registrar.name %></li>
<li>API User: <%= @api_user.username %></li>
<li>IP Address: <%= @white_ip.ipv4.presence || @white_ip.ipv6 %></li>
<li>Interface: <%= @white_ip.interfaces.join(', ') %></li>

View file

@ -1,5 +1,6 @@
This email is to inform you about an API Whitelisted IP address change by Registrar Portal API user. Please review the details below:
Registrar: <%= @api_user.registrar.name %>
API User: <%= @api_user.username %>
IP Address: <%= @white_ip.ipv4.presence || @white_ip.ipv6 %>
Interface: <%= @white_ip.interfaces.join(', ') %>

View file

@ -16,7 +16,7 @@ class ReppV1WhiteIpsCreateTest < ActionDispatch::IntegrationTest
request_body = {
white_ip: {
address: '127.1.1.1',
interfaces: ['API'],
interfaces: ['api'],
},
}
@ -31,13 +31,41 @@ class ReppV1WhiteIpsCreateTest < ActionDispatch::IntegrationTest
assert white_ip.present?
assert_equal(request_body[:white_ip][:address], white_ip.ipv4)
refute white_ip.committed
last_email = ActionMailer::Base.deliveries.last
assert last_email.subject.include?('Whitelisted IP Address Change Notification')
end
def test_creates_new_white_ip_with_registrar_interface
request_body = {
white_ip: {
address: '127.1.1.1',
interfaces: ['registrar'],
},
}
post '/repp/v1/white_ips', headers: @auth_headers, params: request_body
json = JSON.parse(response.body, symbolize_names: true)
assert_response :ok
assert_equal 1000, json[:code]
assert_equal 'Command completed successfully', json[:message]
white_ip = WhiteIp.find(json[:data][:ip][:id])
assert white_ip.present?
assert_equal(request_body[:white_ip][:address], white_ip.ipv4)
assert white_ip.committed
refute ActionMailer::Base.deliveries.last
end
def test_validates_ip_max_count
request_body = {
white_ip: {
address: '2001:db8::/120',
interfaces: ['API'],
interfaces: ['api'],
},
}
@ -55,7 +83,7 @@ class ReppV1WhiteIpsCreateTest < ActionDispatch::IntegrationTest
request_body = {
white_ip: {
address: '127.0.0.1',
interfaces: ['API'],
interfaces: ['api'],
},
}

View file

@ -21,6 +21,9 @@ class ReppV1WhiteIpsDeleteTest < ActionDispatch::IntegrationTest
assert_equal 1000, json[:code]
assert_equal 'Command completed successfully', json[:message]
refute WhiteIp.exists?(ip.id)
last_email = ActionMailer::Base.deliveries.last
assert last_email.subject.include?('Whitelisted IP Address Removal Notification')
end
def test_returns_error_response_if_throttled

View file

@ -16,7 +16,7 @@ class ReppV1ApiWhiteIpsUpdateTest < ActionDispatch::IntegrationTest
def test_updates_white_ip
request_body = {
white_ip: {
address: '127.0.0.1',
address: '127.0.0.2',
},
}
@ -28,7 +28,11 @@ class ReppV1ApiWhiteIpsUpdateTest < ActionDispatch::IntegrationTest
assert_equal 'Command completed successfully', json[:message]
ip = WhiteIp.find(json[:data][:ip][:id])
assert_equal ip.ipv4, @white_ip.ipv4
assert_equal ip.ipv4, '127.0.0.2'
refute ip.committed
last_email = ActionMailer::Base.deliveries.last
assert last_email.subject.include?('Whitelisted IP Address Change Notification')
end
def test_returns_error_if_ipv4_wrong_format