super-productivity/packages/super-sync-server/tests
Johannes Millan 100b8af5f2 fix(sync): return existingClock in conflict rejections to fix infinite loop
When encryption is enabled, clients could get stuck in infinite conflict
resolution loops because they couldn't create vector clocks that dominate
the server's state. The server already computed the existingClock during
conflict detection but didn't return it to the client.

This fix:
- Adds existingClock to UploadResult type (server)
- Returns conflict.existingClock in CONFLICT_CONCURRENT/CONFLICT_STALE rejections
- Passes existingClock through client upload service to rejected ops handler
- Merges entity clocks into extraClocks for stale operation resolution

Includes E2E tests for encryption + conflict resolution scenarios.
2026-01-25 18:10:08 +01:00
..
integration fix(sync): clamp future timestamps instead of rejecting 2025-12-28 12:23:36 +01:00
api.routes.spec.ts fix: harden supersync entity allowlist and verify-email route 2025-12-12 20:48:40 +01:00
auth-flows.spec.ts Fix super-sync server auth and snapshot safety 2025-12-12 20:48:13 +01:00
cleanup.spec.ts test(sync): add comprehensive tests for retention configuration 2025-12-28 12:13:45 +01:00
config.spec.ts feat(cors): normalize domain to lowercase and validate non-empty origins 2026-01-24 21:14:57 +01:00
conflict-detection.spec.ts fix(sync): return existingClock in conflict rejections to fix infinite loop 2026-01-25 18:10:08 +01:00
decompress-body.spec.ts fix(sync): handle base64-encoded gzip from Android clients 2025-12-28 10:37:45 +01:00
device.service.spec.ts refactor(sync): extract DeviceService and OperationDownloadService 2025-12-27 20:43:25 +01:00
duplicate-operation-precheck.spec.ts fix(sync): prevent duplicate operation from aborting batch upload 2025-12-31 16:39:55 +01:00
email.spec.ts Fix super-sync server auth and snapshot safety 2025-12-12 20:48:13 +01:00
gap-detection.spec.ts fix(sync): prevent infinite rejection loop from corrupt operations 2025-12-31 17:29:25 +01:00
operation-download.service.spec.ts fix: address code review findings from Dec 27-29 changes 2025-12-29 10:37:12 +01:00
passkey.spec.ts test(sync): fix failing unit tests for recent server changes 2026-01-24 21:14:58 +01:00
password-reset-api.spec.ts fix(security): address critical and high severity vulnerabilities 2025-12-31 12:15:56 +01:00
password-reset.spec.ts fix(security): address critical and high severity vulnerabilities 2025-12-31 12:15:56 +01:00
rate-limit.service.spec.ts refactor(sync): extract services from SyncService and migrate tests to Prisma 2025-12-27 20:38:26 +01:00
registration-api.spec.ts chore(sync-server): update npm scripts and expand legal docs 2025-12-15 13:47:42 +01:00
request-deduplication.service.spec.ts refactor(sync): extract services from SyncService and migrate tests to Prisma 2025-12-27 20:38:26 +01:00
retention-config.spec.ts fix(security): address critical and high severity vulnerabilities 2025-12-31 12:15:56 +01:00
security-fixes.spec.ts test(sync): fix failing unit tests for recent server changes 2026-01-24 21:14:58 +01:00
server-security.spec.ts test(supersync): add integration tests for CORS wildcard patterns 2026-01-24 21:14:57 +01:00
setup.ts fix(sync): prevent duplicate operation from aborting batch upload 2025-12-31 16:39:55 +01:00
snapshot-skip-optimization.spec.ts test(sync-server): add comprehensive edge case tests for snapshot skip 2025-12-17 11:42:32 +01:00
snapshot.service.spec.ts test(sync): add tests for clearForUser and vector clock pruning 2025-12-28 09:52:02 +01:00
storage-quota-cleanup.spec.ts style: apply prettier formatting 2026-01-10 17:09:14 +01:00
storage-quota.service.spec.ts refactor(sync): extract StorageQuotaService from SyncService 2025-12-27 20:48:08 +01:00
sync-fixes.spec.ts fix(sync): prevent infinite rejection loop from corrupt operations 2025-12-31 17:29:25 +01:00
sync-operations.spec.ts test(sync): fix failing unit tests for recent server changes 2026-01-24 21:14:58 +01:00
sync-types.spec.ts fix(sync): address 5 critical sync system issues 2025-12-22 10:32:57 +01:00
sync.routes.spec.ts test(server): fix testing gaps and failing tests 2026-01-05 17:39:17 +01:00
sync.service.spec.ts test(server): add unit tests for deleteAllUserData (Reset Account) 2026-01-05 15:47:43 +01:00
sync.service.test-state.ts refactor(sync): remove tombstone system 2025-12-28 12:08:28 +01:00
time-tracking-operations.spec.ts fix(sync): prevent infinite rejection loop from corrupt operations 2025-12-31 17:29:25 +01:00
validation.service.spec.ts fix(sync-server): reject empty/whitespace-only entityId in validation 2026-01-02 13:58:07 +01:00