test(cypress): wait for the S3 CRUD delete requests instead of stale page-load runs - #42282
Draft
wyattwalter wants to merge 1 commit into
Draft
wyattwalter wants to merge 1 commit into
wyattwalter wants to merge 1 commit into
Conversation
…page-load runs S3_1_spec test 6 asserted the delete succeeded by consuming the shared postExecute alias, which still held the CRUD page's second page-load ListFiles and the search ListFiles. When the full-bucket page-load LIST timed out, that stale failed response was the one the wait yielded. Register a fresh alias right before Confirm so both waits land on DeleteFile and the prefixed ListFiles refresh it triggers. https://linear.app/appsmith/issue/APP-16023 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Contributor
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueComment |
This branch has not been deployed
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.
Description
S3_1_spec.jstest 6 generates a CRUD page on the shared S3 test bucket, searches for the file it created, deletes it through the page's delete modal, and asserts the delete succeeded with twocy.wait("@postExecute")calls. That alias is registered once for the whole spec, so the waits yield the oldest execute request nobody has waited on, not the two requests Confirm fires.Generating the page fires the page-load
ListFilestwice (page load, then the layout update that follows); the spec waits for one. Typing the search prefix fires a third. Confirm firesDeleteFileand then a prefixedListFilesfrom its success callback. The first post-Confirm wait therefore yields the second page-loadListFiles, which lists the whole bucket with an empty prefix. In every failing log that request had timed out at the 10 s default (PE-QRY-5000,EXECUTE_PLUGIN_ACTION_ERROR,isPageLoad: true, HTTP 200 withisExecutionSuccess: false). The delete itself had succeeded.This change registers a fresh intercept alias immediately before Confirm and waits on it twice, so the two existing assertions land on
DeleteFileand the refreshListFiles. No assertion is relaxed; the test now checks the delete it triggered.Evidence, first-attempt logs of the scheduled release image test
Three retry events in three runs, same test, same failing command (
assert expected false to equal trueonresponse.body.data.isExecutionSuccessright afterwait @postExecute):The full-bucket LIST exceeding 10 s is a property of the shared test bucket and is raised separately. This PR removes the spec's dependence on that request; it does not make the LIST faster, so test 1 can still hit the timeout on its own query. No red-before repro is possible on demand for an external timing condition, so the evidence is the three logs above.
Call sites checked
The same "Confirm, then wait on the shared execute alias" pattern exists in
GenerateCRUD/MongoURI_Spec.tsandGenerateCRUD/Postgres2_Spec.ts. Both run against database plugins whose page-load queries return quickly and both assert only the HTTP status, so they are not affected by this failure mode and are left unchanged.Fixes https://linear.app/appsmith/issue/APP-16023
Automation
/ok-to-test tags="@tag.All"
🤖 Generated with Claude Code
Tip
🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/36120402437
Commit: 8a27846
Cypress dashboard.
Tags:
@tag.AllSpec:
Fri, 25 Sep 2026 10:41:42 UTC