Added test to send share invitation with user for deleted file

This commit is contained in:
Prarup Gurung
2024-01-31 12:26:49 +05:45
parent 1281a730e8
commit 743364403b
2 changed files with 65 additions and 2 deletions

View File

@@ -1947,3 +1947,45 @@ Feature: Send a sharing invitations
| Space Editor |
| Co Owner |
| Manager |
Scenario: send share invitation to user for deleted file
Given user "Alice" has uploaded file with content "to share" to "textfile1.txt"
And we save it into "FILEID"
And user "Alice" has deleted file "textfile1.txt"
When user "Alice" sends the following share invitation with file-id "<<FILEID>>" using the Graph API:
| space | Personal |
| sharee | Brian |
| shareType | user |
| permissionsRole | Viewer |
Then the HTTP status code should be "404"
And for user "Brian" the space Shares should not contain these entries:
| textfile1.txt |
And the JSON data of the response should match
"""
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"enum": ["itemNotFound"]
},
"message": {
"type": "string",
"enum": ["stat: error: not found: "]
}
}
}
}
}
"""

View File

@@ -130,6 +130,7 @@ class SharingNgContext implements Context {
/**
* @param string $user
* @param TableNode $table
* @param string|null $fileId
*
* @return ResponseInterface
*
@@ -137,7 +138,7 @@ class SharingNgContext implements Context {
* @throws \GuzzleHttp\Exception\GuzzleException
* @throws Exception
*/
public function sendShareInvitation(string $user, TableNode $table): ResponseInterface {
public function sendShareInvitation(string $user, TableNode $table, string $fileId = null): ResponseInterface {
$rows = $table->getRowsHash();
if ($rows['space'] === 'Personal' || $rows['space'] === 'Shares') {
$space = $this->spacesContext->getSpaceByName($user, $rows['space']);
@@ -146,8 +147,11 @@ class SharingNgContext implements Context {
}
$spaceId = $space['id'];
// $fileId is used for sharing deleted files
// for resharing a resource, "item-id" in API endpoint takes shareMountId
if ($rows['space'] === 'Shares') {
if ($fileId) {
$itemId = $fileId;
} elseif ($rows['space'] === 'Shares') {
$itemId = GraphHelper::getShareMountId(
$this->featureContext->getBaseUrl(),
$this->featureContext->getStepLineRef(),
@@ -236,6 +240,23 @@ class SharingNgContext implements Context {
);
}
/**
* @When user :user sends the following share invitation with file-id :fileId using the Graph API:
*
* @param string $user
* @param string $fileId
* @param TableNode $table
*
* @return void
* @throws JsonException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function userSendsTheFollowingShareInvitationWithFileIdUsingTheGraphApi(string $user, string $fileId, TableNode $table): void {
$this->featureContext->setResponse(
$this->sendShareInvitation($user, $table, $fileId)
);
}
/**
* @When /^user "([^"]*)" creates the following link share using the Graph API:$/
*