From e67968fff18a8f1845918bf65e1c78243b69cf7d Mon Sep 17 00:00:00 2001 From: AJ Farkas Date: Fri, 21 Jun 2024 10:01:56 -0400 Subject: [PATCH] LG-13570 we were parsing JSON as JSON and that was bad (#10846) * LG-13570 we were parsing JSON as JSON and that was bad * LG-13570 lint corrections changelog: Bug Fixes, Reports, Resolve double-parsing JSON in Dropoff report (LG-13570) --- app/jobs/reports/drop_off_report.rb | 2 +- lib/identity_config.rb | 1 + spec/jobs/reports/drop_off_report_spec.rb | 5 +++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/jobs/reports/drop_off_report.rb b/app/jobs/reports/drop_off_report.rb index 5e93e1140ad..66f18622a37 100644 --- a/app/jobs/reports/drop_off_report.rb +++ b/app/jobs/reports/drop_off_report.rb @@ -12,7 +12,7 @@ def perform(report_date) self.report_date = report_date subject = "Drop Off Report - #{report_date.to_date}" - JSON.parse(configs).each do |config| + configs.each do |config| reports = [report_maker(config['issuers']).as_emailable_reports] config['emails'].each do |email| ReportMailer.tables_report( diff --git a/lib/identity_config.rb b/lib/identity_config.rb index 98314846d7b..b0fbee4ee80 100644 --- a/lib/identity_config.rb +++ b/lib/identity_config.rb @@ -13,6 +13,7 @@ def self.store Identity::Hostdata.config end + # identity-hostdata transforms these configs to the described type # rubocop:disable Metrics/BlockLength BUILDER = proc do |config| # ______________________________________ diff --git a/spec/jobs/reports/drop_off_report_spec.rb b/spec/jobs/reports/drop_off_report_spec.rb index 9d9b03c8cab..c961b8fcebc 100644 --- a/spec/jobs/reports/drop_off_report_spec.rb +++ b/spec/jobs/reports/drop_off_report_spec.rb @@ -2,9 +2,10 @@ RSpec.describe Reports::DropOffReport do let(:report_date) { Date.new(2023, 12, 12).in_time_zone('UTC') } + # This is in S3 as a string that gets parsed via identity_config.rb let(:report_config) do - '[{"emails":["ursula@example.com"], - "issuers":"urn:gov:gsa:openidconnect.profiles:sp:sso:agency_name:app_name"}]' + JSON.parse '[{"emails":["ursula@example.com"], + "issuers":["urn:gov:gsa:openidconnect.profiles:sp:sso:agency_name:app_name"]}]' end before do