Added api test for changing app role of user

This commit is contained in:
Prarup Gurung
2023-05-22 16:05:54 +05:45
parent 77e86eda31
commit 8d06acf030
2 changed files with 81 additions and 0 deletions

View File

@@ -0,0 +1,48 @@
@api
Feature: change role
As an admin
I want to change the role of user
So that I can manage the role of user
Background:
Given user "Alice" has been created with default attributes and without skeleton files
Scenario Outline: admin user changes the role of another user with different roles
Given user "Brian" has been created with default attributes and without skeleton files
And the administrator has assigned the role "Admin" to user "Alice" using the Graph API
And the administrator has assigned the role "<userRole>" to user "Brian" using the Graph API
When user "Alice" changes the role of user "Brian" to role "<newRole>" using the Graph API
Then the HTTP status code should be "201"
And user "Brian" should have the role "<newRole>"
Examples:
| userRole | newRole |
| Admin | Admin |
| Admin | Space Admin |
| Admin | User |
| Admin | Guest |
| Space Admin | Admin |
| Space Admin | Space Admin |
| Space Admin | User |
| Space Admin | Guest |
| User | Admin |
| User | Space Admin |
| User | User |
| User | Guest |
| Guest | Admin |
| Guest | Space Admin |
| Guest | User |
| Guest | Guest |
Scenario Outline: admin user tries to change his/her own role
Given the administrator has assigned the role "Admin" to user "Alice" using the Graph API
When user "Alice" tries to change the role of user "Alice" to role "<newRole>" using the Graph API
Then the HTTP status code should be "403"
And user "Alice" should have the role "Admin"
Examples:
| newRole |
| Space Admin |
| User |
| Guest |
| Admin |

View File

@@ -2510,4 +2510,37 @@ class GraphContext implements Context {
. "\nExpected user '$user' to have no roles assigned but got '" . json_encode($jsonDecodedResponse) . "'"
);
}
/**
* @When user :user changes the role of user :ofUser to role :role using the Graph API
* @When user :user tries to change the role of user :ofUser to role :role using the Graph API
*
* @param string $user
* @param string $ofUser
* @param string $role
*
* @return void
*
* @throws GuzzleException
* @throws Exception
*/
public function userChangesTheRoleOfUserToRoleUsingTheGraphApi(string $user, string $ofUser, string $role): void {
$userId = $this->featureContext->getAttributeOfCreatedUser($ofUser, 'id') ?? $ofUser;
$credentials = $this->getAdminOrUserCredentials($user);
if (empty($this->appEntity)) {
$this->setApplicationEntity();
}
$this->featureContext->setResponse(
GraphHelper::assignRole(
$this->featureContext->getBaseUrl(),
$this->featureContext->getStepLineRef(),
$credentials['username'],
$credentials['password'],
$this->appEntity["appRoles"][$role],
$this->appEntity["id"],
$userId
)
);
}
}