storj/docs/testplan/object-versioning-testplan.md
Igor 720b75ad73
docs/testplan: add object versioning testplan (#6444)
* docs/testplan: add object versioning testplan
2023-11-16 11:46:25 +01:00

7.7 KiB

Object Versioning

Background

This testplan covers Object Versioning  

Test Scenario Test Case Description Comments
Copy To a bucket that has versioning enabled Should add one version to it(make a new version and make in latest) check the column "versioning_state" in "bucket_metainfo"
To a bucket that has version disabled Make sure GE was not initiated for the disqualified node.
Copy object Should support copying a specific version, should copy the latest version of an object if not specified
Move To a bucket that has versioning enabled Should add one version to it check the column "versioning_state" in "bucket_metainfo"
To a bucket that has version disabled Perform GE on node with less then 50% of score. Node should fail to GE
Delete Delete one from many versions Create 3 versions of the same file and delete the middle one indicating the version id
All versions Unconditionally deletes all versions of an object
Delete bucket Force delete bucket with files that has versioning. We should keep all versions of the files unless manually deleted
Restore Delete and restore Delete version of the file and restore from that version
Restore Create few versions of the file and restore from latest to older version
Create Create new bucket Versioning should be inherited from project level
Suspend Suspend versioning Suspend versioning on a bucket that had versioning enabled. 3 versions of a file exists. Try to upload the same file again. -> the newest file gets overriden. The older 2 versions stay intact
Update Update metadata Metadata update should not create new version. Takes the version as input but does not use it. Only updates the metadata for the highest committed object version.
List all versions Unconditionally returns all object versions. Listing all versions should include delete markers. Versions come out created last to first
UI UI UI should always show the latest version of each object
Buckets Old Old buckets created before the feature should be in "unsupported" state
Enable versioning after upload Upload obj to a bucket with versioning disabled and then enable versioning. Check version of the object
PutObject Versioning enabled When object with same name uploaded to a bucket we should create new unique version of the object
Versioning disabled Latest version of the object is overwritten by the new object, new object has a version ID of null
Multipart Multipart upload with versioning enabled
Expiration Create object with expiration in versioned bucket, delete marker should be applied to it

Third-party test suite

These test suites have good tests inside, so we should run all versioning related tests in them

Questions

  • Can a customer set a maximum number of versions?
  • Can a customer pin specific versions to make sure they can't be deleted by malware?
  • Can a project member with a restricted access grant modify the version flag on a bucket? Which permissions does the access grant need?