From 0c96d58711f681863cde4d4def6ae9c6e28b7d93 Mon Sep 17 00:00:00 2001 From: Emily Nguyen Date: Thu, 19 Sep 2024 14:43:14 -0500 Subject: [PATCH 01/20] vi-35 ToU check agreement changed --- .../sign_up_service_updater_job.rb | 42 +++++++++++++++++-- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb b/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb index e7621ae601a..6154245c860 100644 --- a/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb +++ b/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb @@ -33,7 +33,7 @@ def perform(user_account_uuid, version) @user_account_uuid = user_account_uuid @version = version - return unless sec_id? + return if !sec_id? || agreement_unchanged? log_updated_icn terms_of_use_agreement.accepted? ? accept : decline @@ -48,12 +48,48 @@ def log_updated_icn end end + def client + @client ||= MAP::SignUp::Service.new + end + + def status + @status ||= client.status(icn: mpi_profile.icn) + end + + def declined? + status[:opt_out] == true + end + + def accepted? + status[:agreement_signed] == true + end + + def agreement_changed? + return true unless terms_of_use_agreement + + changed = (terms_of_use_agreement.declined && !declined?) || (terms_of_use_agreement.accepted && !accepted?) + + unless changed Rails.logger.info("#{LOG_TITLE} Agreement not changed", + { icn: user_account.icn }) + changed + end + + def agreement_unchanged? + return false unless terms_of_use_agreement + + unchanged = (terms_of_use_agreement.declined && declined?) && (terms_of_use_agreement.accepted && accepted?) + + if unchanged Rails.logger.info("#{LOG_TITLE} Agreement not changed", + { icn: user_account.icn }) + unchanged + end + def accept - MAP::SignUp::Service.new.agreements_accept(icn: mpi_profile.icn, signature_name:, version:) + client.agreements_accept(icn: mpi_profile.icn, signature_name:, version:) end def decline - MAP::SignUp::Service.new.agreements_decline(icn: mpi_profile.icn) + client.agreements_decline(icn: mpi_profile.icn) end def sec_id? From f6bbcb8ca897d9e52cf0a476052fdeb046ca7f58 Mon Sep 17 00:00:00 2001 From: Emily Nguyen Date: Tue, 24 Sep 2024 12:12:45 -0500 Subject: [PATCH 02/20] add test for nil case --- .../terms_of_use/sign_up_service_updater_job.rb | 16 ++++------------ .../sign_up_service_updater_job_spec.rb | 10 ++++++++++ 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb b/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb index 6154245c860..694a178b5ce 100644 --- a/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb +++ b/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb @@ -64,23 +64,15 @@ def accepted? status[:agreement_signed] == true end - def agreement_changed? - return true unless terms_of_use_agreement - - changed = (terms_of_use_agreement.declined && !declined?) || (terms_of_use_agreement.accepted && !accepted?) - - unless changed Rails.logger.info("#{LOG_TITLE} Agreement not changed", - { icn: user_account.icn }) - changed - end - def agreement_unchanged? return false unless terms_of_use_agreement - unchanged = (terms_of_use_agreement.declined && declined?) && (terms_of_use_agreement.accepted && accepted?) + unchanged = (terms_of_use_agreement.declined? && declined?) && (terms_of_use_agreement.accepted? && accepted?) - if unchanged Rails.logger.info("#{LOG_TITLE} Agreement not changed", + if unchanged == true + Rails.logger.info("#{LOG_TITLE} Agreement not changed", { icn: user_account.icn }) + end unchanged end diff --git a/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb b/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb index 08f1e09c048..57646d1f4d6 100644 --- a/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb +++ b/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb @@ -184,6 +184,16 @@ end end + context 'when there is no terms of use agreement' do + before do + allow(job).to receive(:terms_of_use_agreement).and_return(nil) + end + + it 'agreement_unchanged? returns false' do + expect(job.send(:agreement_unchanged?)).to be_falsey + end + end + context 'when sec_id is not present' do let(:sec_id) { nil } let(:expected_log) do From 6e66c84201863c2dca1765f42a4d47b59d5afddc Mon Sep 17 00:00:00 2001 From: Emily Nguyen Date: Tue, 24 Sep 2024 12:34:02 -0500 Subject: [PATCH 03/20] address rubocop --- spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb b/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb index 57646d1f4d6..ea2f399cbdb 100644 --- a/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb +++ b/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb @@ -185,7 +185,7 @@ end context 'when there is no terms of use agreement' do - before do + before do allow(job).to receive(:terms_of_use_agreement).and_return(nil) end From d4783cdd14b9fb42e6d716844659150e4b1f133a Mon Sep 17 00:00:00 2001 From: Emily Nguyen Date: Tue, 24 Sep 2024 12:53:49 -0500 Subject: [PATCH 04/20] address rubocop for job --- app/sidekiq/terms_of_use/sign_up_service_updater_job.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb b/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb index 694a178b5ce..3f336e55d65 100644 --- a/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb +++ b/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb @@ -71,7 +71,7 @@ def agreement_unchanged? if unchanged == true Rails.logger.info("#{LOG_TITLE} Agreement not changed", - { icn: user_account.icn }) + { icn: user_account.icn }) end unchanged end From ba1c2f1ee64b1f428a884b06abbcce3ff1e707c4 Mon Sep 17 00:00:00 2001 From: Emily Nguyen Date: Thu, 26 Sep 2024 09:38:51 -0500 Subject: [PATCH 05/20] rspec for decline/accept conditions --- .../sign_up_service_updater_job.rb | 2 +- .../sign_up_service_updater_job_spec.rb | 54 +++++++++++++++++-- 2 files changed, 52 insertions(+), 4 deletions(-) diff --git a/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb b/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb index 3f336e55d65..feb0a7885dd 100644 --- a/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb +++ b/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb @@ -67,7 +67,7 @@ def accepted? def agreement_unchanged? return false unless terms_of_use_agreement - unchanged = (terms_of_use_agreement.declined? && declined?) && (terms_of_use_agreement.accepted? && accepted?) + unchanged = (terms_of_use_agreement.declined? == declined?) && (terms_of_use_agreement.accepted? == accepted?) if unchanged == true Rails.logger.info("#{LOG_TITLE} Agreement not changed", diff --git a/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb b/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb index ea2f399cbdb..1e7ae7f906f 100644 --- a/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb +++ b/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb @@ -184,16 +184,64 @@ end end - context 'when there is no terms of use agreement' do + context 'when agreement is changed by ToU acceptance' do + let(:response) { 'accepted' } + let(:status) { { opt_out: true, agreement_signed: false } } + + before do + allow(service_instance).to receive(:agreements_accept) + allow(service_instance).to receive(:status).and_return(status) + end + + it 'agreement_unchanged returns false' do + job.perform(user_account_uuid, version) + + expect(job.send(:agreement_unchanged?)).to be_falsey + end + end + + context 'when agreement is changed by ToU being declined' do + let(:response) { 'declined' } + let(:status) { { opt_out: false, agreement_signed: true } } + before do - allow(job).to receive(:terms_of_use_agreement).and_return(nil) + allow(service_instance).to receive(:agreements_decline) + allow(service_instance).to receive(:status).and_return(status) end - it 'agreement_unchanged? returns false' do + it 'agreement_unchanged returns false' do + job.perform(user_account_uuid, version) + expect(job.send(:agreement_unchanged?)).to be_falsey end end + context 'when agreement is unchanged' do + let(:expected_log) do + '[TermsOfUse][SignUpServiceUpdaterJob] Agreement not changed' + end + let(:status) { { opt_out: false, agreement_signed: true } } + + before do + allow(service_instance).to receive(:agreements_accept) + allow(terms_of_use_agreement).to receive(:accepted?).and_return(true) + allow(service_instance).to receive(:status).and_return(status) + end + + it 'returns true when the agreement is unchanged' do + job.perform(user_account_uuid, version) + + expect(job.send(:agreement_unchanged?)).to be_truthy + end + + it 'logs that the agreement is not changed' do + job.perform(user_account_uuid, version) + + expect(Rails.logger).to receive(:info).with(expected_log, { icn: user_account.icn }) + expect(job.send(:agreement_unchanged?)).to be_truthy + end + end + context 'when sec_id is not present' do let(:sec_id) { nil } let(:expected_log) do From e9b1e0ffd20d3d1c61f08203b17a7ddfad9e5c68 Mon Sep 17 00:00:00 2001 From: Emily Nguyen Date: Mon, 30 Sep 2024 17:24:38 -0500 Subject: [PATCH 06/20] update rspec to not test private methods --- .../sign_up_service_updater_job_spec.rb | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb b/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb index 1e7ae7f906f..e989d64545c 100644 --- a/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb +++ b/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb @@ -196,7 +196,10 @@ it 'agreement_unchanged returns false' do job.perform(user_account_uuid, version) - expect(job.send(:agreement_unchanged?)).to be_falsey + expect(MAP::SignUp::Service).to have_received(:new) + expect(service_instance).to have_received(:agreements_accept).with(icn: user_account.icn, + signature_name: common_name, + version:) end end @@ -212,7 +215,10 @@ it 'agreement_unchanged returns false' do job.perform(user_account_uuid, version) - expect(job.send(:agreement_unchanged?)).to be_falsey + expect(MAP::SignUp::Service).to have_received(:new) + expect(service_instance).to have_received(:agreements_accept).with(icn: user_account.icn, + signature_name: common_name, + version:) end end @@ -223,22 +229,15 @@ let(:status) { { opt_out: false, agreement_signed: true } } before do - allow(service_instance).to receive(:agreements_accept) - allow(terms_of_use_agreement).to receive(:accepted?).and_return(true) + allow(Rails.logger).to receive(:info) allow(service_instance).to receive(:status).and_return(status) end - it 'returns true when the agreement is unchanged' do - job.perform(user_account_uuid, version) - - expect(job.send(:agreement_unchanged?)).to be_truthy - end - it 'logs that the agreement is not changed' do job.perform(user_account_uuid, version) - expect(Rails.logger).to receive(:info).with(expected_log, { icn: user_account.icn }) - expect(job.send(:agreement_unchanged?)).to be_truthy + expect(MAP::SignUp::Service).to have_received(:new) + expect(Rails.logger).to have_received(:info).with(expected_log, icn:) end end From 639ccc99c58933e4e31612cbc515bbeac7588059 Mon Sep 17 00:00:00 2001 From: Emily Nguyen Date: Wed, 2 Oct 2024 14:17:36 -0500 Subject: [PATCH 07/20] change sec_id to missing_sec_id --- app/sidekiq/terms_of_use/sign_up_service_updater_job.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb b/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb index feb0a7885dd..8767f7337ac 100644 --- a/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb +++ b/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb @@ -33,7 +33,7 @@ def perform(user_account_uuid, version) @user_account_uuid = user_account_uuid @version = version - return if !sec_id? || agreement_unchanged? + return if !missing_sec_id? || agreement_unchanged? log_updated_icn terms_of_use_agreement.accepted? ? accept : decline @@ -84,7 +84,7 @@ def decline client.agreements_decline(icn: mpi_profile.icn) end - def sec_id? + def missing_sec_id? if mpi_profile.sec_id.present? validate_multiple_sec_ids return true From d7b5eb85c4f54ea91a894be27d87ed64063fecdd Mon Sep 17 00:00:00 2001 From: Emily Nguyen Date: Wed, 2 Oct 2024 14:39:33 -0500 Subject: [PATCH 08/20] clean up code --- .../sign_up_service_updater_job.rb | 24 +++++++++---------- .../sign_up_service_updater_job_spec.rb | 14 +++++------ 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb b/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb index 8767f7337ac..371021d6151 100644 --- a/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb +++ b/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb @@ -48,40 +48,40 @@ def log_updated_icn end end - def client + def map_client @client ||= MAP::SignUp::Service.new end - def status - @status ||= client.status(icn: mpi_profile.icn) + def map_status + @status ||= map_client.status(icn: mpi_profile.icn) end - def declined? - status[:opt_out] == true + def map_declined? + map_status[:opt_out] end - def accepted? - status[:agreement_signed] == true + def map_accepted? + map_status[:agreement_signed] end def agreement_unchanged? return false unless terms_of_use_agreement - unchanged = (terms_of_use_agreement.declined? == declined?) && (terms_of_use_agreement.accepted? == accepted?) + unchanged = (terms_of_use_agreement.accepted? && map_accepted?) || (terms_of_use_agreement.declined? && map_declined?) - if unchanged == true - Rails.logger.info("#{LOG_TITLE} Agreement not changed", + if unchanged + Rails.logger.info("#{LOG_TITLE} Not updating Sign Up Service due to unchanged agreement", { icn: user_account.icn }) end unchanged end def accept - client.agreements_accept(icn: mpi_profile.icn, signature_name:, version:) + map_client.agreements_accept(icn: mpi_profile.icn, signature_name:, version:) end def decline - client.agreements_decline(icn: mpi_profile.icn) + map_client.agreements_decline(icn: mpi_profile.icn) end def missing_sec_id? diff --git a/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb b/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb index e989d64545c..8d2f01dba14 100644 --- a/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb +++ b/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb @@ -186,11 +186,11 @@ context 'when agreement is changed by ToU acceptance' do let(:response) { 'accepted' } - let(:status) { { opt_out: true, agreement_signed: false } } + let(:map_status) { { opt_out: true, agreement_signed: false } } before do allow(service_instance).to receive(:agreements_accept) - allow(service_instance).to receive(:status).and_return(status) + allow(service_instance).to receive(:map_status).and_return(map_status) end it 'agreement_unchanged returns false' do @@ -205,11 +205,11 @@ context 'when agreement is changed by ToU being declined' do let(:response) { 'declined' } - let(:status) { { opt_out: false, agreement_signed: true } } + let(:map_status) { { opt_out: false, agreement_signed: true } } before do allow(service_instance).to receive(:agreements_decline) - allow(service_instance).to receive(:status).and_return(status) + allow(service_instance).to receive(:map_status).and_return(map_status) end it 'agreement_unchanged returns false' do @@ -224,13 +224,13 @@ context 'when agreement is unchanged' do let(:expected_log) do - '[TermsOfUse][SignUpServiceUpdaterJob] Agreement not changed' + '[TermsOfUse][SignUpServiceUpdaterJob] Not updating Sign Up Service due to unchanged agreement' end - let(:status) { { opt_out: false, agreement_signed: true } } + let(:map_status) { { opt_out: false, agreement_signed: true } } before do allow(Rails.logger).to receive(:info) - allow(service_instance).to receive(:status).and_return(status) + allow(service_instance).to receive(:map_status).and_return(map_status) end it 'logs that the agreement is not changed' do From 5cf19f8a0d41e3a93c5ac7517079bb3d3fa65e20 Mon Sep 17 00:00:00 2001 From: Emily Nguyen Date: Wed, 2 Oct 2024 14:40:46 -0500 Subject: [PATCH 09/20] rubocop --- app/sidekiq/terms_of_use/sign_up_service_updater_job.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb b/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb index 371021d6151..09ef6370ac8 100644 --- a/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb +++ b/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb @@ -67,7 +67,9 @@ def map_accepted? def agreement_unchanged? return false unless terms_of_use_agreement - unchanged = (terms_of_use_agreement.accepted? && map_accepted?) || (terms_of_use_agreement.declined? && map_declined?) + unchanged = ( + terms_of_use_agreement.accepted? && map_accepted?) || (terms_of_use_agreement.declined? && map_declined? + ) if unchanged Rails.logger.info("#{LOG_TITLE} Not updating Sign Up Service due to unchanged agreement", From d808f8228e275d4ed50b6ce79361d48376030b4c Mon Sep 17 00:00:00 2001 From: Emily Nguyen Date: Wed, 2 Oct 2024 17:00:40 -0500 Subject: [PATCH 10/20] working specs --- .../sign_up_service_updater_job.rb | 10 ++-- .../sign_up_service_updater_job_spec.rb | 51 +++++++++++++++---- 2 files changed, 46 insertions(+), 15 deletions(-) diff --git a/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb b/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb index 09ef6370ac8..67e29f296dc 100644 --- a/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb +++ b/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb @@ -33,7 +33,7 @@ def perform(user_account_uuid, version) @user_account_uuid = user_account_uuid @version = version - return if !missing_sec_id? || agreement_unchanged? + return if missing_sec_id? || agreement_unchanged? log_updated_icn terms_of_use_agreement.accepted? ? accept : decline @@ -49,11 +49,11 @@ def log_updated_icn end def map_client - @client ||= MAP::SignUp::Service.new + @map_client ||= MAP::SignUp::Service.new end def map_status - @status ||= map_client.status(icn: mpi_profile.icn) + @map_status ||= map_client.status(icn: mpi_profile.icn) end def map_declined? @@ -89,12 +89,12 @@ def decline def missing_sec_id? if mpi_profile.sec_id.present? validate_multiple_sec_ids - return true + return false end Rails.logger.info("#{LOG_TITLE} Sign Up Service not updated due to user missing sec_id", { icn: user_account.icn }) - false + true end def validate_multiple_sec_ids diff --git a/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb b/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb index 8d2f01dba14..b87e101e0c3 100644 --- a/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb +++ b/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb @@ -81,8 +81,11 @@ context 'when sec_id is present' do context 'sec_id validation' do + let(:status) { { opt_out: false, agreement_signed: false } } + before do allow(service_instance).to receive(:agreements_accept) + allow(service_instance).to receive(:status).and_return(status) allow(Rails.logger).to receive(:info) end @@ -96,8 +99,14 @@ context 'when multiple sec_id values are detected' do let(:sec_ids) { [sec_id, 'other-sec-id'] } + let(:status) { { opt_out: false, agreement_signed: false } } + let(:expected_log) { '[TermsOfUse][SignUpServiceUpdaterJob] Multiple sec_id values detected' } + before do + allow(service_instance).to receive(:status).and_return(status) + end + it 'logs a warning message' do job.perform(user_account_uuid, version) @@ -116,8 +125,10 @@ end context 'when the terms of use agreement is accepted' do + let(:status) { { opt_out: false, agreement_signed: false } } before do allow(service_instance).to receive(:agreements_accept) + allow(service_instance).to receive(:status).and_return(status) end context 'and user account icn does not equal the mpi profile icn' do @@ -162,9 +173,11 @@ end let(:mpi_profile) { build(:mpi_profile, icn: mpi_icn, sec_id:, given_names:, family_name:) } let(:mpi_icn) { 'some-mpi-icn' } + let(:status) { { opt_out: false, agreement_signed: false } } before do allow(Rails.logger).to receive(:info) + allow(service_instance).to receive(:status).and_return(status) end it 'logs a detected changed ICN message' do @@ -175,22 +188,41 @@ end end + # it 'updates the terms of use agreement in sign up service' do + # job.perform(user_account_uuid, version) + + # expect(MAP::SignUp::Service).to have_received(:new) + # expect(service_instance).to have_received(:agreements_decline).with(icn: mpi_profile.icn) + # end + end + + context 'and user account icn does not equal the mpi profile icn' do + let(:mpi_profile) { build(:mpi_profile, icn: mpi_icn, sec_id:, given_names:, family_name:) } + let(:mpi_icn) { 'some-mpi-icn' } + let(:status) { { opt_out: false, agreement_signed: false } } + let(:response) { 'declined' } + + before do + allow(service_instance).to receive(:status).and_return(status) + allow(service_instance).to receive(:agreements_decline) + end + it 'updates the terms of use agreement in sign up service' do job.perform(user_account_uuid, version) expect(MAP::SignUp::Service).to have_received(:new) - expect(service_instance).to have_received(:agreements_decline).with(icn: mpi_profile.icn) + expect(service_instance).to have_received(:agreements_decline).with(icn: mpi_icn) end end end context 'when agreement is changed by ToU acceptance' do let(:response) { 'accepted' } - let(:map_status) { { opt_out: true, agreement_signed: false } } + let(:status) { { opt_out: true, agreement_signed: false } } before do allow(service_instance).to receive(:agreements_accept) - allow(service_instance).to receive(:map_status).and_return(map_status) + allow(service_instance).to receive(:status).and_return(status) end it 'agreement_unchanged returns false' do @@ -205,20 +237,18 @@ context 'when agreement is changed by ToU being declined' do let(:response) { 'declined' } - let(:map_status) { { opt_out: false, agreement_signed: true } } + let(:status) { { opt_out: false, agreement_signed: true } } before do allow(service_instance).to receive(:agreements_decline) - allow(service_instance).to receive(:map_status).and_return(map_status) + allow(service_instance).to receive(:status).and_return(status) end it 'agreement_unchanged returns false' do job.perform(user_account_uuid, version) expect(MAP::SignUp::Service).to have_received(:new) - expect(service_instance).to have_received(:agreements_accept).with(icn: user_account.icn, - signature_name: common_name, - version:) + expect(service_instance).to have_received(:agreements_decline).with(icn: user_account.icn) end end @@ -226,17 +256,18 @@ let(:expected_log) do '[TermsOfUse][SignUpServiceUpdaterJob] Not updating Sign Up Service due to unchanged agreement' end - let(:map_status) { { opt_out: false, agreement_signed: true } } + let(:status) { { opt_out: false, agreement_signed: true } } before do allow(Rails.logger).to receive(:info) - allow(service_instance).to receive(:map_status).and_return(map_status) + allow(service_instance).to receive(:status).and_return(status) end it 'logs that the agreement is not changed' do job.perform(user_account_uuid, version) expect(MAP::SignUp::Service).to have_received(:new) + # expect(service_instance).not_to have_received(:agreements_accept) expect(Rails.logger).to have_received(:info).with(expected_log, icn:) end end From cb239e1f20e67e44bf356675ccee7e8e57fbf599 Mon Sep 17 00:00:00 2001 From: Emily Nguyen Date: Mon, 7 Oct 2024 09:14:57 -0500 Subject: [PATCH 11/20] add test for changed agreement --- .../sign_up_service_updater_job_spec.rb | 32 ++++++++++++++++--- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb b/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb index b87e101e0c3..ac0df313703 100644 --- a/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb +++ b/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb @@ -126,6 +126,7 @@ context 'when the terms of use agreement is accepted' do let(:status) { { opt_out: false, agreement_signed: false } } + before do allow(service_instance).to receive(:agreements_accept) allow(service_instance).to receive(:status).and_return(status) @@ -228,7 +229,6 @@ it 'agreement_unchanged returns false' do job.perform(user_account_uuid, version) - expect(MAP::SignUp::Service).to have_received(:new) expect(service_instance).to have_received(:agreements_accept).with(icn: user_account.icn, signature_name: common_name, version:) @@ -247,7 +247,6 @@ it 'agreement_unchanged returns false' do job.perform(user_account_uuid, version) - expect(MAP::SignUp::Service).to have_received(:new) expect(service_instance).to have_received(:agreements_decline).with(icn: user_account.icn) end end @@ -266,12 +265,37 @@ it 'logs that the agreement is not changed' do job.perform(user_account_uuid, version) - expect(MAP::SignUp::Service).to have_received(:new) - # expect(service_instance).not_to have_received(:agreements_accept) expect(Rails.logger).to have_received(:info).with(expected_log, icn:) end end + context 'when agreement is changed' do + let(:expected_log) do + '[TermsOfUse][SignUpServiceUpdaterJob] Not updating Sign Up Service due to unchanged agreement' + end + let(:status) { { opt_out: false, agreement_signed: false } } + + before do + allow(Rails.logger).to receive(:info) + allow(service_instance).to receive(:status).and_return(status) + allow(service_instance).to receive(:agreements_accept) + end + + it 'it does not log that the agreement is not changed' do + job.perform(user_account_uuid, version) + + expect(Rails.logger).not_to have_received(:info).with(expected_log, icn:) + end + + it 'it makes an agreements change call' do + job.perform(user_account_uuid, version) + + expect(service_instance).to have_received(:agreements_accept).with(icn: user_account.icn, + signature_name: common_name, + version:) + end + end + context 'when sec_id is not present' do let(:sec_id) { nil } let(:expected_log) do From 0badbcc231c03f3e97934fc83c9c28736625816d Mon Sep 17 00:00:00 2001 From: Emily Nguyen Date: Mon, 7 Oct 2024 09:19:15 -0500 Subject: [PATCH 12/20] add test for agreement call when not changed --- .../terms_of_use/sign_up_service_updater_job_spec.rb | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb b/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb index ac0df313703..4d200a09807 100644 --- a/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb +++ b/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb @@ -260,6 +260,7 @@ before do allow(Rails.logger).to receive(:info) allow(service_instance).to receive(:status).and_return(status) + allow(service_instance).to receive(:agreements_accept) end it 'logs that the agreement is not changed' do @@ -267,6 +268,12 @@ expect(Rails.logger).to have_received(:info).with(expected_log, icn:) end + + it 'it does not make an agreements change call' do + job.perform(user_account_uuid, version) + + expect(service_instance).not_to have_received(:agreements_accept) + end end context 'when agreement is changed' do From 5a5666eb814c468d492838027b1f3a13900554a9 Mon Sep 17 00:00:00 2001 From: Emily Nguyen Date: Mon, 7 Oct 2024 09:25:58 -0500 Subject: [PATCH 13/20] rephrase spec descriptions --- .../sign_up_service_updater_job_spec.rb | 43 ++++++------------- 1 file changed, 14 insertions(+), 29 deletions(-) diff --git a/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb b/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb index 4d200a09807..0c933029d12 100644 --- a/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb +++ b/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb @@ -188,13 +188,6 @@ expect(Rails.logger).to have_received(:info).with(expected_log, { icn:, mpi_icn: }) end end - - # it 'updates the terms of use agreement in sign up service' do - # job.perform(user_account_uuid, version) - - # expect(MAP::SignUp::Service).to have_received(:new) - # expect(service_instance).to have_received(:agreements_decline).with(icn: mpi_profile.icn) - # end end context 'and user account icn does not equal the mpi profile icn' do @@ -217,38 +210,30 @@ end end - context 'when agreement is changed by ToU acceptance' do - let(:response) { 'accepted' } - let(:status) { { opt_out: true, agreement_signed: false } } - - before do - allow(service_instance).to receive(:agreements_accept) - allow(service_instance).to receive(:status).and_return(status) - end - - it 'agreement_unchanged returns false' do - job.perform(user_account_uuid, version) - - expect(service_instance).to have_received(:agreements_accept).with(icn: user_account.icn, - signature_name: common_name, - version:) + context 'when terms of use agreement is declined' do + let(:expected_log) do + '[TermsOfUse][SignUpServiceUpdaterJob] Not updating Sign Up Service due to unchanged agreement' end - end - - context 'when agreement is changed by ToU being declined' do let(:response) { 'declined' } let(:status) { { opt_out: false, agreement_signed: true } } before do + allow(Rails.logger).to receive(:info) allow(service_instance).to receive(:agreements_decline) allow(service_instance).to receive(:status).and_return(status) end - it 'agreement_unchanged returns false' do + it 'it updates the terms of use agreement in sign up service' do job.perform(user_account_uuid, version) expect(service_instance).to have_received(:agreements_decline).with(icn: user_account.icn) end + + it 'it does not log that the agreement has not changed' do + job.perform(user_account_uuid, version) + + expect(Rails.logger).not_to have_received(:info).with(expected_log, icn:) + end end context 'when agreement is unchanged' do @@ -276,7 +261,7 @@ end end - context 'when agreement is changed' do + context 'when a terms of use agreement is accpeted' do let(:expected_log) do '[TermsOfUse][SignUpServiceUpdaterJob] Not updating Sign Up Service due to unchanged agreement' end @@ -288,13 +273,13 @@ allow(service_instance).to receive(:agreements_accept) end - it 'it does not log that the agreement is not changed' do + it 'it does not log that the agreement has not changed' do job.perform(user_account_uuid, version) expect(Rails.logger).not_to have_received(:info).with(expected_log, icn:) end - it 'it makes an agreements change call' do + it 'it updates the terms of use agreement in sign up service' do job.perform(user_account_uuid, version) expect(service_instance).to have_received(:agreements_accept).with(icn: user_account.icn, From 814d89a3a95111f5b6d60986a1654169113d2fa3 Mon Sep 17 00:00:00 2001 From: Emily Nguyen Date: Mon, 7 Oct 2024 09:27:34 -0500 Subject: [PATCH 14/20] rehprase description --- spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb b/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb index 0c933029d12..e33b3f55f79 100644 --- a/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb +++ b/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb @@ -254,7 +254,7 @@ expect(Rails.logger).to have_received(:info).with(expected_log, icn:) end - it 'it does not make an agreements change call' do + it 'it does not update terms of use agreement in sign up service' do job.perform(user_account_uuid, version) expect(service_instance).not_to have_received(:agreements_accept) From 0fa34e788c8bd244ad507e0a3a50180750a67f46 Mon Sep 17 00:00:00 2001 From: Emily Nguyen Date: Mon, 7 Oct 2024 14:42:00 -0500 Subject: [PATCH 15/20] rubocop --- .../sign_up_service_updater_job_spec.rb | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb b/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb index e33b3f55f79..16094d5b2a8 100644 --- a/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb +++ b/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb @@ -223,13 +223,13 @@ allow(service_instance).to receive(:status).and_return(status) end - it 'it updates the terms of use agreement in sign up service' do + it 'updates the terms of use agreement in sign up service' do job.perform(user_account_uuid, version) expect(service_instance).to have_received(:agreements_decline).with(icn: user_account.icn) end - it 'it does not log that the agreement has not changed' do + it 'does not log that the agreement has not changed' do job.perform(user_account_uuid, version) expect(Rails.logger).not_to have_received(:info).with(expected_log, icn:) @@ -254,7 +254,7 @@ expect(Rails.logger).to have_received(:info).with(expected_log, icn:) end - it 'it does not update terms of use agreement in sign up service' do + it 'does not update terms of use agreement in sign up service' do job.perform(user_account_uuid, version) expect(service_instance).not_to have_received(:agreements_accept) @@ -273,18 +273,18 @@ allow(service_instance).to receive(:agreements_accept) end - it 'it does not log that the agreement has not changed' do + it 'does not log that the agreement has not changed' do job.perform(user_account_uuid, version) expect(Rails.logger).not_to have_received(:info).with(expected_log, icn:) end - it 'it updates the terms of use agreement in sign up service' do + it 'updates the terms of use agreement in sign up service' do job.perform(user_account_uuid, version) expect(service_instance).to have_received(:agreements_accept).with(icn: user_account.icn, - signature_name: common_name, - version:) + signature_name: common_name, + version:) end end From ece2a4a38a5896e03ec70287a3b946d959a9e6cd Mon Sep 17 00:00:00 2001 From: Emily Nguyen Date: Mon, 7 Oct 2024 17:36:11 -0500 Subject: [PATCH 16/20] refactor code --- .../terms_of_use/sign_up_service_updater_job.rb | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb b/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb index 67e29f296dc..93e0a089ffd 100644 --- a/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb +++ b/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb @@ -65,17 +65,13 @@ def map_accepted? end def agreement_unchanged? - return false unless terms_of_use_agreement - - unchanged = ( - terms_of_use_agreement.accepted? && map_accepted?) || (terms_of_use_agreement.declined? && map_declined? - ) - - if unchanged - Rails.logger.info("#{LOG_TITLE} Not updating Sign Up Service due to unchanged agreement", - { icn: user_account.icn }) + if terms_of_use_agreement.declined? != map_status[:opt_out] || + terms_of_use_agreement.accepted? != map_status[:agreement_signed] + return false end - unchanged + + Rails.logger.info("#{LOG_TITLE} Not updating Sign Up Service due to unchanged agreement", { icn: user_account.icn }) + true end def accept From a7855f91e1fbf02e433e17ca558b4ec0db4d13e2 Mon Sep 17 00:00:00 2001 From: Emily Nguyen Date: Mon, 7 Oct 2024 17:43:31 -0500 Subject: [PATCH 17/20] remove map_accepted/declined and fix rubocop --- .../terms_of_use/sign_up_service_updater_job.rb | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb b/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb index 93e0a089ffd..0dd8770d114 100644 --- a/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb +++ b/app/sidekiq/terms_of_use/sign_up_service_updater_job.rb @@ -56,21 +56,14 @@ def map_status @map_status ||= map_client.status(icn: mpi_profile.icn) end - def map_declined? - map_status[:opt_out] - end - - def map_accepted? - map_status[:agreement_signed] - end - def agreement_unchanged? if terms_of_use_agreement.declined? != map_status[:opt_out] || - terms_of_use_agreement.accepted? != map_status[:agreement_signed] + terms_of_use_agreement.accepted? != map_status[:agreement_signed] return false end - Rails.logger.info("#{LOG_TITLE} Not updating Sign Up Service due to unchanged agreement", { icn: user_account.icn }) + Rails.logger.info("#{LOG_TITLE} Not updating Sign Up Service due to unchanged agreement", + { icn: user_account.icn }) true end From 14a8e8b6854ad1337f372c318c625860ea40dd44 Mon Sep 17 00:00:00 2001 From: Emily Nguyen Date: Mon, 7 Oct 2024 17:53:07 -0500 Subject: [PATCH 18/20] remove double use in context --- .../sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb b/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb index 16094d5b2a8..d304ce5342f 100644 --- a/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb +++ b/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb @@ -103,10 +103,6 @@ let(:expected_log) { '[TermsOfUse][SignUpServiceUpdaterJob] Multiple sec_id values detected' } - before do - allow(service_instance).to receive(:status).and_return(status) - end - it 'logs a warning message' do job.perform(user_account_uuid, version) @@ -166,6 +162,7 @@ before do allow(service_instance).to receive(:agreements_decline) + allow(service_instance).to receive(:status).and_return(status) end context 'and user account icn does not equal the mpi profile icn' do From 3dc2dff91027691e5f61ea0e932b35868fa00892 Mon Sep 17 00:00:00 2001 From: Emily Nguyen Date: Mon, 7 Oct 2024 17:54:55 -0500 Subject: [PATCH 19/20] move status instance up --- spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb b/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb index d304ce5342f..cb40c9827cb 100644 --- a/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb +++ b/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb @@ -175,7 +175,6 @@ before do allow(Rails.logger).to receive(:info) - allow(service_instance).to receive(:status).and_return(status) end it 'logs a detected changed ICN message' do From 94ae7e34e25610e651656b74acfe6674696f7130 Mon Sep 17 00:00:00 2001 From: Emily Nguyen Date: Tue, 8 Oct 2024 15:07:36 -0500 Subject: [PATCH 20/20] refactor rspec file --- .../sign_up_service_updater_job_spec.rb | 231 +++++++----------- 1 file changed, 93 insertions(+), 138 deletions(-) diff --git a/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb b/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb index cb40c9827cb..4c964094a6c 100644 --- a/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb +++ b/spec/sidekiq/terms_of_use/sign_up_service_updater_job_spec.rb @@ -80,108 +80,141 @@ end context 'when sec_id is present' do - context 'sec_id validation' do - let(:status) { { opt_out: false, agreement_signed: false } } + let(:status) { { opt_out: false, agreement_signed: false } } + + before do + allow(service_instance).to receive(:agreements_accept) + allow(service_instance).to receive(:status).and_return(status) + allow(Rails.logger).to receive(:info) + end + + shared_examples 'logs an unchanged agreement' do + let(:expected_log) do + '[TermsOfUse][SignUpServiceUpdaterJob] Not updating Sign Up Service due to unchanged agreement' + end before do - allow(service_instance).to receive(:agreements_accept) - allow(service_instance).to receive(:status).and_return(status) allow(Rails.logger).to receive(:info) end - context 'when a single sec_id value is detected' do - it 'does not log a warning message' do - job.perform(user_account_uuid, version) + it 'logs that the agreement is not changed' do + job.perform(user_account_uuid, version) - expect(Rails.logger).not_to have_received(:info) - end + expect(Rails.logger).to have_received(:info).with(expected_log, icn:) end + end - context 'when multiple sec_id values are detected' do - let(:sec_ids) { [sec_id, 'other-sec-id'] } - let(:status) { { opt_out: false, agreement_signed: false } } - - let(:expected_log) { '[TermsOfUse][SignUpServiceUpdaterJob] Multiple sec_id values detected' } - - it 'logs a warning message' do - job.perform(user_account_uuid, version) + context 'when multiple sec_id values are detected' do + let(:sec_ids) { [sec_id, 'other-sec-id'] } - expect(Rails.logger).to have_received(:info).with(expected_log, icn:) - end + let(:expected_log) { '[TermsOfUse][SignUpServiceUpdaterJob] Multiple sec_id values detected' } - it 'updates the terms of use agreement in sign up service' do - job.perform(user_account_uuid, version) + it 'logs a warning message' do + job.perform(user_account_uuid, version) - expect(MAP::SignUp::Service).to have_received(:new) - expect(service_instance).to have_received(:agreements_accept).with(icn: user_account.icn, - signature_name: common_name, - version:) - end + expect(Rails.logger).to have_received(:info).with(expected_log, icn:) end end - context 'when the terms of use agreement is accepted' do - let(:status) { { opt_out: false, agreement_signed: false } } + context 'and terms of use agreement is accepted' do + let(:response) { 'accepted' } before do - allow(service_instance).to receive(:agreements_accept) allow(service_instance).to receive(:status).and_return(status) + allow(service_instance).to receive(:agreements_accept) end - context 'and user account icn does not equal the mpi profile icn' do - let(:expected_log) do - '[TermsOfUse][SignUpServiceUpdaterJob] Detected changed ICN for user' - end - let(:mpi_profile) { build(:mpi_profile, icn: mpi_icn, sec_id:, given_names:, family_name:) } - let(:mpi_icn) { 'some-mpi-icn' } + context 'when sign up service status agreement response is true' do + let(:status) { { opt_out: false, agreement_signed: true } } - before do - allow(Rails.logger).to receive(:info) - end + it_behaves_like 'logs an unchanged agreement' - it 'logs a detected changed ICN message' do + it 'does not update terms of use agreement in sign up service' do job.perform(user_account_uuid, version) - expect(MAP::SignUp::Service).to have_received(:new) - expect(Rails.logger).to have_received(:info).with(expected_log, { icn:, mpi_icn: }) + expect(service_instance).not_to have_received(:agreements_accept) end end - it 'updates the terms of use agreement in sign up service' do - job.perform(user_account_uuid, version) + context 'when sign up service status agreement response is false' do + let(:status) { { opt_out: false, agreement_signed: false } } - expect(MAP::SignUp::Service).to have_received(:new) - expect(service_instance).to have_received(:agreements_accept).with(icn: mpi_profile.icn, - signature_name: common_name, - version:) + it 'updates the terms of use agreement in sign up service' do + job.perform(user_account_uuid, version) + + expect(service_instance).to have_received(:agreements_accept).with(icn: user_account.icn, + signature_name: common_name, + version:) + end + + context 'and user account icn does not equal the mpi profile icn' do + let(:expected_log) do + '[TermsOfUse][SignUpServiceUpdaterJob] Detected changed ICN for user' + end + let(:mpi_profile) { build(:mpi_profile, icn: mpi_icn, sec_id:, given_names:, family_name:) } + let(:mpi_icn) { 'some-mpi-icn' } + + before do + allow(Rails.logger).to receive(:info) + end + + it 'logs a detected changed ICN message' do + job.perform(user_account_uuid, version) + + expect(MAP::SignUp::Service).to have_received(:new) + expect(Rails.logger).to have_received(:info).with(expected_log, { icn:, mpi_icn: }) + end + end end end - context 'when the terms of use agreement is declined' do + context 'and terms of use agreement is declined' do let(:response) { 'declined' } before do - allow(service_instance).to receive(:agreements_decline) allow(service_instance).to receive(:status).and_return(status) + allow(service_instance).to receive(:agreements_decline) end - context 'and user account icn does not equal the mpi profile icn' do - let(:expected_log) do - '[TermsOfUse][SignUpServiceUpdaterJob] Detected changed ICN for user' + context 'when sign up service status opt out response is true' do + let(:status) { { opt_out: true, agreement_signed: false } } + + it_behaves_like 'logs an unchanged agreement' + + it 'does not update terms of use agreement in sign up service' do + job.perform(user_account_uuid, version) + + expect(service_instance).not_to have_received(:agreements_decline) end - let(:mpi_profile) { build(:mpi_profile, icn: mpi_icn, sec_id:, given_names:, family_name:) } - let(:mpi_icn) { 'some-mpi-icn' } + end + + context 'when sign up service status opt out response is false' do let(:status) { { opt_out: false, agreement_signed: false } } - before do - allow(Rails.logger).to receive(:info) + it 'updates the terms of use agreement in sign up service' do + job.perform(user_account_uuid, version) + + expect(service_instance).to have_received(:agreements_decline).with(icn: user_account.icn) end - it 'logs a detected changed ICN message' do - job.perform(user_account_uuid, version) + context 'and user account icn does not equal the mpi profile icn' do + let(:expected_log) do + '[TermsOfUse][SignUpServiceUpdaterJob] Detected changed ICN for user' + end + let(:mpi_profile) { build(:mpi_profile, icn: mpi_icn, sec_id:, given_names:, family_name:) } + let(:mpi_icn) { 'some-mpi-icn' } + let(:status) { { opt_out: false, agreement_signed: false } } + + before do + allow(Rails.logger).to receive(:info) + end + + it 'logs a detected changed ICN message' do + job.perform(user_account_uuid, version) - expect(MAP::SignUp::Service).to have_received(:new) - expect(Rails.logger).to have_received(:info).with(expected_log, { icn:, mpi_icn: }) + expect(MAP::SignUp::Service).to have_received(:new) + expect(Rails.logger).to have_received(:info).with(expected_log, { icn:, mpi_icn: }) + end end end end @@ -206,84 +239,6 @@ end end - context 'when terms of use agreement is declined' do - let(:expected_log) do - '[TermsOfUse][SignUpServiceUpdaterJob] Not updating Sign Up Service due to unchanged agreement' - end - let(:response) { 'declined' } - let(:status) { { opt_out: false, agreement_signed: true } } - - before do - allow(Rails.logger).to receive(:info) - allow(service_instance).to receive(:agreements_decline) - allow(service_instance).to receive(:status).and_return(status) - end - - it 'updates the terms of use agreement in sign up service' do - job.perform(user_account_uuid, version) - - expect(service_instance).to have_received(:agreements_decline).with(icn: user_account.icn) - end - - it 'does not log that the agreement has not changed' do - job.perform(user_account_uuid, version) - - expect(Rails.logger).not_to have_received(:info).with(expected_log, icn:) - end - end - - context 'when agreement is unchanged' do - let(:expected_log) do - '[TermsOfUse][SignUpServiceUpdaterJob] Not updating Sign Up Service due to unchanged agreement' - end - let(:status) { { opt_out: false, agreement_signed: true } } - - before do - allow(Rails.logger).to receive(:info) - allow(service_instance).to receive(:status).and_return(status) - allow(service_instance).to receive(:agreements_accept) - end - - it 'logs that the agreement is not changed' do - job.perform(user_account_uuid, version) - - expect(Rails.logger).to have_received(:info).with(expected_log, icn:) - end - - it 'does not update terms of use agreement in sign up service' do - job.perform(user_account_uuid, version) - - expect(service_instance).not_to have_received(:agreements_accept) - end - end - - context 'when a terms of use agreement is accpeted' do - let(:expected_log) do - '[TermsOfUse][SignUpServiceUpdaterJob] Not updating Sign Up Service due to unchanged agreement' - end - let(:status) { { opt_out: false, agreement_signed: false } } - - before do - allow(Rails.logger).to receive(:info) - allow(service_instance).to receive(:status).and_return(status) - allow(service_instance).to receive(:agreements_accept) - end - - it 'does not log that the agreement has not changed' do - job.perform(user_account_uuid, version) - - expect(Rails.logger).not_to have_received(:info).with(expected_log, icn:) - end - - it 'updates the terms of use agreement in sign up service' do - job.perform(user_account_uuid, version) - - expect(service_instance).to have_received(:agreements_accept).with(icn: user_account.icn, - signature_name: common_name, - version:) - end - end - context 'when sec_id is not present' do let(:sec_id) { nil } let(:expected_log) do