Skip to content

Commit

Permalink
add tests for share exipry
Browse files Browse the repository at this point in the history
  • Loading branch information
amrita-shrestha committed Jan 28, 2025
1 parent 453debe commit c1778d1
Show file tree
Hide file tree
Showing 2 changed files with 64 additions and 0 deletions.
46 changes: 46 additions & 0 deletions tests/acceptance/bootstrap/SharingNgContext.php
Original file line number Diff line number Diff line change
Expand Up @@ -2160,4 +2160,50 @@ public function userListsPermissionsWithFollowingFiltersForFileOrFolderOfTheSpac
$this->getPermissionsList($user, $fileOrFolder, $space, $resource, $query)
);
}

/**
* @When user :user expires the last created share:
*
* @param string $user
* @param TableNode $table
*
* @return void
*/
public function userExpiresTheLastCreatedShare(string $user, TableNode $table): void {
$permissionID = $this->featureContext->shareNgGetLastCreatedUserGroupShareID();
$bodyRows = $table->getRowsHash();
if ($bodyRows['space'] === 'Personal' || $bodyRows['space'] === 'Shares') {
$space = $this->spacesContext->getSpaceByName($user, $bodyRows['space']);
} else {
$space = $this->spacesContext->getCreatedSpace($bodyRows['space']);
}
$spaceId = $space["id"];
// for updating role of project space shared, we do not need to provide resource
$resource = $bodyRows['resource'] ?? '';
if ($resource === '' && !\in_array($bodyRows['space'], ['Personal', 'Shares'])) {
$itemId = $space['fileId'];
} else {
$itemId = $this->spacesContext->getResourceId($user, $bodyRows['space'], $resource);
}
$body = [];
$dateTime = new DateTime("now", new DateTimeZone("UTC"));
$body['expirationDateTime'] = $dateTime->modify('-5 minutes')->format('Y-m-d\TH:i:s\Z');

$response = GraphHelper::updateShare(
$this->featureContext->getBaseUrl(),
$this->featureContext->getStepLineRef(),
$user,
$this->featureContext->getPasswordForUser($user),
$spaceId,
$itemId,
\json_encode($body),
$permissionID
);

$this->featureContext->theHttpStatusCodeShouldBe(
200,
"Failed to update shared permissions for user '$user'.",
$response
);
}
}
18 changes: 18 additions & 0 deletions tests/acceptance/features/apiSettings/notificationSetting.feature
Original file line number Diff line number Diff line change
Expand Up @@ -607,3 +607,21 @@ Feature: Notification Settings
| message |
| Alice Hansen added you to Space new-space |
But user "Brian" should not have a notification related to space "new-space" with subject "Space disabled"


Scenario: check share expired in-app and mail notification for Personal space resource
Given user "Alice" has uploaded file with content "hello world" to "testfile.txt"
And user "Alice" has sent the following resource share invitation:
| resource | testfile.txt |
| space | Personal |
| sharee | Brian |
| shareType | user |
| permissionsRole | Viewer |
| expirationDateTime | 2025-07-15T14:00:00Z |
When user "Alice" expires the last created share:
| space | Personal |
| resource | testfile.txt |
Then user "Brian" should have "2" emails
And user "Brian" should get a notification with subject "Membership expired" and message:
| message |
| Access to Space Alice Hansen lost |

0 comments on commit c1778d1

Please sign in to comment.