OUT-4039: L1.2 — Dropbox webhook delta flow tests - #126
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Greptile SummaryThis PR adds integration coverage for the ongoing Dropbox webhook delta flow.
Confidence Score: 5/5The PR appears safe to merge. No blocking failure remains. Important Files Changed
Sequence DiagramsequenceDiagram
participant Dropbox
participant Webhook
participant Sync
participant Copilot
participant DB
Dropbox->>Webhook: Delta notification
Webhook->>Sync: Fetch cursor changes
Sync->>Copilot: Delete stale file when required
Sync->>Copilot: Create or upload changed file
Sync->>DB: Persist live and soft-deleted mappings
Sync->>DB: Advance cursor and timestamps
Reviews (2): Last reviewed commit: "test(OUT-4039): sign webhook route test ..." | Re-trigger Greptile |
Collaborator
Author
|
@greptileai review again |
…lete) mockDropboxLatestCursor and mockCopilotDeleteFile for the webhook-delta path, each proven by a harness test driving the real client method. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Drive fetchDropBoxChanges inline: new / delete / rename / content-change / unchanged-no-op, asserting final fileFolderSync + channel cursor state. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Account-level 5-min debounce (defer vs trigger) and the route handler (HMAC 200/403/400 + GET challenge echo). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Greptile P2: the DB soft-delete can't see which Copilot file was deleted. mockCopilotDeleteFile now captures the deleted ids, and the delete / rename / content-change scenarios assert exactly the mapped file's assemblyFileId was sent (once) — catching wrong-id / extra-call regressions. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Greptile P2: the hardcoded 'test-dropbox-app-secret' duplicated placeholder-env and could drift, silently breaking the valid-signature test. Sign with env.DROPBOX_APP_SECRET — the same value the controller verifies against. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
SandipBajracharya
force-pushed
the
OUT-4039
branch
from
August 13, 2026 05:05
024bd17 to
9fb4c72
Compare
Collaborator
Author
|
@greptile-apps both P2 suggestions were applied and are merged into
Both were good catches — thanks. |
|
Both improvements are solid — capturing the actual |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & why
L1.2 — integration tests for the ongoing Dropbox→Assembly webhook delta flow (vs L1.1's initial sync). Drives the real task graph in-process (via the L1.0 Trigger double) against Testcontainers Postgres, with Dropbox + Copilot faked via MSW.
Stacked on OUT-4034 (PR #125) — it consumes that PR's MSW write handlers + Trigger double. Base is
OUT-4034; retarget tomainonce #125 merges.Changes (all
test/**, zero production change)test/msw/write.ts(+mockDropboxLatestCursor,mockCopilotDeleteFile) + harness teststest/flows/dropbox-webhook-delta.integration.test.ts— new / delete / rename / content-change / unchanged-no-optest/flows/dropbox-webhook-debounce.integration.test.ts— 5-min debounce: defer vs triggertest/flows/dropbox-webhook-route.integration.test.ts— route HMAC 200/403/400 + GET challengeWhat it proves
onUnhandledRequest:'error').pendingWebhook=true, no sync; older → sync runs.The DB-row assertions are the real verification (a thrown leaf resolves to
{ok:false}in the inline double without failing the call). Reviewed by the fullstack reviewer.Testing
pnpm typecheck✅ ·pnpm lint✅pnpm test:integration— 62/62 ✅ (10 files)🤖 Generated with Claude Code