summaryrefslogtreecommitdiff
path: root/internal/store/sqlite_test.go
AgeCommit message (Collapse)Author
2026-01-22Fix slice reallocation bug in GetBoardsPeter Stone
The boardMap was storing pointers to Board structs in the boards slice. When the slice grew and reallocated, those pointers became stale, causing cards to be added to old memory locations instead of the current slice. Fixed by storing indices instead of pointers in boardMap. Added tests to verify multiple boards with varying card counts are correctly saved and retrieved. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20Remove Obsidian integration for public server deploymentPeter Stone
Obsidian relied on local filesystem access which is incompatible with public server deployment. This removes all Obsidian-related code including: - API client and interface - Store layer methods (SaveNotes, GetNotes, SearchNotes) - Handler methods and routes - UI tab and templates - Configuration fields - Related tests Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18Implement unified task completion with cache sync (Phase 3 Step 7)Peter Stone
Add checkbox UI to Tasks tab for completing Todoist tasks and archiving Trello cards. Fix cache synchronization so completed items stay gone after page reload by deleting them from SQLite cache after API success. - Add HandleCompleteAtom handler routing to Todoist/Trello APIs - Add DeleteTask/DeleteCard store methods for cache removal - Add htmx.process() calls after innerHTML updates in app.js - Add comprehensive tests for completion and cache behavior Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-12Add security tests for path traversal and SQL injection fixesPeter Stone
Created comprehensive test coverage for security fixes: - internal/api/obsidian_test.go: * TestGetNotes_SymlinkSecurity: Verifies symlinks are not followed * TestGetNotes_BasicFunctionality: Tests basic limit and ordering * Uses t.TempDir() for isolated test environments - internal/store/sqlite_test.go: * TestGetNotes_LimitClause: Validates LIMIT parameter handling * TestGetNotes_EmptyDatabase: Tests empty state * TestSaveNotes_Upsert: Verifies INSERT OR REPLACE behavior * TestGetNotes_SQLInjectionAttempt: Confirms parameterized queries * All tests use temporary SQLite databases for isolation All tests passing (7 new test cases). Security fixes from commits 325811c and 4c03e9c now have full test coverage. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>