Skip to content

Commit

Permalink
add check for tax filer (#432)
Browse files Browse the repository at this point in the history
* add check for tax filer

* rename
  • Loading branch information
jacobkagon authored Dec 20, 2024
1 parent 0e39421 commit f65d1c1
Show file tree
Hide file tree
Showing 4 changed files with 72 additions and 2 deletions.
2 changes: 1 addition & 1 deletion Gemfile.lock
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
GIT
remote: https://github.com/ideacrew/aca_entities.git
revision: d146099cceca79967e22613e0ffd30249eba1ed4
revision: a0a67e47d9f1e7e1a334a758314f519bebaeae42
branch: trunk
specs:
aca_entities (0.10.0)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ def determine_medicaid_eligibility(aptc_household)
eligibility_date = aptc_household[:eligibility_date]
# We should not be determining member level eligibility for a Non-Applicant
# or for an Applicant who is legitimately ineligible outside of gap filling rules
next unless applicant.is_applying_coverage &&
next unless applicant.tax_filer? && applicant.is_applying_coverage &&
!absolutely_mm_ineligible?(applicant, eligibility_date) &&
!medicaid_ineligible_due_to_immigration_or_recent_denial?(applicant, thhm)
check_and_update_magi_medicaid_eligibility(member, thhm, applicant)
Expand Down
43 changes: 43 additions & 0 deletions spec/operations/eligibilities/determine_full_eligibility_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -867,6 +867,49 @@
end
end

context 'Gap Filling Status' do
include_context 'cms ME simple_scenarios non_filer'

context 'Non Tax Filling' do

before do
@result = subject.call(input_params)
@application = @result.success[:payload]
@new_thhms = @application.tax_households.flat_map(&:tax_household_members)
end

let(:primary_ped) do
@new_thhms.detect do |thhm|
thhm.applicant_reference.person_hbx_id.to_s == '1624987842340466'
end.product_eligibility_determination
end

it "returns gap filling status as nil" do
expect(primary_ped.is_gap_filling).to be_falsey
end
end

context 'Tax Filling' do
include_context 'cms ME simple_scenarios test_case_c_1'

before do
@result = subject.call(input_params)
@application = @result.success[:payload]
@new_thhms = @application.tax_households.flat_map(&:tax_household_members)
end

let(:primary_ped) do
@new_thhms.detect do |thhm|
thhm.applicant_reference.person_hbx_id.to_s == '1624987842340466'
end.product_eligibility_determination
end

it 'returns gap filling status as true' do
expect(primary_ped.is_gap_filling).to eq(true)
end
end
end

context 'for persistence' do
before do
medicaid_app.reload
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# frozen_string_literal: true

# State: ME for Medicaid Gap Filling
# rubocop:disable Layout/LineLength
RSpec.shared_context 'cms ME simple_scenarios non_filer', :shared_context => :metadata do
let(:app_params) do
{ "family_reference" => { "hbx_id" => "10045" }, "assistance_year" => 2021, "aptc_effective_date" => "2021-08-01T00:00:00.000+00:00", "years_to_renew" => nil, "renewal_consent_through_year" => 5, "is_ridp_verified" => true, "is_renewal_authorized" => true, "applicants" => [{ "name" => { "first_name" => "aisha", "middle_name" => nil, "last_name" => "gapfilling", "name_sfx" => nil, "name_pfx" => nil }, "identifying_information" => { "encrypted_ssn" => "ccnWLDeWxZj+ads1uuy2dg==\n", "has_ssn" => false }, "demographic" => { "gender" => "Male", "dob" => "1988-01-01", "ethnicity" => ["", "", "", "", "", "", ""], "race" => nil, "is_veteran_or_active_military" => false, "is_vets_spouse_or_child" => false }, "attestation" => { "is_incarcerated" => false, "is_self_attested_disabled" => false, "is_self_attested_blind" => false, "is_self_attested_long_term_care" => false }, "is_primary_applicant" => true, "native_american_information" => { "indian_tribe_member" => false, "tribal_id" => nil }, "citizenship_immigration_status_information" => { "citizen_status" => "us_citizen", "is_resident_post_092296" => false, "is_lawful_presence_self_attested" => false }, "is_consumer_role" => true, "is_resident_role" => false, "is_applying_coverage" => true, "is_consent_applicant" => false, "vlp_document" => nil, "family_member_reference" => { "family_member_hbx_id" => "1624987842340466", "first_name" => "aisha", "last_name" => "gapfilling", "person_hbx_id" => "1624987842340466", "is_primary_family_member" => true }, "person_hbx_id" => "1624987842340466", "is_required_to_file_taxes" => true, "mitc_is_required_to_file_taxes" => true, "tax_filer_kind" => "non_filer", "is_joint_tax_filing" => false, "is_claimed_as_tax_dependent" => false, "claimed_as_tax_dependent_by" => nil, "student" => { "is_student" => false, "student_kind" => nil, "student_school_kind" => nil, "student_status_end_on" => nil }, "is_refugee" => false, "is_trafficking_victim" => false, "foster_care" => { "is_former_foster_care" => false, "age_left_foster_care" => nil, "foster_care_us_state" => nil, "had_medicaid_during_foster_care" => false }, "pregnancy_information" => { "is_pregnant" => false, "is_enrolled_on_medicaid" => false, "is_post_partum_period" => false, "expected_children_count" => nil, "pregnancy_due_on" => nil, "pregnancy_end_on" => nil }, "is_subject_to_five_year_bar" => false, "is_five_year_bar_met" => false, "is_forty_quarters" => false, "is_ssn_applied" => false, "non_ssn_apply_reason" => nil, "moved_on_or_after_welfare_reformed_law" => false, "is_currently_enrolled_in_health_plan" => false, "has_daily_living_help" => false, "need_help_paying_bills" => false, "has_job_income" => false, "has_self_employment_income" => true, "has_unemployment_income" => false, "has_other_income" => false, "has_deductions" => false, "has_enrolled_health_coverage" => false, "has_eligible_health_coverage" => false, "job_coverage_ended_in_past_3_months" => false, "job_coverage_end_date" => nil, "medicaid_and_chip" => { "not_eligible_in_last_90_days" => false, "denied_on" => nil, "ended_as_change_in_eligibility" => false, "hh_income_or_size_changed" => false, "medicaid_or_chip_coverage_end_date" => nil, "ineligible_due_to_immigration_in_last_5_years" => false, "immigration_status_changed_since_ineligibility" => false }, "other_health_service" => { "has_received" => false, "is_eligible" => false }, "addresses" => [{ "kind" => "home", "address_1" => "scskcnkj", "address_2" => "nkjnjknjk", "address_3" => nil, "city" => "njknkj", "county" => nil, "state" => "ME", "zip" => "17263", "country_name" => nil }], "emails" => [{ "kind" => "home", "address" => "[email protected]" }], "phones" => [], "incomes" => [{ "title" => nil, "kind" => "net_self_employment", "wage_type" => nil, "hours_per_week" => nil, "amount" => "1610.0", "amount_tax_exempt" => "0.0", "frequency_kind" => "Monthly", "start_on" => "2021-03-01", "end_on" => "2021-08-31", "is_projected" => false, "employer" => nil, "has_property_usage_rights" => nil, "submitted_at" => "2021-06-29T17:32:25.000+00:00" }], "benefits" => [], "deductions" => [], "is_medicare_eligible" => false, "has_insurance" => false, "has_state_health_benefit" => false, "had_prior_insurance" => false, "prior_insurance_end_date" => nil, "age_of_applicant" => 33, "is_self_attested_long_term_care" => false, "hours_worked_per_week" => 0, "is_temporarily_out_of_state" => false, "is_claimed_as_dependent_by_non_applicant" => false, "benchmark_premium" => { "health_only_lcsp_premiums" => [{ "member_identifier" => "1624987842340466", "monthly_premium" => "310.5" }], "health_only_slcsp_premiums" => [{ "member_identifier" => "1624987842340466", "monthly_premium" => "310.5" }] }, "is_homeless" => false, "mitc_income" => { "amount" => 19_320, "taxable_interest" => 0, "tax_exempt_interest" => 0, "taxable_refunds" => 0, "alimony" => 0, "capital_gain_or_loss" => 0, "pensions_and_annuities_taxable_amount" => 0, "farm_income_or_loss" => 0, "unemployment_compensation" => 0, "other_income" => 0, "magi_deductions" => 0, "adjusted_gross_income" => 9739, "deductible_part_of_self_employment_tax" => 0, "ira_deduction" => 0, "student_loan_interest_deduction" => 0, "tution_and_fees" => 0, "other_magi_eligible_income" => 0 }, "mitc_relationships" => [] }], "tax_households" => [{ "max_aptc" => "0.0", "hbx_id" => "10108", "is_insurance_assistance_eligible" => nil, "tax_household_members" => [{ "product_eligibility_determination" => { "is_ia_eligible" => false, "is_medicaid_chip_eligible" => false, "is_totally_ineligible" => false, "is_magi_medicaid" => false, "is_non_magi_medicaid_eligible" => false, "is_without_assistance" => false, "magi_medicaid_monthly_household_income" => "0.0", "medicaid_household_size" => nil, "magi_medicaid_monthly_income_limit" => "0.0", "magi_as_percentage_of_fpl" => "0.0", "magi_medicaid_category" => nil }, "applicant_reference" => { "first_name" => "aisha", "last_name" => "gapfilling", "dob" => "1988-01-01", "person_hbx_id" => "1624987842340466", "encrypted_ssn" => "ccnWLDeWxZj+ads1uuy2dg==\n" } }], "annual_tax_household_income" => "0.0" }], "relationships" => [], "us_state" => "ME", notice_options: { send_eligibility_notices: true, send_open_enrollment_notices: false }, "hbx_id" => "1624987876624452", "oe_start_on" => "2020-11-01", "mitc_households" => [{ "household_id" => "1", "people" => [{ "person_id" => 1_624_987_842_340_466 }] }], "mitc_tax_returns" => [{ "filers" => [{ "person_id" => 1_624_987_842_340_466 }], "dependents" => [] }] }
end

let(:application_entity) do
app_params.deep_symbolize_keys!
::AcaEntities::MagiMedicaid::Operations::InitializeApplication.new.call(app_params).success
end

let(:input_application) do
application_entity.to_h
end

let(:mitc_string_response) do
{ "Determination Date" => "2021-06-29", "Applicants" => [{ "Person ID" => 1_624_987_842_340_466, "Medicaid Household" => { "People" => [1_624_987_842_340_466], "MAGI" => 19_320, "MAGI as Percentage of FPL" => 150, "Size" => 1 }, "Medicaid Eligible" => "N", "CHIP Eligible" => "N", "Ineligibility Reason" => ["Applicant's MAGI above the threshold for category"], "Non-MAGI Referral" => "N", "CHIP Ineligibility Reason" => ["Applicant did not meet the requirements for any CHIP category"], "Category" => "Adult Group Category", "Category Threshold" => 17_774, "CHIP Category" => "None", "CHIP Category Threshold" => 0, "Determinations" => { "Residency" => { "Indicator" => "Y" }, "Adult Group Category" => { "Indicator" => "Y" }, "Parent Caretaker Category" => { "Indicator" => "N", "Ineligibility Code" => 146, "Ineligibility Reason" => "No child met all criteria for parent caretaker category" }, "Pregnancy Category" => { "Indicator" => "N", "Ineligibility Code" => 124, "Ineligibility Reason" => "Applicant not pregnant or within postpartum period" }, "Child Category" => { "Indicator" => "N", "Ineligibility Code" => 394, "Ineligibility Reason" => "Applicant is over the age limit for the young adult threshold in the state" }, "Optional Targeted Low Income Child" => { "Indicator" => "X" }, "CHIP Targeted Low Income Child" => { "Indicator" => "N", "Ineligibility Code" => 127, "Ineligibility Reason" => "Applicant's age is not within the allowed age range" }, "Unborn Child" => { "Indicator" => "X" }, "Income Medicaid Eligible" => { "Indicator" => "N", "Ineligibility Code" => 402, "Ineligibility Reason" => "Applicant's income is greater than the threshold for all eligible categories" }, "Income CHIP Eligible" => { "Indicator" => "N", "Ineligibility Code" => 401, "Ineligibility Reason" => "Applicant did not meet the requirements for any eligibility category" }, "Medicaid CHIPRA 214" => { "Indicator" => "X" }, "CHIP CHIPRA 214" => { "Indicator" => "X" }, "Trafficking Victim" => { "Indicator" => "X" }, "Seven Year Limit" => { "Indicator" => "X" }, "Five Year Bar" => { "Indicator" => "X" }, "Title II Work Quarters Met" => { "Indicator" => "X" }, "Medicaid Citizen Or Immigrant" => { "Indicator" => "Y" }, "CHIP Citizen Or Immigrant" => { "Indicator" => "Y" }, "Former Foster Care Category" => { "Indicator" => "N", "Ineligibility Code" => 400, "Ineligibility Reason" => "Applicant was not formerly in foster care" }, "Work Quarters Override Income" => { "Indicator" => "N", "Ineligibility Code" => 340, "Ineligibility Reason" => "Income is greater than 100% FPL" }, "State Health Benefits CHIP" => { "Indicator" => "X" }, "CHIP Waiting Period Satisfied" => { "Indicator" => "X" }, "Dependent Child Covered" => { "Indicator" => "X" }, "Medicaid Non-MAGI Referral" => { "Indicator" => "N", "Ineligibility Code" => 108, "Ineligibility Reason" => "Applicant does not meet requirements for a non-MAGI referral" }, "Emergency Medicaid" => { "Indicator" => "N", "Ineligibility Code" => 109, "Ineligibility Reason" => "Applicant does not meet the eligibility criteria for emergency Medicaid" }, "Refugee Medical Assistance" => { "Indicator" => "X" }, "APTC Referral" => { "Indicator" => "Y" } }, "Other Outputs" => { "Qualified Children List" => [] } }] }
end

let(:mitc_response) do
mitc_string_response.deep_symbolize_keys
end
end
# rubocop:enable Layout/LineLength

0 comments on commit f65d1c1

Please sign in to comment.