## Summary This PR fixes several pre-existing type errors identified by `svelte-check`: 1. **PartyService constructor** - Removed unused `fetch` argument from constructor call in `teams/[id]/+page.server.ts`. The `PartyService` class has an empty constructor that doesn't accept any parameters. 2. **PaginatedResponse property** - Changed `response.per` to `response.perPage` in `teams/explore/+page.server.ts` to match the `PaginatedResponse<T>` type definition. 3. **Broken test files** - Removed 3 test files that were importing non-existent `actions` exports: - `database/characters/[id]/page.server.test.ts` - `database/summons/[id]/page.server.test.ts` - `database/weapons/[id]/page.server.test.ts` These tests were testing SvelteKit form actions that don't exist in the corresponding `+page.server.ts` files. Reduces `svelte-check` errors from 419 to 366 (-53 errors). ## Review & Testing Checklist for Human - [ ] **Verify party loading works** - Navigate to `/teams/[shortcode]` and confirm party data loads correctly. The `PartyService` now uses `partyAdapter` directly without a custom fetch function - verify this works on both client and server. - [ ] **Verify explore pagination** - Navigate to `/teams/explore` and confirm pagination displays correctly (page count, items per page). - [ ] **Confirm deleted tests were not needed** - The removed tests were for form actions (`actions.save`) that don't exist. Verify there's no plan to implement these actions soon, or if there is, the tests should be re-added when the actions are implemented. ### Notes The deleted test files were testing functionality that doesn't exist - they imported `actions` from page.server.ts files that only export `load` functions, not form actions. If database entity editing via form actions is planned, new tests should be written when that functionality is implemented. Link to Devin run: https://app.devin.ai/sessions/611580bc2db94e20a48c3692d3cbd432 Requested by: Justin Edmund (justin@jedmund.com) / @jedmund Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: Justin Edmund <justin@jedmund.com>
33 lines
895 B
TypeScript
33 lines
895 B
TypeScript
import type { PageServerLoad } from './$types'
|
|
import { PartyService } from '$lib/services/party.service'
|
|
|
|
export const load: PageServerLoad = async ({ params, fetch, locals }) => {
|
|
// Get auth data directly from locals instead of parent()
|
|
const authUserId = locals.session?.account?.userId
|
|
|
|
// Try to fetch party data on the server
|
|
const partyService = new PartyService()
|
|
|
|
let partyFound = false
|
|
let party = null
|
|
let canEdit = false
|
|
|
|
try {
|
|
// Fetch the party
|
|
party = await partyService.getByShortcode(params.id)
|
|
partyFound = true
|
|
|
|
// Determine if user can edit
|
|
canEdit = authUserId ? party.user?.id === authUserId : false
|
|
} catch (err) {
|
|
// Error is expected for test/invalid IDs
|
|
}
|
|
|
|
// Return party data with explicit serialization
|
|
return {
|
|
party: party ? structuredClone(party) : null,
|
|
canEdit: Boolean(canEdit),
|
|
partyFound,
|
|
authUserId: authUserId || null
|
|
}
|
|
}
|