From 72f184d9b0eb92bca6cbcab606e3b6af98958cd7 Mon Sep 17 00:00:00 2001 From: olegphenomenon Date: Mon, 13 Dec 2021 10:54:09 +0200 Subject: [PATCH] test refactoring --- app/controllers/admin/api_users_controller.rb | 13 ++--- .../admin/registrars_controller.rb | 12 ++--- .../accreditation_results_controller.rb | 50 +++++++++---------- app/jobs/sync_accredited_users_job.rb | 19 ++----- db/structure.sql | 2 - test/integration/admin_area/api_users_test.rb | 18 ++++--- .../integration/admin_area/registrars_test.rb | 24 +++++---- 7 files changed, 65 insertions(+), 73 deletions(-) diff --git a/app/controllers/admin/api_users_controller.rb b/app/controllers/admin/api_users_controller.rb index 01ac6ae88..9e4111c9f 100644 --- a/app/controllers/admin/api_users_controller.rb +++ b/app/controllers/admin/api_users_controller.rb @@ -17,8 +17,7 @@ module Admin if @api_user.valid? @api_user.save! - redirect_to admin_registrar_api_user_path(@api_user.registrar, @api_user), - notice: t('.created') + redirect_to admin_registrar_api_user_path(@api_user.registrar, @api_user), notice: t('.created') else render 'new' end @@ -35,8 +34,7 @@ module Admin if @api_user.valid? @api_user.save! - redirect_to admin_registrar_api_user_path(@api_user.registrar, @api_user), - notice: t('.updated') + redirect_to admin_registrar_api_user_path(@api_user.registrar, @api_user), notice: t('.updated') else render 'edit' end @@ -50,7 +48,7 @@ module Admin def set_test_date_to_api_user user_api = User.find(params[:user_api_id]) - uri = URI.parse((ENV['registry_demo_registrar_api_user_url'] || 'http://testapi.test') + "?username=#{user_api.username}&identity_code=#{user_api.identity_code}") + uri = URI.parse((ENV['registry_demo_registrar_api_user_url']) + "?username=#{user_api.username}&identity_code=#{user_api.identity_code}") response = base_get_request(uri: uri, port: ENV['registry_demo_registrar_port']) @@ -58,9 +56,8 @@ module Admin result = JSON.parse(response.body) demo_user_api = result['user_api'] - Actions::RecordDateOfTest.record_result_to_api_user( - api_user:user_api, - date: demo_user_api['accreditation_date']) unless demo_user_api.empty? + Actions::RecordDateOfTest.record_result_to_api_user(api_user:user_api, + date: demo_user_api['accreditation_date']) unless demo_user_api.empty? return redirect_to request.referrer, notice: 'User Api found' else return redirect_to request.referrer, notice: 'User Api no found or not accriditated yet' diff --git a/app/controllers/admin/registrars_controller.rb b/app/controllers/admin/registrars_controller.rb index bc8c7e600..b552a8cb3 100644 --- a/app/controllers/admin/registrars_controller.rb +++ b/app/controllers/admin/registrars_controller.rb @@ -60,17 +60,17 @@ module Admin def set_test_date registrar = Registrar.find(params[:registrar_id]) - uri = URI.parse((ENV['registry_demo_registrar_results_url'] || 'http://testapi.test') + "?registrar_name=#{registrar.name}") + uri = URI.parse((ENV['registry_demo_registrar_results_url']) + "?registrar_name=#{registrar.name}") response = base_get_request(uri: uri, port: ENV['registry_demo_registrar_port']) if response.code == "200" return record_result_for_each_api_user(response: response) else - return redirect_to request.referrer, notice: 'Registrar no found' + return redirect_to request.referer, notice: 'Registrar no found' end - redirect_to request.referrer, notice: 'Something goes wrong' + redirect_to request.referer, notice: 'Something goes wrong' end def remove_test_date @@ -81,7 +81,7 @@ module Admin api.save end - redirect_to request.referrer + redirect_to request.referer end private @@ -90,14 +90,14 @@ module Admin result = JSON.parse(response.body) registrar_users = result['registrar_users'] - return redirect_to request.referrer, notice: 'Registrar found, but not accreditated yet' if registrar_users.empty? + return redirect_to request.referer, notice: 'Registrar found, but not accreditated yet' if registrar_users.empty? registrar_users.each do |api| a = ApiUser.find_by(username: api['username'], identity_code: api['identity_code']) Actions::RecordDateOfTest.record_result_to_api_user(api_user: a, date: api['accreditation_date']) unless a.nil? end - redirect_to request.referrer, notice: 'Registrar found' + redirect_to request.referer, notice: 'Registrar found' end def base_get_request(uri:, port:) diff --git a/app/controllers/repp/v1/registrar/accreditation_results_controller.rb b/app/controllers/repp/v1/registrar/accreditation_results_controller.rb index 4a89e713a..4b5c40467 100644 --- a/app/controllers/repp/v1/registrar/accreditation_results_controller.rb +++ b/app/controllers/repp/v1/registrar/accreditation_results_controller.rb @@ -26,35 +26,35 @@ module Repp user = ApiUser.find_by(username: username) raise ActiveRecord::RecordNotFound if user.nil? + + user.accreditation_date = DateTime.current + user.accreditation_expire_date = user.accreditation_date + EXPIRE_DEADLINE - user.accreditation_date = DateTime.current - user.accreditation_expire_date = user.accreditation_date + EXPIRE_DEADLINE - - if user.save - notify_registrar(user) - notify_admins - render_success(data: { user: user, - result: result, - message: 'Accreditation info successfully added' }) - else - render_failed + if user.save + notify_registrar(user) + notify_admins + render_success(data: { user: user, + result: result, + message: 'Accreditation info successfully added' }) + else + render_failed + end end - end - def notify_registrar(user) - AccreditationCenterMailer.test_was_successfully_passed_registrar(user.registrar.email).deliver_now - end - - def notify_admins - admin_users_emails = User.all.reject { |u| u.roles.nil? } - .select { |u| u.roles.include? 'admin' }.pluck(:email) - - return if admin_users_emails.empty? - - admin_users_emails.each do |email| - AccreditationCenterMailer.test_was_successfully_passed_admin(email).deliver_now + def notify_registrar(user) + AccreditationCenterMailer.test_was_successfully_passed_registrar(user.registrar.email).deliver_now + end + + def notify_admins + admin_users_emails = User.all.reject { |u| u.roles.nil? } + .select { |u| u.roles.include? 'admin' }.pluck(:email) + + return if admin_users_emails.empty? + + admin_users_emails.each do |email| + AccreditationCenterMailer.test_was_successfully_passed_admin(email).deliver_now + end end - end def authenticate_shared_key api_key = "Basic #{TEMPORARY_SECRET_KEY}" diff --git a/app/jobs/sync_accredited_users_job.rb b/app/jobs/sync_accredited_users_job.rb index 8e02956e5..de95b59c8 100644 --- a/app/jobs/sync_accredited_users_job.rb +++ b/app/jobs/sync_accredited_users_job.rb @@ -1,22 +1,11 @@ class SyncAccreditedUsersJob < ApplicationJob def perform - # apiusers_from_test = Actions::GetAccrResultsFromAnotherDb.list_of_accredated_users - - # return if apiusers_from_test.nil? - - # apiusers_from_test.each do |api| - # a = ApiUser.find_by(username: api.username, identity_code: api.identity_code) - # Actions::RecordDateOfTest.record_result_to_api_user(a, api.accreditation_date) unless a.nil? - # end uri = URI.parse(ENV['registry_demo_accredited_users_url']) - response = base_get_request(uri: uri, port: ENV['registry_demo_registrar_port']) - if response.code == "200" + if response.code == '200' result = JSON.parse(response.body) - users = result['users'] - - users.each do |api| + result['users'].each do |api| a = ApiUser.find_by(username: api.username, identity_code: api.identity_code) Actions::RecordDateOfTest.record_result_to_api_user(a, api.accreditation_date) unless a.nil? end @@ -24,7 +13,7 @@ class SyncAccreditedUsersJob < ApplicationJob logger.warn 'User not found' end - return + nil end private @@ -35,4 +24,4 @@ class SyncAccreditedUsersJob < ApplicationJob http.request(req) end -end \ No newline at end of file +end diff --git a/db/structure.sql b/db/structure.sql index 03fca59a8..26515ee8e 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -5416,5 +5416,3 @@ INSERT INTO "schema_migrations" (version) VALUES ('20220504090512'), ('20220524130709'), ('20220818075833'); - - diff --git a/test/integration/admin_area/api_users_test.rb b/test/integration/admin_area/api_users_test.rb index f0ae5620a..3e0af7bad 100644 --- a/test/integration/admin_area/api_users_test.rb +++ b/test/integration/admin_area/api_users_test.rb @@ -4,6 +4,8 @@ class AdminAreaRegistrarsIntegrationTest < ActionDispatch::IntegrationTest include Devise::Test::IntegrationHelpers setup do + ENV['registry_demo_registrar_api_user_url'] = 'http://registry.test:3000/api/v1/accreditation_center/show_api_user' + ENV['registry_demo_registrar_port'] = '3000' @api_user = users(:api_bestnames) sign_in users(:admin) end @@ -22,14 +24,16 @@ class AdminAreaRegistrarsIntegrationTest < ActionDispatch::IntegrationTest assert_equal api_user.accreditation_date, date # api_v1_accreditation_center_show_api_user_url - stub_request(:get, "http://registry.test:3000/api/v1/accreditation_center/show_api_user?identity_code=#{@api_user.identity_code}&username=#{@api_user.username}"). - with( + stub_request(:get, "http://registry.test:3000/api/v1/accreditation_center/show_api_user?username=#{@api_user.username}&identity_code=#{@api_user.identity_code}") + .with( headers: { - 'Accept'=>'*/*', - 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', - 'User-Agent'=>'Ruby' - }).to_return(status: 200, body: { code: 200, user_api: api_user }.to_json, headers: {}) - post set_test_date_to_api_user_admin_registrars_path, params: { user_api_id: @api_user.id }, headers: { "HTTP_REFERER" => root_path } + 'Accept' => '*/*', + 'Accept-Encoding' => 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', + 'User-Agent' => 'Ruby' + } + ) + .to_return(status: 200, body: { code: 200, user_api: api_user }.to_json, headers: {}) + post set_test_date_to_api_user_admin_registrars_path, params: { user_api_id: @api_user.id }, headers: { 'HTTP_REFERER' => root_path } @api_user.reload assert_equal @api_user.accreditation_date.to_date, api_user.accreditation_date.to_date assert_equal @api_user.accreditation_expire_date.to_date, api_user.accreditation_expire_date.to_date diff --git a/test/integration/admin_area/registrars_test.rb b/test/integration/admin_area/registrars_test.rb index 436769963..c0753ebba 100644 --- a/test/integration/admin_area/registrars_test.rb +++ b/test/integration/admin_area/registrars_test.rb @@ -4,6 +4,8 @@ class AdminAreaRegistrarsIntegrationTest < ActionDispatch::IntegrationTest include Devise::Test::IntegrationHelpers setup do + ENV['registry_demo_registrar_results_url'] = 'http://registry.test:3000/api/v1/accreditation_center/results' + ENV['registry_demo_registrar_port'] = '3000' @registrar = registrars(:bestnames) sign_in users(:admin) end @@ -26,18 +28,20 @@ class AdminAreaRegistrarsIntegrationTest < ActionDispatch::IntegrationTest assert_nil @registrar.api_users.first.accreditation_date - stub_request(:get, "http://registry.test:3000/api/v1/accreditation_center/results?registrar_name=#{@registrar.name}"). - with( - headers: { - 'Accept'=>'*/*', - 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', - 'User-Agent'=>'Ruby' - }).to_return(status: 200, body: { code: 200, registrar_users: [api_user] }.to_json, headers: {}) + stub_request(:get, "http://registry.test:3000/api/v1/accreditation_center/results?registrar_name=#{@registrar.name}") + .with( + headers: { + 'Accept' => '*/*', + 'Accept-Encoding' => 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', + 'User-Agent' => 'Ruby' + } + ) + .to_return(status: 200, body: { code: 200, registrar_users: [api_user] }.to_json, headers: {}) - post set_test_date_admin_registrars_path, params: { registrar_id: @registrar.id }, headers: { "HTTP_REFERER" => root_path } + post set_test_date_admin_registrars_path, params: { registrar_id: @registrar.id }, headers: { 'HTTP_REFERER' => root_path } @registrar.reload - assert_equal @registrar.api_users.first.accreditation_date.to_date, api_user.accreditation_date.to_date - assert_equal @registrar.api_users.first.accreditation_expire_date.to_date, api_user.accreditation_expire_date.to_date + assert_equal @registrar.api_users.first.accreditation_date.to_date, api_user.accreditation_date.to_date + assert_equal @registrar.api_users.first.accreditation_expire_date.to_date, api_user.accreditation_expire_date.to_date end end