I have successfully implemented the fix for issue #101: "Invalidate claims:latest cache on claim resolution/finalization"
-
Method:
resolveClaim()- Changed fromsetClaim()toinvalidateClaim()- Ensures
claims:latestcache is invalidated when claim verdict is resolved - Maintains audit trail logging
- Ensures
-
Method:
finalizeClaim()- Changed fromsetClaim()toinvalidateClaim()- Ensures
claims:latestcache is invalidated when claim is finalized - Maintains audit trail logging
- Ensures
- Added clarifying comment on existing
invalidateClaim()call inresolveClaim()
-
Added
resolveClaimtest suite with 4 comprehensive tests:- ✅ Should resolve a claim with verdict and confidence score
- ✅ Should invalidate claims:latest cache when resolving
- ✅ Should throw error if claim not found
- ✅ Should log audit trail when resolving
-
Added
finalizeClaimtest suite with 4 comprehensive tests:- ✅ Should finalize a claim
- ✅ Should invalidate claims:latest cache when finalizing
- ✅ Should throw error if claim not found
- ✅ Should log audit trail when finalizing
cd /workspaces/truthbounty-api
bash commit-fix.sh# Navigate to repo
cd /workspaces/truthbounty-api
# Configure git (if needed)
git config user.name "Your Name"
git config user.email "your.email@example.com"
# Create feature branch
git checkout -b fix/issue-101-cache-invalidation
# Stage the changed files
git add src/claims/claims.service.ts
git add src/claims/claim-resolution.service.ts
git add src/claims/claims.service.spec.ts
# Commit with issue reference
git commit -m "fix: Cache invalidation for claim resolution/finalization - Closes #101
- Invalidate claims:latest cache when resolving a claim
- Invalidate claims:latest cache when finalizing a claim
- Add comprehensive tests to verify cache invalidation
- Both resolveClaim() and finalizeClaim() now call invalidateClaim()
Closes #101"
# Push to remote
git push -u origin fix/issue-101-cache-invalidationOnce the branch is pushed, create a PR with:
Title:
fix: Cache invalidation for claim resolution/finalization
Description:
## Overview
Fixes issue #101: Claims cache not invalidated on resolution/finalization
## Changes
- Updated `resolveClaim()` to call `invalidateClaim()` instead of `setClaim()`
- Updated `finalizeClaim()` to call `invalidateClaim()` instead of `setClaim()`
- Added comprehensive test coverage for cache invalidation
## Acceptance Criteria
- ✅ List cache invalidated on claim resolution
- ✅ List cache invalidated on claim finalization
- ✅ Tests demonstrate cache invalidation behavior
- ✅ Audit trails still logged correctly
Closes #101
When claims were resolved or finalized, the claims:latest cache wasn't being invalidated, causing clients to see stale data until the TTL expired (~1 hour).
Both resolveClaim() and finalizeClaim() now call invalidateClaim(), which invalidates:
- The specific claim cache (
claim:${id}) - The latest claims list cache (
claims:latest) - Optionally, the user-specific claims cache if needed
- Clients now see fresh claim data immediately after resolution/finalization
- No more stale data issues
- Better user experience with real-time updates
The implementation includes 8 new tests:
- 4 tests for
resolveClaim()method - 4 tests for
finalizeClaim()method
All tests verify: ✅ Cache invalidation is called ✅ Correct parameters passed ✅ Error handling works ✅ Audit trail logging works
Run tests locally:
npm test -- src/claims/claims.service.spec.tsAll tests should pass ✅