diff --git a/app/services/idv/inherited_proofing/va/mocks/service.rb b/app/services/idv/inherited_proofing/va/mocks/service.rb new file mode 100644 index 00000000000..0358b2c961f --- /dev/null +++ b/app/services/idv/inherited_proofing/va/mocks/service.rb @@ -0,0 +1,54 @@ +module Idv + module InheritedProofing + module Va + module Mocks + class Service + VALID_AUTH_CODE = 'mocked-auth-code-for-testing'.freeze + + attr_reader :auth_code + + PAYLOAD_HASH = { + first_name: 'Fakey', + last_name: 'Fakerson', + address: { + street: '123 Fake St', + street2: 'Apt 235', + city: 'Faketown', + state: 'WA', + country: nil, + zip: '98037', + }, + phone: '2063119187', + birth_date: '2022-1-31', + ssn: '123456789', + mhv_data: { + mhvId: 99999999, + identityProofedMethod: 'IPA', + identityDocumentExist: true, + identityProofingDate: '2020-12-14', + identityDocumentInfo: { + primaryIdentityDocumentNumber: '88888888', + primaryIdentityDocumentType: 'StateIssuedId', + primaryIdentityDocumentCountry: 'United States', + primaryIdentityDocumentExpirationDate: '2222-03-30', + }, + }, + }.freeze + + def initialize(auth_code) + @auth_code = auth_code + end + + def execute + if (@auth_code != VALID_AUTH_CODE) + raise TypeError, + "auth_code is invalid: #{@auth_code}" + end + + PAYLOAD_HASH + end + end + end + end + end +end diff --git a/spec/features/services/idv/inherited_proofing/va/mocks/service_spec.rb b/spec/features/services/idv/inherited_proofing/va/mocks/service_spec.rb new file mode 100644 index 00000000000..7e44e984fdb --- /dev/null +++ b/spec/features/services/idv/inherited_proofing/va/mocks/service_spec.rb @@ -0,0 +1,14 @@ +require 'rails_helper' + +RSpec.describe 'Inherited Proofing VA API Proofer Service' do + subject(:form) { Idv::InheritedProofing::Va::Form.new(payload_hash: proofer_results) } + + let(:proofer_results) { Idv::InheritedProofing::Va::Mocks::Service.new(auth_code).execute } + let(:auth_code) { Idv::InheritedProofing::Va::Mocks::Service::VALID_AUTH_CODE } + + context 'when used with the VA Inherited Proofing Response Form' do + it 'works as expected' do + expect(form.submit.success?).to eq true + end + end +end diff --git a/spec/services/idv/inherited_proofing/va/mocks/service_spec.rb b/spec/services/idv/inherited_proofing/va/mocks/service_spec.rb new file mode 100644 index 00000000000..83a88234723 --- /dev/null +++ b/spec/services/idv/inherited_proofing/va/mocks/service_spec.rb @@ -0,0 +1,28 @@ +require 'rails_helper' + +RSpec.describe Idv::InheritedProofing::Va::Mocks::Service do + subject { described_class.new(auth_code) } + let(:auth_code) { described_class::VALID_AUTH_CODE } + + describe '#initialize' do + it 'sets #auth_code' do + expect(subject.auth_code).to eq auth_code + end + end + + describe '#execute' do + context 'when auth_code is valid' do + it 'returns a Hash' do + expect(subject.execute).to eq(described_class::PAYLOAD_HASH) + end + end + + context 'with auth code is invalid' do + let(:auth_code) { "invalid-#{described_class::VALID_AUTH_CODE}" } + + it 'returns an error' do + expect { subject.execute }.to raise_error(/auth_code is invalid/) + end + end + end +end