diff --git a/tests/acceptance/features/bootstrap/CliContext.php b/tests/acceptance/features/bootstrap/CliContext.php index 9d7cdb4b15..e75f323ab9 100644 --- a/tests/acceptance/features/bootstrap/CliContext.php +++ b/tests/acceptance/features/bootstrap/CliContext.php @@ -32,6 +32,7 @@ use TestHelpers\OcisConfigHelper; */ class CliContext implements Context { private FeatureContext $featureContext; + private SpacesContext $spacesContext; /** * @BeforeScenario @@ -45,6 +46,7 @@ class CliContext implements Context { $environment = $scope->getEnvironment(); // Get all the contexts you need in this context $this->featureContext = $environment->getContext('FeatureContext'); + $this->spacesContext = $environment->getContext('SpacesContext'); } /** @@ -118,6 +120,25 @@ class CliContext implements Context { $this->featureContext->setResponse(CliHelper::runCommand($body)); } + /** + * @When the administrator removes the versions of file :file of user :user from space :space using the CLI + * + * @param string $file + * @param string $user + * @param string $space + * + * @return void + */ + public function theAdministratorRemovesTheVersionsOfFileUsingFileId($file, $user, $space) { + $path = $this->featureContext->getStorageUsersRoot(); + $fileId = $this->spacesContext->getFileId($user, $space, $file); + $command = "revisions purge -p $path -r $fileId --dry-run=false"; + $body = [ + "command" => $command + ]; + $this->featureContext->setResponse(CliHelper::runCommand($body)); + } + /** * @Then the command should be successful * diff --git a/tests/acceptance/features/cliCommands/removeFileVersions.feature b/tests/acceptance/features/cliCommands/removeFileVersions.feature index dba5e8f5ab..c4c8525b6c 100644 --- a/tests/acceptance/features/cliCommands/removeFileVersions.feature +++ b/tests/acceptance/features/cliCommands/removeFileVersions.feature @@ -13,3 +13,22 @@ Feature: remove file versions via CLI command When user "Alice" gets the number of versions of file "textfile.txt" Then the HTTP status code should be "207" And the number of versions should be "0" + + + Scenario: remove all versions of file using file-id + Given user "Alice" has been created with default attributes and without skeleton files + And user "Alice" has uploaded file with content "This is version 1" to "randomFile.txt" + And user "Alice" has uploaded file with content "This is version 2" to "randomFile.txt" + And user "Alice" has uploaded file with content "This is version 3" to "randomFile.txt" + And user "Alice" has uploaded file with content "This is version 1" to "anotherFile.txt" + And user "Alice" has uploaded file with content "This is version 2" to "anotherFile.txt" + And user "Alice" has uploaded file with content "This is version 3" to "anotherFile.txt" + When the administrator removes the versions of file "randomFile.txt" of user "Alice" from space "Personal" using the CLI + Then the command should be successful + And the command output should contain "✅ Deleted 2 revisions (6 files / 2 blobs)" + When user "Alice" gets the number of versions of file "randomFile.txt" + Then the HTTP status code should be "207" + And the number of versions should be "0" + When user "Alice" gets the number of versions of file "anotherFile.txt" + Then the HTTP status code should be "207" + And the number of versions should be "2"