feat(phase2): phase 6 - integration & polish
Fix all build/type/lint errors, write 60 new tests (175 total), update seed with new widget types and team board permissions, install missing svelte-i18n dependency, fix DynamicIcon for Svelte 5.
This commit is contained in:
@@ -2,10 +2,12 @@
|
||||
|
||||
## Current State
|
||||
|
||||
Phase 1 (OAuth/Authentik Integration) and Phase 2 (DnD) are complete.
|
||||
Installed `openid-client` v6.8.2. OAuth login flow uses PKCE and issues local JWT tokens.
|
||||
Login page conditionally shows OAuth button and/or local form based on `authMode` SystemSettings.
|
||||
Admin settings page has a working "Test Connection" button for OAuth configuration.
|
||||
All 6 phases complete. The codebase is fully integrated and passing all checks.
|
||||
|
||||
- `npm run build` succeeds
|
||||
- `npm run check` passes (0 errors)
|
||||
- `npm run lint` passes (0 errors)
|
||||
- `npm test` passes (175 tests, 14 test files)
|
||||
|
||||
## Temporary Workarounds
|
||||
- None yet
|
||||
@@ -77,3 +79,17 @@ Admin settings page has a working "Test Connection" button for OAuth configurati
|
||||
- Updated `src/routes/boards/[boardId]/+page.server.ts` — loads users/groups for share dialog when user can edit
|
||||
- Added ~20 new i18n keys (`board.access_*`, `board.share_*`, `board.guest_access_*`, `board.permissions_*`, `admin.perm_search_placeholder`) to both `en.json` and `ru.json`
|
||||
- Big Bang strategy: no build/test verification performed — Phase 6 integration may be needed
|
||||
|
||||
## Phase 6 (Integration & Polish) — Completed
|
||||
|
||||
- Installed missing `svelte-i18n` dependency
|
||||
- Fixed `oauthService.ts` type error: undefined sub claim now guarded before `fetchUserInfo` call
|
||||
- Fixed `DynamicIcon.svelte`: replaced deprecated `<svelte:component>` with Svelte 5 dynamic component pattern
|
||||
- Fixed lint errors: removed unused imports (`error` in oauth test, `WidgetType` in edit page), suppressed `@html` lint rule on sanitized content, marked unused `boardId` prop in DraggableSection
|
||||
- Disabled `svelte/prefer-writable-derived` ESLint rule for Svelte files (DnD requires `$state` + `$effect` pattern)
|
||||
- Wrote 60 new tests across 4 test files:
|
||||
- `oauthService.test.ts` (10 tests) — PKCE, auth URL, callback, cache invalidation
|
||||
- `widgetValidators.test.ts` (28 tests) — all 5 widget config schemas
|
||||
- `boardReorder.test.ts` (9 tests) — section/widget reorder, cross-section move
|
||||
- `permissions.test.ts` (13 tests) — GET/POST/DELETE board permissions API
|
||||
- Updated `prisma/seed.ts` with bookmark, note, embed, status widgets + team board with user/group permissions
|
||||
|
||||
Reference in New Issue
Block a user