chore: svelte-check cleanup — fix Svelte 5 patterns in events/pres_mgmt, badges, launcher, and tests

Source changes (0 errors, 175 warnings after):
- api_post__crud_obj_v3: add backward-compat migration aliases (for_obj_type/id, obj_type/id) to nested CRUD funcs
- ae_events__event_device/presenter/session: make event_id/presentation_id optional; fall back to store value
- element_ae_obj_field_editor_v3: import type Snippet properly; mark current_value as $bindable()
- ae_comp__badge_obj_view: fix $derived(() => false) → $derived(false) for show_receipt/show_tickets
- badge templates: pass explicit event_id param to delete/update calls
- launcher/+page: capture URL params as stable consts; pass event_id to update_ae_obj__event_device
- ae_comp__event_device_obj_li: wrap setInterval in $effect; onDestroy cleanup always registered
- ae_comp__event_device_obj_li_wrapper: move console.log to $effect; fix self-closing tag
- presenter form/menu/view/list: add missing event_presentation_id to all update/delete calls
- reports/locations/presenter/+page: move store assignments into $effect + untrack; ae_acct → $derived
- session/+page: add Comp_event_presenter_form_agree import; cast for type compat
- session_view: wrap <img onclick> in <button> for accessibility/validity
- ae_comp__event_presentation_obj_li: remove unneeded event_id/session_id from create_ae_obj__event_presenter
- ae_comp__event_session_obj_li: make lq prop optional; add plain-array fallback prop
- location/+page: refactor to $derived ae_acct, $effect+untrack for stores, simplified session/file sections
- location_page_menu: add optional data prop; export interface

Tests:
- Rename ae_events__event_badge.spec.ts → ae_events__event_badge.test.ts (extended coverage)
- All test files: 'warn' → 'warning' (Playwright API), addInitScript array-destructure pattern, import type fixes
- ae_defaults: remove duplicate hide_app_cfg key; meaningful sponsorship cfg_id placeholder
- create_event_badge.spec: fix import path to use $lib alias
- event_presenter.test: fix test URL to use /presenter/:id route

NOTE: location/+page.svelte — Element_manage_event_file_li_wrap no longer receives
allow_basic/allow_moderator (now default false); file list shows but management
actions may be restricted. Follow-up needed to restore auth__kv-based access.
This commit is contained in:
Scott Idem
2026-03-05 20:05:35 -05:00
parent 56419a097f
commit 73597cb8b4
41 changed files with 404 additions and 444 deletions

View File

@@ -91,8 +91,7 @@ export const ae_app_local_data_defaults = {
hide_theme: false,
expand_theme: false,
hide_app_cfg: false,
expand_app_cfg: false,
hide_app_cfg: false
expand_app_cfg: false
},
debug_menu: { hide: false, expand: false },
app_cfg: {
@@ -136,7 +135,7 @@ export const ae_app_local_data_defaults = {
journals: {},
posts: {},
sponsorships: {
cfg_id: 'XXXX',
cfg_id: 'SPONSORSHIP_CFG_ID',
for_type: null,
for_id: null,
level_guest_max_li: { 0: 0, 1: 4, 2: 8, 3: 8, 4: 8, 5: 8, 6: 16, 7: 16 },

View File

@@ -1,4 +1,4 @@
import { Page } from '@playwright/test';
import type { Page } from '@playwright/test';
import { mock_site_domain } from './env';
export const minimal_event = (event_id: string) => ({

View File

@@ -5,7 +5,7 @@ test.describe('Archive Content Page - smoke', () => {
test.beforeEach(async ({ page }) => {
page.on('pageerror', (err) => console.error(`BROWSER ERROR: ${err.message}`));
page.on('console', (msg) => {
if (msg.type() === 'error' || msg.type() === 'warn') console.error(`BROWSER [${msg.type().toUpperCase()}]: ${msg.text()}`);
if (msg.type() === 'error' || msg.type() === 'warning') console.error(`BROWSER [${msg.type().toUpperCase()}]: ${msg.text()}`);
});
await page.route('**/*oneskyit.com/**', async (route) => {

View File

@@ -9,7 +9,7 @@ test.describe('Cold-start: Event Badges List (IndexedDB empty)', () => {
test.beforeEach(async ({ page }) => {
page.on('pageerror', (err) => console.error(`BROWSER ERROR: ${err.message}`));
page.on('console', (msg) => {
if (msg.type() === 'error' || msg.type() === 'warn')
if (msg.type() === 'error' || msg.type() === 'warning')
console.error(`BROWSER [${msg.type().toUpperCase()}]: ${msg.text()}`);
});
@@ -269,7 +269,7 @@ test.describe('Cold-start: Event Badges List (IndexedDB empty)', () => {
resolve({ found: false });
}
});
}, { event_id, event_badge_id });
}, { event_id, event_badge_id }) as any;
expect(idb_check.found).toBe(true);
expect(idb_check.has_full_name).toBe(true);

View File

@@ -14,7 +14,7 @@ test.describe('Cold-start: Event Session (IndexedDB empty)', () => {
test.beforeEach(async ({ page }) => {
page.on('pageerror', (err) => console.error(`BROWSER ERROR: ${err.message}`));
page.on('console', (msg) => {
if (msg.type() === 'error' || msg.type() === 'warn')
if (msg.type() === 'error' || msg.type() === 'warning')
console.error(`BROWSER [${msg.type().toUpperCase()}]: ${msg.text()}`);
});

View File

@@ -8,7 +8,7 @@ test.describe('Cold-start: Event Settings (IndexedDB empty)', () => {
test.beforeEach(async ({ page }) => {
page.on('pageerror', (err) => console.error(`BROWSER ERROR: ${err.message}`));
page.on('console', (msg) => {
if (msg.type() === 'error' || msg.type() === 'warn')
if (msg.type() === 'error' || msg.type() === 'warning')
console.error(`BROWSER [${msg.type().toUpperCase()}]: ${msg.text()}`);
});

View File

@@ -9,7 +9,7 @@ test.describe('Cold-start: Journal view (IndexedDB empty)', () => {
test.beforeEach(async ({ page }) => {
page.on('pageerror', (err) => console.error(`BROWSER ERROR: ${err.message}`));
page.on('console', (msg) => {
if (msg.type() === 'error' || msg.type() === 'warn')
if (msg.type() === 'error' || msg.type() === 'warning')
console.error(`BROWSER [${msg.type().toUpperCase()}]: ${msg.text()}`);
});

View File

@@ -9,16 +9,16 @@ test.describe('Event Badge Page - smoke', () => {
test.beforeEach(async ({ page }) => {
page.on('pageerror', (err) => console.error(`BROWSER ERROR: ${err.message}`));
page.on('console', (msg) => {
if (msg.type() === 'error' || msg.type() === 'warn') console.error(`BROWSER [${msg.type().toUpperCase()}]: ${msg.text()}`);
if (msg.type() === 'error' || msg.type() === 'warning') console.error(`BROWSER [${msg.type().toUpperCase()}]: ${msg.text()}`);
});
await attach_minimal_v3_routes(page, event_id);
await page.addInitScript((defaults, event_id, account_id) => {
const test_data = { ...defaults, account_id: account_id, manager_access: true };
await page.addInitScript(([defaults, event_id, account_id]) => {
const test_data = { ...defaults, account_id: account_id, manager_access: true } as any;
test_data.mod = { ...defaults.mod, events: { ...defaults.mod.events, event_id } };
window.localStorage.setItem('ae_loc', JSON.stringify(test_data));
}, ae_app_local_data_defaults, event_id, testing_account_id);
}, [ae_app_local_data_defaults, event_id, testing_account_id] as const);
});
test('loads badges list without console errors', async ({ page }) => {

View File

@@ -36,7 +36,7 @@ test.describe('Event Badge - Attendee Workflow', () => {
// Error logging
page.on('pageerror', (err) => console.error(`BROWSER ERROR: ${err.message}`));
page.on('console', (msg) => {
if (msg.type() === 'error' || msg.type() === 'warn')
if (msg.type() === 'error' || msg.type() === 'warning')
console.error(`BROWSER [${msg.type().toUpperCase()}]: ${msg.text()}`);
});

View File

@@ -8,7 +8,7 @@ test.describe('event_badge_crud (create, find, edit, delete)', () => {
test.beforeEach(async ({ page }) => {
page.on('pageerror', (err) => console.error(`BROWSER ERROR: ${err.message}`));
page.on('console', (msg) => {
if (msg.type() === 'error' || msg.type() === 'warn')
if (msg.type() === 'error' || msg.type() === 'warning')
console.error(`BROWSER [${msg.type().toUpperCase()}]: ${msg.text()}`);
});

View File

@@ -10,7 +10,7 @@ test.describe('Badge Data Integrity & Field Mapping', () => {
test.beforeEach(async ({ page }) => {
page.on('pageerror', (err) => console.error(`BROWSER ERROR: ${err.message}`));
page.on('console', (msg) => {
if (msg.type() === 'error' || msg.type() === 'warn')
if (msg.type() === 'error' || msg.type() === 'warning')
console.error(`BROWSER [${msg.type().toUpperCase()}]: ${msg.text()}`);
});

View File

@@ -8,7 +8,7 @@ test.describe('Event Badge - interaction', () => {
test.beforeEach(async ({ page }) => {
page.on('pageerror', (err) => console.error(`BROWSER ERROR: ${err.message}`));
page.on('console', (msg) => {
if (msg.type() === 'error' || msg.type() === 'warn')
if (msg.type() === 'error' || msg.type() === 'warning')
console.error(`BROWSER [${msg.type().toUpperCase()}]: ${msg.text()}`);
});

View File

@@ -9,26 +9,27 @@ test.describe('Event Presenter Page - smoke', () => {
test.beforeEach(async ({ page }) => {
page.on('pageerror', (err) => console.error(`BROWSER ERROR: ${err.message}`));
page.on('console', (msg) => {
if (msg.type() === 'error' || msg.type() === 'warn') console.error(`BROWSER [${msg.type().toUpperCase()}]: ${msg.text()}`);
if (msg.type() === 'error' || msg.type() === 'warning') console.error(`BROWSER [${msg.type().toUpperCase()}]: ${msg.text()}`);
});
await attach_minimal_v3_routes(page, event_id);
await page.addInitScript((defaults, event_id, account_id) => {
const test_data = { ...defaults, account_id: account_id, manager_access: true };
// ensure the events module has the event id available
await page.addInitScript(([defaults, event_id, account_id]) => {
const test_data = { ...defaults, account_id: account_id, manager_access: true } as any;
test_data.mod = { ...defaults.mod, events: { ...defaults.mod.events, event_id } };
window.localStorage.setItem('ae_loc', JSON.stringify(test_data));
}, ae_app_local_data_defaults, event_id, testing_account_id);
}, [ae_app_local_data_defaults, event_id, testing_account_id] as const);
});
test('opens presenter editor without throwing', async ({ page }) => {
test('loads presenter page without console errors', async ({ page }) => {
const presenter_id = 'pres-1';
const errors: string[] = [];
page.on('pageerror', (e) => errors.push(e.message));
page.on('pageerror', (err) => errors.push(err.message));
await page.goto(`/events/${event_id}/presenters`);
await page.goto(`/events/${event_id}/presenter/${presenter_id}`);
await page.waitForResponse((r) => r.url().includes('site_domain/search') && r.status() === 200);
expect(errors).toHaveLength(0);
});
});

View File

@@ -13,7 +13,7 @@ vi.mock('$lib/api/api', () => ({ api: { create_nested_obj_v3: mockCreateNested }
vi.mock('$lib/ae_core/core__idb_dexie', () => ({ db_save_ae_obj_li__ae_obj: vi.fn() }));
// Import the function under test after mocks
import { create_ae_obj__event_badge } from '../../../src/lib/ae_events/ae_events__event_badge';
import { create_ae_obj__event_badge } from '$lib/ae_events/ae_events__event_badge';
describe('create_ae_obj__event_badge', () => {
beforeEach(() => {

View File

@@ -34,7 +34,7 @@ test.describe('V3 API Nested CRUD Integrity', () => {
// Log browser console errors to the terminal
page.on('pageerror', (err) => console.error(`BROWSER ERROR: ${err.message}`));
page.on('console', (msg) => {
if (msg.type() === 'error' || msg.type() === 'warn') {
if (msg.type() === 'error' || msg.type() === 'warning') {
console.error(`BROWSER [${msg.type().toUpperCase()}]: ${msg.text()}`);
}
});

View File

@@ -7,7 +7,7 @@ test.describe('V3 API Header Integrity (modernized)', () => {
test.beforeEach(async ({ page }) => {
page.on('pageerror', (err) => console.error(`BROWSER ERROR: ${err.message}`));
page.on('console', (msg) => {
if (msg.type() === 'error' || msg.type() === 'warn') {
if (msg.type() === 'error' || msg.type() === 'warning') {
console.error(`BROWSER [${msg.type().toUpperCase()}]: ${msg.text()}`);
}
});