test: standardize naming conventions to snake_case

- Rename demo_event_id → testing_event_id (more explicit)
- Rename demo_account_id → testing_account_id (matches convention)
- Rename demo_badge_id → event_badge_id (descriptive)
- Rename demo_template_id → event_badge_template_id (explicit)
- Update all test files for consistency (15 files)
- Enhance README with organized test data sections
- Update person IDs to match README test data
- No regression: 15 tests passing, 7 pre-existing failures unchanged
This commit is contained in:
Scott Idem
2026-02-26 15:43:31 -05:00
parent 2c289e39de
commit a91c648c61
14 changed files with 176 additions and 156 deletions

View File

@@ -1,9 +1,9 @@
import { test, expect } from '@playwright/test';
import { ae_app_local_data_defaults } from './_helpers/ae_defaults';
import { demo_event_id, demo_account_id } from './_helpers/env';
import { testing_event_id, testing_account_id } from './_helpers/env';
const demo_event = demo_event_id;
const demo_badge_id = 'UIJT-73-63-61'; // Per README test data
const event_id = testing_event_id;
const event_badge_id = 'UIJT-73-63-61'; // Per README test data
test.describe('Cold-start: Event Badges List (IndexedDB empty)', () => {
test.beforeEach(async ({ page }) => {
@@ -23,13 +23,13 @@ test.describe('Cold-start: Event Badges List (IndexedDB empty)', () => {
authenticated_access: true,
trusted_access: true,
edit_mode: false,
person_id: 'test-person-1',
user: { id: 'test-person-1' },
person_id: 'HMQRNPIXQMK', // Per README test data
user: { id: 'HMQRNPIXQMK' }, // Per README test data
mod: { ...defaults.mod, events: { ...defaults.mod.events, event_id: event_id } }
};
window.localStorage.setItem('ae_loc', JSON.stringify(testData));
},
{ defaults: ae_app_local_data_defaults, event_id: demo_event, account_id: demo_account_id }
{ defaults: ae_app_local_data_defaults, event_id: event_id, account_id: testing_account_id }
);
// Navigate and clear all Dexie databases to simulate cold start
@@ -60,7 +60,7 @@ test.describe('Cold-start: Event Badges List (IndexedDB empty)', () => {
});
// Seed the event record in IDB so liveQuery finds it
await page.evaluate(({ demo_event }) => {
await page.evaluate(({ event_id }) => {
return new Promise<void>((resolve) => {
try {
const req = indexedDB.open('ae_events_db', 1);
@@ -75,8 +75,8 @@ test.describe('Cold-start: Event Badges List (IndexedDB empty)', () => {
const tx = db.transaction('event', 'readwrite');
const store = tx.objectStore('event');
store.put({
id: demo_event,
event_id: demo_event,
id: event_id,
event_id: event_id,
name: 'Cold Start Badge Test Event',
cfg_json: {},
mod_pres_mgmt_json: {},
@@ -99,7 +99,7 @@ test.describe('Cold-start: Event Badges List (IndexedDB empty)', () => {
resolve();
}
});
}, { demo_event });
}, { event_id });
// Mock V3 API responses
await page.route('**/v3/**', async (route) => {
@@ -108,14 +108,14 @@ test.describe('Cold-start: Event Badges List (IndexedDB empty)', () => {
const method = req.method();
// Event GET
if (url.includes(`/v3/crud/event/${demo_event}`) && method === 'GET') {
if (url.includes(`/v3/crud/event/${event_id}`) && method === 'GET') {
return route.fulfill({
status: 200,
contentType: 'application/json',
body: JSON.stringify({
data: {
id: demo_event,
event_id: demo_event,
id: event_id,
event_id: event_id,
name: 'Cold Start Badge Test Event',
cfg_json: {},
mod_pres_mgmt_json: {},
@@ -129,24 +129,24 @@ test.describe('Cold-start: Event Badges List (IndexedDB empty)', () => {
}
// Badge search/list - return enriched data like real API does
if (url.includes(`/v3/crud/event/${demo_event}/event_badge/search`) && method === 'POST') {
if (url.includes(`/v3/crud/event/${event_id}/event_badge/search`) && method === 'POST') {
return route.fulfill({
status: 200,
contentType: 'application/json',
body: JSON.stringify({
data: [
{
id: demo_badge_id,
event_badge_id: demo_badge_id,
event_id: demo_event,
event_badge_template_id: 'jgfixEpYp1B',
id: event_badge_id,
event_badge_id: event_badge_id,
event_id: event_id,
event_badge_template_id: 'jgfixEpYp1B', // Per README test data
full_name_override: 'Scott Idem',
given_name: 'Scott',
family_name: 'Idem',
email: 'scott@oneskyit.com',
badge_type: 'attendee',
badge_type_code: 'attendee',
person_id: 'ffkKxiHpOEC',
person_id: 'ffkKxiHpOEC', // Per README test data
// Enriched fields from API joins
person_given_name: 'Scott',
person_family_name: 'Idem',
@@ -175,8 +175,8 @@ test.describe('Cold-start: Event Badges List (IndexedDB empty)', () => {
body: JSON.stringify({
data: {
id: 'jgfixEpYp1B',
event_badge_template_id: 'jgfixEpYp1B',
event_id: demo_event,
event_badge_template_id: 'jgfixEpYp1B', // Per README test data
event_id: event_id,
name: 'Dev Demo 202x',
header_path: '/images/demo-header.png',
logo_path: '/images/demo-logo.png',
@@ -206,7 +206,7 @@ test.describe('Cold-start: Event Badges List (IndexedDB empty)', () => {
});
test('renders Badge list with enriched data on first load (empty IDB)', async ({ page }) => {
await page.goto(`/events/${demo_event}/badges`);
await page.goto(`/events/${event_id}/badges`);
// Wait for API call to complete
await page.waitForResponse((r) =>
@@ -228,7 +228,7 @@ test.describe('Cold-start: Event Badges List (IndexedDB empty)', () => {
});
test('verifies IndexedDB contains badge after cold-start load', async ({ page }) => {
await page.goto(`/events/${demo_event}/badges`);
await page.goto(`/events/${event_id}/badges`);
await page.waitForResponse((r) =>
r.url().includes('event_badge/search') && r.status() === 200,
@@ -239,7 +239,7 @@ test.describe('Cold-start: Event Badges List (IndexedDB empty)', () => {
await page.waitForTimeout(1000);
// Check IDB for badge record
const idb_check = await page.evaluate(async ({ demo_event, demo_badge_id }) => {
const idb_check = await page.evaluate(async ({ event_id, event_badge_id }) => {
return new Promise((resolve) => {
try {
const req = indexedDB.open('ae_events_db');
@@ -247,7 +247,7 @@ test.describe('Cold-start: Event Badges List (IndexedDB empty)', () => {
const db = req.result;
const tx = db.transaction('badge', 'readonly');
const store = tx.objectStore('badge');
const get_req = store.get(demo_badge_id);
const get_req = store.get(event_badge_id);
get_req.onsuccess = () => {
const badge = get_req.result;
db.close();
@@ -255,7 +255,7 @@ test.describe('Cold-start: Event Badges List (IndexedDB empty)', () => {
found: !!badge,
has_full_name: badge?.full_name_override === 'Scott Idem',
has_email: badge?.email === 'scott@oneskyit.com',
has_event_id: badge?.event_id === demo_event
has_event_id: badge?.event_id === event_id
});
};
get_req.onerror = () => {
@@ -268,7 +268,7 @@ test.describe('Cold-start: Event Badges List (IndexedDB empty)', () => {
resolve({ found: false });
}
});
}, { demo_event, demo_badge_id });
}, { event_id, event_badge_id });
expect(idb_check.found).toBe(true);
expect(idb_check.has_full_name).toBe(true);
@@ -277,7 +277,7 @@ test.describe('Cold-start: Event Badges List (IndexedDB empty)', () => {
});
test('handles badge template relationship correctly', async ({ page }) => {
await page.goto(`/events/${demo_event}/badges`);
await page.goto(`/events/${event_id}/badges`);
await page.waitForResponse((r) =>
r.url().includes('event_badge/search') && r.status() === 200,
@@ -285,7 +285,7 @@ test.describe('Cold-start: Event Badges List (IndexedDB empty)', () => {
);
// Badge detail view test - navigate to specific badge
await page.goto(`/events/${demo_event}/badges/${demo_badge_id}`);
await page.goto(`/events/${event_id}/badges/${event_badge_id}`);
// Wait for badge view to load
await page.waitForTimeout(2000);