add test to check settings api response

Signed-off-by: prashant-gurung899 <prasantgrg777@gmail.com>
This commit is contained in:
prashant-gurung899
2025-01-09 09:52:39 +05:45
parent 1f537b57fb
commit 11b5e8ccbc
6 changed files with 348 additions and 5 deletions
@@ -7,7 +7,7 @@ Feature: assign role
Scenario Outline: only admin user can see all existing roles
Given user "Alice" has been created with default attributes
And the administrator has given "Alice" the role "<user-role>" using the settings api
When user "Alice" tries to get all existing roles
When user "Alice" tries to get all existing roles using the settings API
Then the HTTP status code should be "<http-status-code>"
Examples:
| user-role | http-status-code |
@@ -19,7 +19,7 @@ Feature: assign role
Scenario Outline: only admin user can see assignments list
Given user "Alice" has been created with default attributes
And the administrator has given "Alice" the role "<user-role>" using the settings api
When user "Alice" tries to get list of assignment
When user "Alice" tries to get list of assignment using the settings API
Then the HTTP status code should be "<http-status-code>"
Examples:
| user-role | http-status-code |
@@ -22,7 +22,7 @@ Feature: assign role
@issue-5032
Scenario Outline: get assigned role of a user via setting api
Given the administrator has assigned the role "<user-role>" to user "Alice" using the Graph API
When user "Alice" tries to get list of assignment
When user "Alice" tries to get list of assignment using the settings API
Then the HTTP status code should be "<http-status-code>"
And the setting API response should have the role "<user-role>"
Examples:
@@ -0,0 +1,277 @@
Feature: settings api
As a user,
I want to use settings api
So that I can manage user specific settings
Background:
Given these users have been created with default attributes:
| username |
| Alice |
| Brian |
And using spaces DAV path
Scenario: disable auto-sync share
When user "Brian" disables the auto-sync share using the settings API
Then the HTTP status code should be "201"
And the JSON data of the response should match
"""
{
"type": "object",
"required": ["value"],
"properties": {
"value" : {
"type": "object",
"required": ["identifier","value"],
"properties": {
"identifier": {
"type": "object",
"required": [ "extension", "bundle", "setting"],
"properties": {
"extension": { "const": "ocis-accounts" },
"bundle": { "const": "profile" },
"setting": { "const": "auto-accept-shares" }
}
},
"value": {
"type": "object",
"required": [ "id", "bundleId", "settingId", "accountUuid", "resource", "boolValue" ],
"properties": {
"id": { "pattern": "^%user_id_pattern%$" },
"bundleId": { "pattern": "^%user_id_pattern%$" },
"settingId": { "pattern": "^%user_id_pattern%$" },
"accountUuid": { "pattern": "^%user_id_pattern%$" },
"resource": {
"type": "object",
"required": ["type"],
"properties": {
"type": { "const": "TYPE_USER" }
}
},
"boolValue": { "const": false }
}
}
}
}
}
}
"""
Scenario: assign role to user
When user "Admin" assigns the role "Admin" to user "Alice" using the settings API
Then the HTTP status code should be "201"
And the JSON data of the response should match
"""
{
"type": "object",
"required": ["assignment"],
"properties": {
"assignment" : {
"type": "object",
"required": [ "id", "accountUuid", "roleId" ],
"properties": {
"id": { "pattern": "^%user_id_pattern%$" },
"accountUuid": { "pattern": "^%user_id_pattern%$" },
"roleId": { "pattern": "^%user_id_pattern%$" }
}
}
}
}
"""
@issue-5032
Scenario: user lists assignments
Given the administrator has assigned the role "Admin" to user "Alice" using the Graph API
When user "Alice" tries to get list of assignment using the settings API
Then the HTTP status code should be "201"
And the JSON data of the response should match
"""
{
"type": "object",
"required": ["assignments"],
"properties": {
"assignments" : {
"type": "array",
"minItems": 1,
"maxItems": 1,
"uniqueItems": true,
"items": {
"type": "object",
"required": ["id","accountUuid","roleId"],
"properties": {
"id": { "pattern": "^%user_id_pattern%$" },
"accountUuid": { "pattern": "^%user_id_pattern%$" },
"roleId": { "pattern": "^%user_id_pattern%$" }
}
}
}
}
}
"""
Scenario: switch language
When user "Alice" switches the system language to "de" using the settings API
Then the HTTP status code should be "201"
And the JSON data of the response should match
"""
{
"type": "object",
"required": ["value"],
"properties": {
"value" : {
"type": "object",
"required": [ "identifier", "value"],
"properties": {
"identifier": {
"type": "object",
"required": [ "extension", "bundle", "setting"],
"properties": {
"extension": { "const": "ocis-accounts" },
"bundle": { "const": "profile" },
"setting": { "const": "language" }
}
},
"value": {
"type": "object",
"required": [ "id", "bundleId", "settingId", "accountUuid", "resource", "listValue" ],
"properties": {
"id": { "pattern": "^%user_id_pattern%$" },
"bundleId": { "pattern": "^%user_id_pattern%$" },
"settingId": { "pattern": "^%user_id_pattern%$" },
"accountUuid": { "pattern": "^%user_id_pattern%$" },
"resource": {
"type": "object",
"required": ["type"],
"properties": {
"type": { "const": "TYPE_USER" }
}
},
"listValue": {
"type": "object",
"required": ["values"],
"properties": {
"values": {
"type": "array",
"minItems": 1,
"maxItems": 1,
"items": {
"type": "object",
"required": ["stringValue"],
"properties": {
"stringValue": { "const": "de" }
}
}
}
}
}
}
}
}
}
}
}
"""
@issue-5079
Scenario Outline: user lists existing roles
Given the administrator has assigned the role "<user-role>" to user "Alice" using the Graph API
When user "Alice" tries to get all existing roles using the settings API
Then the HTTP status code should be "201"
And the JSON data of the response should match
"""
{
"type": "object",
"required": ["bundles"],
"properties": {
"bundles" : {
"type": "array",
"minItems": 4,
"maxItems": 4,
"uniqueItems": true,
"items": {
"oneOf": [
{
"type": "object",
"required": ["id", "name", "type", "extension", "displayName", "settings", "resource"],
"properties": {
"id": { "pattern": "^%user_id_pattern%$" },
"name": { "const": "spaceadmin" },
"type": { "const": "TYPE_ROLE" },
"extension": { "const": "ocis-roles" },
"displayName": { "const": "Space Admin" },
"resource": {
"type": "object",
"required": ["type"],
"properties": {
"type": { "const": "TYPE_SYSTEM" }
}
}
}
},
{
"type": "object",
"required": ["id", "name", "type", "extension", "displayName", "settings", "resource"],
"properties": {
"id": { "pattern": "^%user_id_pattern%$" },
"name": { "const": "admin"},
"type": { "const": "TYPE_ROLE" },
"extension": { "const": "ocis-roles" },
"displayName": { "const": "Admin" },
"resource": {
"type": "object",
"required": ["type"],
"properties": {
"type": { "const": "TYPE_SYSTEM" }
}
}
}
},
{
"type": "object",
"required": ["id", "name", "type", "extension", "displayName", "settings", "resource"],
"properties": {
"id": { "pattern": "^%user_id_pattern%$" },
"name": { "const": "user-light" },
"type": { "const": "TYPE_ROLE" },
"extension": { "const": "ocis-roles" },
"displayName": { "const": "User Light" },
"resource": {
"type": "object",
"required": ["type"],
"properties": {
"type": { "const": "TYPE_SYSTEM" }
}
}
}
},
{
"type": "object",
"required": ["id", "name", "type", "extension", "displayName", "settings", "resource"],
"properties": {
"id": { "pattern": "^%user_id_pattern%$" },
"name": { "const": "user" },
"type": { "const": "TYPE_ROLE" },
"extension": { "const": "ocis-roles" },
"displayName": { "const": "User" },
"resource": {
"type": "object",
"required": ["type"],
"properties": {
"type": { "const": "TYPE_SYSTEM" }
}
}
}
}
]
}
}
}
}
"""
Examples:
| user-role |
| Admin |
| Space Admin |
| User |