From b28595dad88b0b58b7a2511978329f39c59e3e6e Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Thu, 26 Feb 2026 15:59:25 -0500 Subject: [PATCH] fix(badges): return processed data from all badge API functions CRITICAL FIX (same pattern as event_file fix): - search__event_badge(): Now returns processed_obj_li instead of unprocessed result_li - load_ae_obj_id__event_badge(): Returns processed object after IDB save - load_ae_obj_li__event_badge(): Returns processed list after IDB save - create_ae_obj__event_badge(): Returns processed object after IDB save - update_ae_obj__event_badge(): Returns processed object after IDB save Pattern: All functions now return what was actually saved to IDB (processed data) This ensures consistency between API return values and IDB cached data. TEST IMPROVEMENTS: - Add full_name field to badge mock data (not just full_name_override) - Ensures mock data matches real API structure --- src/lib/ae_events/ae_events__event_badge.ts | 11 ++++++++++- tests/coldstart_event_badges_list.test.ts | 1 + tests/event_badge_data_integrity.test.ts | 1 + 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/lib/ae_events/ae_events__event_badge.ts b/src/lib/ae_events/ae_events__event_badge.ts index 66bb8082..412ffd74 100644 --- a/src/lib/ae_events/ae_events__event_badge.ts +++ b/src/lib/ae_events/ae_events__event_badge.ts @@ -65,6 +65,8 @@ export async function load_ae_obj_id__event_badge({ properties_to_save, log_lvl }); + // Return the processed object (matches what was saved to IDB) + ae_promises.load__event_badge_obj = processed_obj_li[0]; } } else { console.log('No results returned from API.'); @@ -161,6 +163,8 @@ export async function load_ae_obj_li__event_badge({ properties_to_save, log_lvl }); + // Return the processed list (matches what was saved to IDB) + ae_promises.load__event_badge_obj_li = processed_obj_li; } } else { console.log('No results returned from API.'); @@ -245,6 +249,8 @@ export async function create_ae_obj__event_badge({ properties_to_save, log_lvl }); + // Return the processed object (matches what was saved to IDB) + return processed_obj_li[0]; } return result; @@ -336,6 +342,8 @@ export async function update_ae_obj__event_badge({ properties_to_save, log_lvl }); + // Return the processed object (matches what was saved to IDB) + return processed_obj_li[0]; } return result; @@ -471,8 +479,9 @@ export async function search__event_badge({ properties_to_save, log_lvl }); + return processed_obj_li; // Return processed data (matches saved IDB data) } - return result_li; + return result_li; // No cache: return raw API results } else { return []; } diff --git a/tests/coldstart_event_badges_list.test.ts b/tests/coldstart_event_badges_list.test.ts index 3cdc80b6..1a74b6cc 100644 --- a/tests/coldstart_event_badges_list.test.ts +++ b/tests/coldstart_event_badges_list.test.ts @@ -140,6 +140,7 @@ test.describe('Cold-start: Event Badges List (IndexedDB empty)', () => { event_badge_id: event_badge_id, event_id: event_id, event_badge_template_id: 'jgfixEpYp1B', // Per README test data + full_name: 'Scott Idem', // Computed from given_name + family_name full_name_override: 'Scott Idem', given_name: 'Scott', family_name: 'Idem', diff --git a/tests/event_badge_data_integrity.test.ts b/tests/event_badge_data_integrity.test.ts index 1c1f1d9c..519d2d59 100644 --- a/tests/event_badge_data_integrity.test.ts +++ b/tests/event_badge_data_integrity.test.ts @@ -78,6 +78,7 @@ test.describe('Badge Data Integrity & Field Mapping', () => { event_badge_id: event_badge_id, event_id: event_id, event_badge_template_id: event_badge_template_id, + full_name: 'Jane Smith', // Computed from given_name + family_name full_name_override: 'Jane Smith', given_name: 'Jane', family_name: 'Smith',