Skip to content

test(coreApiWebdavUploadTUS): assert etag and permissions on the finalizing TUS chunk#3078

Open
michaelstingl wants to merge 1 commit into
opencloud-eu:mainfrom
michaelstingl:issue-2409-tus-finalize-headers
Open

test(coreApiWebdavUploadTUS): assert etag and permissions on the finalizing TUS chunk#3078
michaelstingl wants to merge 1 commit into
opencloud-eu:mainfrom
michaelstingl:issue-2409-tus-finalize-headers

Conversation

@michaelstingl

Copy link
Copy Markdown
Contributor

Warning

This scenario asserts headers that only a reva carrying the following change returns on the chunked TUS finalize:

This repo's reva pin (v2.46.4-0.20260625152426-8cff2a7032ec, 2026-06-25) predates that merge, so the scenario is red until the pin is bumped past it. It goes green with the bump; no code change here.

Description

Adds one scenario to tests/acceptance/features/coreApiWebdavUploadTUS/lowLevelUpload.feature: after a chunked TUS upload's finalizing PATCH, the response carries OC-ETag, ETag and OC-Perm, so a client does not need a follow-up PROPFIND for the new etag and permissions.

Reuses existing step definitions only (TUS create + sends a chunk + the following headers should match these regular expressions); the etag is a dynamic quoted hash, hence the regex assertion.

Related Issue

Locks the behaviour from #2409 (closed) in the acceptance suite. The fix itself is in reva:

Motivation and Context

The chunked finalize returning the etag was covered only by a reva unit test. This pins it at the product boundary so a later regression fails the suite, and states the intended behaviour as an executable spec rather than an implicit claim.

How Has This Been Tested?

Locally, one feature against a running server, on two builds:

  • stock opencloud-rolling:7.1 (before the reva change): create, chunks and 204 pass; the three header rows fail because the headers are absent.
  • opencloud built on a reva carrying the change: the whole lowLevelUpload.feature passes on posix and decomposed, the new scenario on old/new/spaces.

Screenshots (if appropriate):

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Technical debt
  • Tests only (no source changes)

Checklist:

  • Code changes
  • Unit tests added
  • Acceptance tests added
  • Documentation added (n/a: tests-only, no changelog fragment)

🤖 drafted with Claude Code, reviewed before submitting.

…lizing TUS chunk

The chunked TUS finalize returns OC-ETag, ETag and OC-Perm since
opencloud-eu/reva#718, so a client no longer
needs a follow-up PROPFIND for the new etag and permissions. Add a
scenario asserting these headers on the finalizing chunk, reusing
existing step definitions (the etag is a dynamic quoted hash, hence the
header-regex assertion).

Verified locally red->green: red on stock (headers absent), green on an
opencloud built on a reva carrying that change, on posix and decomposed.

opencloud-eu#2409
@codacy-production

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant