Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[tests-only][full-ci] api test to set quota by users with different roles #5854

Merged
merged 1 commit into from
Mar 27, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
178 changes: 178 additions & 0 deletions tests/acceptance/features/apiSpaces/setQuota.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,178 @@
@api
Feature: Set quota
As a user
I want to set quota to different users
PrajwolAmatya marked this conversation as resolved.
Show resolved Hide resolved
So that users can only take up a certain amount of storage space

Background:
Given these users have been created with default attributes and without skeleton files:
| username |
| Alice |
| Brian |


Scenario Outline: admin sets personal space quota of user with different role
Given the administrator has given "Alice" the role "Admin" using the settings api
And the administrator has given "Brian" the role "<userRole>" using the settings api
When user "Alice" changes the quota of the "Brian Murphy" space to "100" owned by user "Brian"
Then the HTTP status code should be "200"
And for user "Brian" the JSON response should contain space called "Brian Murphy" and match
"""
{
"type": "object",
"required": [
"quota"
],
"properties": {
"quota": {
"type": "object",
"required": [
"total"
],
"properties": {
"total" : {
"type": "number",
"enum": [100]
}
}
}
}
}
"""
Examples:
| userRole |
| Admin |
| Space Admin |
| User |
| Guest |


Scenario Outline: non-admin user tries to set the personal space quota of other users
Given the administrator has given "Alice" the role "<role>" using the settings api
And the administrator has given "Brian" the role "<userRole>" using the settings api
When user "Alice" changes the quota of the "Brian Murphy" space to "100" owned by user "Brian"
Then the HTTP status code should be "401"
And for user "Brian" the JSON response should contain space called "Brian Murphy" and match
"""
{
"type": "object",
"required": [
"quota"
],
"properties": {
"quota": {
"type": "object",
"required": [
"total"
],
"properties": {
"total" : {
"type": "number",
"enum": [0]
}
}
}
}
}
"""
Examples:
| role | userRole |
| 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 or space admin user sets a quota of a project space
Given the administrator has given "Alice" the role "Space Admin" using the settings api
And the administrator has given "Brian" the role "<userRole>" using the settings api
And user "Alice" has created a space "Project Jupiter" of type "project" with quota "20"
When user "Brian" changes the quota of the "Project Jupiter" space to "100" owned by user "Alice"
Then the HTTP status code should be "200"
And for user "Alice" the JSON response should contain space called "Project Jupiter" and match
"""
{
"type": "object",
"required": [
"name",
"quota"
],
"properties": {
"name": {
"type": "string",
"enum": ["Project Jupiter"]
},
"quota": {
"type": "object",
"required": [
"total"
],
"properties": {
"total" : {
"type": "number",
"enum": [100]
}
}
}
}
}
"""
Examples:
| userRole |
| Admin |
| Space Admin |


Scenario Outline: normal or guest user tries to set quota of a space
Given the administrator has given "Alice" the role "Space Admin" using the settings api
And the administrator has given "Brian" the role "<userRole>" using the settings api
And user "Alice" has created a space "Project Jupiter" of type "project" with quota "20"
And user "Alice" has shared a space "Project Jupiter" with settings:
| shareWith | Brian |
| role | <spaceRole> |
When user "Brian" changes the quota of the "Project Jupiter" space to "100"
Then the HTTP status code should be "401"
And for user "Alice" the JSON response should contain space called "Project Jupiter" and match
"""
{
"type": "object",
"required": [
"name",
"quota"
],
"properties": {
"name": {
"type": "string",
"enum": ["Project Jupiter"]
},
"quota": {
"type": "object",
"required": [
"total"
],
"properties": {
"total" : {
"type": "number",
"enum": [20]
}
}
}
}
}
"""
Examples:
| userRole | spaceRole |
| User | viewer |
| User | editor |
| User | manager |
| Guest | viewer |
| Guest | editor |
| Guest | manager |
PrajwolAmatya marked this conversation as resolved.
Show resolved Hide resolved
PrajwolAmatya marked this conversation as resolved.
Show resolved Hide resolved