Repository: owncloud/ocis
Pull request #11087: [tests-only][full-ci] add test to share resources with `FileEditorWithVersions` and `EditorWithVersions` role
Author: login: prashant-gurung899
Labels: name: QA:team
Created: 2025-03-03T06:35:33Z | Merged: 2025-03-11T08:05:29Z

<!--
Thanks for submitting a change to ownCloud!

This is the bug tracker for the oCIS component. Find other components at https://github.com/owncloud/core/blob/master/.github/CONTRIBUTING.md#guidelines

For fixing potential security issues please see https://owncloud.org/security/

To make it possible for us to get your change reviewed and merged please carefully fill out the requested information below.

Please note that any kind of change needs first be submitted to the master branch which holds the next version of oCIS.

Please set the following labels:

- Set label "Status:Needs-Review" for review or "Status:In-Progress" if the PR still has open tasks.
- Assignment: assign to self
- Reviewers: pick at least one
-->

## Description
This PR creates a separate test suite for optional roles i.e. `apiOptionalSharingRoles`(more tests will be added later).
I have added tests to share and list versions of a file shared with `FileEditorWithVersions` and `EditorWithVersions` role.

``` feature
Scenario: sharee checks version of a file shared with FileEditorWithVersions role
Scenario: sharee checks version of a file inside a folder shared with EditorWithVersions role
```

## Related Issue
<!--- This project only accepts pull requests related to open issues -->
<!--- If suggesting a new feature or change, please discuss it in an issue first -->
<!--- If fixing a bug, there should be an issue describing it with steps to reproduce -->
<!--- Please link to the issue here: -->
- Part of: https://github.com/owncloud/ocis/issues/11055

## Motivation and Context
<!--- Why is this change required? What problem does it solve? -->

## How Has This Been Tested?
<!--- Please describe in detail how you tested your changes. -->
<!--- Include details of your testing environment, and the tests you ran to -->
<!--- see how your change affects other areas of the code, etc. -->
- Locally
- CI

## Screenshots (if appropriate):

## Types of changes
<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
- [ ] Technical debt
- [x] Tests only (no source changes)

## Checklist:
<!-- Tick the checkboxes when done. -->
<!-- Raise documentation ticket in owncloud.github.io/ -->
- [ ] Code changes
- [ ] Unit tests added
- [x] Acceptance tests added
- [ ] Documentation ticket raised: <link> 



Diff:
diff --git a/.drone.star b/.drone.star
index 400423748aa..9ab1198ac7e 100644
--- a/.drone.star
+++ b/.drone.star
@@ -167,6 +167,7 @@ config = {
                 "apiReshare",
                 "apiSharingNg1",
                 "apiSharingNg2",
+                "apiOptionalShareRole",
             ],
             "skip": False,
         },
diff --git a/tests/acceptance/TestHelpers/GraphHelper.php b/tests/acceptance/TestHelpers/GraphHelper.php
index 1a70055b4d4..de1b82acb53 100644
--- a/tests/acceptance/TestHelpers/GraphHelper.php
+++ b/tests/acceptance/TestHelpers/GraphHelper.php
@@ -44,6 +44,8 @@ class GraphHelper {
 		'Secure Viewer' => 'aa97fe03-7980-45ac-9e50-b325749fd7e6',
 		'Space Editor Without Versions' => '3284f2d5-0070-4ad8-ac40-c247f7c1fb27',
 		'Denied' => '63e64e19-8d43-42ec-a738-2b6af2610efa',
+		'Editor With Versions' => '0911d62b-1e3f-4778-8b1b-903b7e4e8476',
+		'File Editor With Versions' => 'b173329d-cf2e-42f0-a595-ee410645d840'
 	];
 
 	public const SHARING_LINK_TYPE_MAPPINGS = [
diff --git a/tests/acceptance/config/behat.yml b/tests/acceptance/config/behat.yml
index a40298a695d..3af23a876d4 100644
--- a/tests/acceptance/config/behat.yml
+++ b/tests/acceptance/config/behat.yml
@@ -365,6 +365,16 @@ default:
         - EmailContext:
         - OcisConfigContext:
 
+    apiOptionalShareRole:
+      paths:
+        - "%paths.base%/../features/apiOptionalShareRole"
+      context: *common_ldap_suite_context
+      contexts:
+        - FeatureContext: *common_feature_context_params
+        - GraphContext:
+        - SharingNgContext:
+        - OcisConfigContext:
+
     apiSharingNgShareInvitation:
       paths:
         - "%paths.base%/../features/apiSharingNgShareInvitation"
diff --git a/tests/acceptance/features/apiOptionalShareRole/editorWithVersions.feature b/tests/acceptance/features/apiOptionalShareRole/editorWithVersions.feature
new file mode 100644
index 00000000000..e7c24509b69
--- /dev/null
+++ b/tests/acceptance/features/apiOptionalShareRole/editorWithVersions.feature
@@ -0,0 +1,172 @@
+@env-config
+Feature: an user shares resources
+  As a user
+  I want to share resources with Editor With Versions role
+  So that users can edit the resource and see the versions
+
+  Background:
+    Given these users have been created with default attributes:
+      | username |
+      | Alice    |
+      | Brian    |
+
+
+  Scenario: sharee checks version of a file shared with FileEditorWithVersions role
+    Given the administrator has enabled the permissions role 'File Editor With Versions'
+    And user "Alice" has uploaded file with content "to share" to "textfile.txt"
+    And we save it into "FILEID"
+    When user "Alice" sends the following resource share invitation using the Graph API:
+      | resource        | textfile.txt              |
+      | space           | Personal                  |
+      | sharee          | Brian                     |
+      | shareType       | user                      |
+      | permissionsRole | File Editor With Versions |
+    Then the HTTP status code should be "200"
+    And the JSON data of the response should match
+      """
+      {
+        "type": "object",
+        "required": ["value"],
+        "properties": {
+          "value": {
+            "type": "array",
+            "maxItems": 1,
+            "minItems": 1,
+            "items": {
+              "type": "object",
+              "required": ["createdDateTime", "id", "roles", "grantedToV2", "invitation"],
+              "properties": {
+                "id": { "pattern": "^%permissions_id_pattern%$" },
+                "roles": {
+                  "type": "array",
+                  "maxItems": 1,
+                  "minItems": 1,
+                  "items": { "const": "b173329d-cf2e-42f0-a595-ee410645d840" }
+                },
+                "invitation": {
+                  "type": "object",
+                  "required": ["invitedBy"],
+                  "properties": {
+                    "invitedBy": {
+                      "type": "object",
+                      "required": ["user"],
+                      "properties": {
+                        "user": {
+                          "type": "object",
+                          "required": ["displayName", "id", "@libre.graph.userType"],
+                          "properties": {
+                            "displayName": { "const": "Alice Hansen" },
+                            "id": { "pattern": "^%user_id_pattern%$" },
+                            "@libre.graph.userType": { "const": "Member" }
+                          }
+                        }
+                      }
+                    }
+                  }
+                },
+                "grantedToV2": {
+                  "type": "object",
+                  "required": ["user"],
+                  "properties": {
+                    "user": {
+                      "type": "object",
+                      "required": ["id", "displayName", "@libre.graph.userType"],
+                      "properties": {
+                        "id": { "pattern": "^%user_id_pattern%$" },
+                        "displayName": { "const": "Brian Murphy" },
+                        "@libre.graph.userType": { "const": "Member" }
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+      """
+    And user "Brian" has uploaded file with content "updated content" to "Shares/textfile.txt"
+    When user "Brian" gets the number of versions of file "textfile.txt" using file-id "<<FILEID>>"
+    Then the HTTP status code should be "207"
+    And the number of versions should be "1"
+
+
+  Scenario: sharee checks version of a file inside a folder shared with EditorWithVersions role
+    Given the administrator has enabled the permissions role 'Editor With Versions'
+    And user "Alice" has created folder "folderToShare"
+    And user "Alice" has uploaded file with content "to share" to "folderToShare/textfile.txt"
+    And we save it into "FILEID"
+    When user "Alice" sends the following resource share invitation using the Graph API:
+      | resource        | folderToShare        |
+      | space           | Personal             |
+      | sharee          | Brian                |
+      | shareType       | user                 |
+      | permissionsRole | Editor With Versions |
+    Then the HTTP status code should be "200"
+    And the JSON data of the response should match
+      """
+      {
+        "type": "object",
+        "required": ["value"],
+        "properties": {
+          "value": {
+            "type": "array",
+            "maxItems": 1,
+            "minItems": 1,
+            "items": {
+              "type": "object",
+              "required": ["createdDateTime", "id", "roles", "grantedToV2", "invitation"],
+              "properties": {
+                "id": { "pattern": "^%permissions_id_pattern%$" },
+                "roles": {
+                  "type": "array",
+                  "maxItems": 1,
+                  "minItems": 1,
+                  "items": { "const": "0911d62b-1e3f-4778-8b1b-903b7e4e8476" }
+                },
+                "invitation": {
+                  "type": "object",
+                  "required": ["invitedBy"],
+                  "properties": {
+                    "invitedBy": {
+                      "type": "object",
+                      "required": ["user"],
+                      "properties": {
+                        "user": {
+                          "type": "object",
+                          "required": ["displayName", "id", "@libre.graph.userType"],
+                          "properties": {
+                            "displayName": { "const": "Alice Hansen" },
+                            "id": { "pattern": "^%user_id_pattern%$" },
+                            "@libre.graph.userType": { "const": "Member" }
+                          }
+                        }
+                      }
+                    }
+                  }
+                },
+                "grantedToV2": {
+                  "type": "object",
+                  "required": ["user"],
+                  "properties": {
+                    "user": {
+                      "type": "object",
+                      "required": ["id", "displayName", "@libre.graph.userType"],
+                      "properties": {
+                        "id": { "pattern": "^%user_id_pattern%$" },
+                        "displayName": { "const": "Brian Murphy" },
+                        "@libre.graph.userType": { "const": "Member" }
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+      """
+    And user "Brian" has uploaded file with content "updated content" to "Shares/folderToShare/textfile.txt"
+    When user "Brian" gets the number of versions of file "textfile.txt" using file-id "<<FILEID>>"
+    Then the HTTP status code should be "207"
+    And the number of versions should be "1"


Reviews:
user: login: amrita-shrestha
state: CHANGES_REQUESTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-03T10:58:15Z
user: login: saw-jan
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-03-03T11:00:19Z
user: login: saw-jan
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-03-03T11:01:00Z
user: login: amrita-shrestha
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-03T11:01:47Z
user: login: prashant-gurung899
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-03T11:20:02Z
user: login: prashant-gurung899
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-03T11:30:16Z
user: login: saw-jan
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-03-05T06:06:04Z
user: login: saw-jan
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-03-05T06:06:37Z
user: login: saw-jan
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-03-05T06:08:47Z
user: login: prashant-gurung899
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-05T08:49:47Z
user: login: saw-jan
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-03-06T08:21:07Z
user: login: PrajwolAmatya
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-06T10:32:40Z
user: login: prashant-gurung899
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-06T10:42:49Z
user: login: nirajacharya2
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-10T06:56:04Z
user: login: nirajacharya2
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-03-11T06:00:52Z
user: login: amrita-shrestha
body: Just little warning ,if we keep on adding tests to the **shareNg** pipeline then oCIS CI pipeline will be dis-balanced. 
![Screenshot from 2025-03-11 12-11-08](https://github.com/user-attachments/assets/20f25e1c-42c5-4853-a6cc-c0d24224f710)
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-03-11T06:34:04Z
user: login: saw-jan
state: APPROVED
author_association: MEMBER
submitted_at: 2025-03-11T07:22:50Z

Review comments:
diff_hunk: @@ -3362,3 +3362,173 @@ Feature: Send a sharing invitations
       | Space Viewer     |
       | Space Editor     |
       | Manager          |
+
+  @env-config
+  Scenario: send share invitation for a file to user with FileEditorListGrantsWithVersions role
path: tests/acceptance/features/apiSharingNgShareInvitation/shareInvitations.feature
user: login: amrita-shrestha
body: can we convert this scenario as outline in pre-existing scenarios above?
created_at: 2025-03-03T10:57:58Z
author_association: CONTRIBUTOR
diff_hunk: @@ -3362,3 +3362,173 @@ Feature: Send a sharing invitations
       | Space Viewer     |
       | Space Editor     |
       | Manager          |
+
+  @env-config
+  Scenario: send share invitation for a file to user with FileEditorListGrantsWithVersions role
+    Given the administrator has enabled the permissions role 'File Editor List Grants With Versions'
+    And user "Alice" has uploaded file with content "to share" to "textfile.txt"
+    When user "Alice" sends the following resource share invitation using the Graph API:
+      | resource        | textfile.txt                          |
+      | space           | Personal                              |
+      | sharee          | Brian                                 |
+      | shareType       | user                                  |
+      | permissionsRole | File Editor List Grants With Versions |
+    Then the HTTP status code should be "200"
+    And user "Brian" should have a share "textfile.txt" shared by user "Alice" from space "Personal"
+    And the JSON data of the response should match
+      """
+      {
+        "type": "object",
+        "required": ["value"],
+        "properties": {
+          "value": {
+            "type": "array",
+            "maxItems": 1,
+            "minItems": 1,
+            "items": {
+              "type": "object",
+              "required": ["createdDateTime", "id", "roles", "grantedToV2", "invitation"],
+              "properties": {
+                "id": {
+                  "type": "string",
+                  "pattern": "^%permissions_id_pattern%$"
+                },
+                "roles": {
+                  "type": "array",
+                  "maxItems": 1,
+                  "minItems": 1,
+                  "items": {
+                    "type": "string",
+                    "pattern": "^%role_id_pattern%$"
+                  }
+                },
+                "invitation": {
+                  "type": "object",
+                  "required": ["invitedBy"],
+                  "properties": {
+                    "invitedBy": {
+                      "type": "object",
+                      "required": ["user"],
+                      "properties": {
+                        "user": {
+                          "type": "object",
+                          "required": ["displayName", "id", "@libre.graph.userType"],
+                          "properties": {
+                            "displayName": { "const": "Alice Hansen" },
+                            "id": { "pattern": "^%user_id_pattern%$" },
+                            "@libre.graph.userType": { "const": "Member" }
+                          }
+                        }
+                      }
+                    }
+                  }
+                },
+                "grantedToV2": {
+                  "type": "object",
+                  "required": ["user"],
+                  "properties": {
+                    "user": {
+                      "type": "object",
+                      "required": ["id", "displayName", "@libre.graph.userType"],
+                      "properties": {
+                        "id": {
+                          "type": "string",
+                          "pattern": "^%user_id_pattern%$"
+                        },
+                        "displayName": { "const": "Brian Murphy" },
+                        "@libre.graph.userType": { "const": "Member" }
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+      """
+
+  @env-config
+  Scenario: send share invitation for a folder to user with EditorListGrantsWithVersions role
path: tests/acceptance/features/apiSharingNgShareInvitation/shareInvitations.feature
user: login: amrita-shrestha
body: same for this scenario too
created_at: 2025-03-03T10:58:11Z
author_association: CONTRIBUTOR
diff_hunk: @@ -3362,3 +3362,173 @@ Feature: Send a sharing invitations
       | Space Viewer     |
       | Space Editor     |
       | Manager          |
+
+  @env-config
+  Scenario: send share invitation for a file to user with FileEditorListGrantsWithVersions role
path: tests/acceptance/features/apiSharingNgShareInvitation/shareInvitations.feature
user: login: saw-jan
body: there are more optional roles that need tests. how about having a different test suite for such optional roles? :thinking: 
would be easier to search and find later on.
created_at: 2025-03-03T11:00:19Z
author_association: MEMBER
diff_hunk: @@ -3362,3 +3362,173 @@ Feature: Send a sharing invitations
       | Space Viewer     |
       | Space Editor     |
       | Manager          |
+
+  @env-config
+  Scenario: send share invitation for a file to user with FileEditorListGrantsWithVersions role
+    Given the administrator has enabled the permissions role 'File Editor List Grants With Versions'
+    And user "Alice" has uploaded file with content "to share" to "textfile.txt"
+    When user "Alice" sends the following resource share invitation using the Graph API:
+      | resource        | textfile.txt                          |
+      | space           | Personal                              |
+      | sharee          | Brian                                 |
+      | shareType       | user                                  |
+      | permissionsRole | File Editor List Grants With Versions |
+    Then the HTTP status code should be "200"
+    And user "Brian" should have a share "textfile.txt" shared by user "Alice" from space "Personal"
+    And the JSON data of the response should match
+      """
+      {
+        "type": "object",
+        "required": ["value"],
+        "properties": {
+          "value": {
+            "type": "array",
+            "maxItems": 1,
+            "minItems": 1,
+            "items": {
+              "type": "object",
+              "required": ["createdDateTime", "id", "roles", "grantedToV2", "invitation"],
+              "properties": {
+                "id": {
+                  "type": "string",
+                  "pattern": "^%permissions_id_pattern%$"
+                },
+                "roles": {
+                  "type": "array",
+                  "maxItems": 1,
+                  "minItems": 1,
+                  "items": {
+                    "type": "string",
+                    "pattern": "^%role_id_pattern%$"
path: tests/acceptance/features/apiSharingNgShareInvitation/shareInvitations.feature
user: login: saw-jan
body: since role id is static. I am now thinking of checking the actual role id here.
created_at: 2025-03-03T11:01:00Z
author_association: MEMBER
diff_hunk: @@ -3362,3 +3362,173 @@ Feature: Send a sharing invitations
       | Space Viewer     |
       | Space Editor     |
       | Manager          |
+
+  @env-config
+  Scenario: send share invitation for a file to user with FileEditorListGrantsWithVersions role
path: tests/acceptance/features/apiSharingNgShareInvitation/shareInvitations.feature
user: login: amrita-shrestha
body: sound good to me

created_at: 2025-03-03T11:01:47Z
author_association: CONTRIBUTOR
diff_hunk: @@ -3362,3 +3362,173 @@ Feature: Send a sharing invitations
       | Space Viewer     |
       | Space Editor     |
       | Manager          |
+
+  @env-config
+  Scenario: send share invitation for a file to user with FileEditorListGrantsWithVersions role
path: tests/acceptance/features/apiSharingNgShareInvitation/shareInvitations.feature
user: login: prashant-gurung899
body: > there are more optional roles that need tests. how about having a different test suite for such optional roles? 🤔 would be easier to search and find later on.

what should we name it? :thinking: 
created_at: 2025-03-03T11:20:02Z
author_association: CONTRIBUTOR
diff_hunk: @@ -3362,3 +3362,173 @@ Feature: Send a sharing invitations
       | Space Viewer     |
       | Space Editor     |
       | Manager          |
+
+  @env-config
+  Scenario: send share invitation for a file to user with FileEditorListGrantsWithVersions role
path: tests/acceptance/features/apiSharingNgShareInvitation/shareInvitations.feature
user: login: prashant-gurung899
body: If we do it, then we also have to move already existing tests for optional roles. :question: 
created_at: 2025-03-03T11:30:16Z
author_association: CONTRIBUTOR
diff_hunk: @@ -3362,3 +3362,173 @@ Feature: Send a sharing invitations
       | Space Viewer     |
       | Space Editor     |
       | Manager          |
+
+  @env-config
+  Scenario: send share invitation for a file to user with FileEditorListGrantsWithVersions role
path: tests/acceptance/features/apiSharingNgShareInvitation/shareInvitations.feature
user: login: saw-jan
body: yeah, but not in this one
created_at: 2025-03-05T06:06:03Z
author_association: MEMBER
diff_hunk: @@ -3362,3 +3362,173 @@ Feature: Send a sharing invitations
       | Space Viewer     |
       | Space Editor     |
       | Manager          |
+
+  @env-config
+  Scenario: send share invitation for a file to user with FileEditorListGrantsWithVersions role
path: tests/acceptance/features/apiSharingNgShareInvitation/shareInvitations.feature
user: login: saw-jan
body: >what should we name it? 🤔

maybe `apiOptionalShareRole`
created_at: 2025-03-05T06:06:37Z
author_association: MEMBER
diff_hunk: @@ -44,6 +44,8 @@ class GraphHelper {
 		'Secure Viewer' => 'aa97fe03-7980-45ac-9e50-b325749fd7e6',
 		'Space Editor Without Versions' => '3284f2d5-0070-4ad8-ac40-c247f7c1fb27',
 		'Denied' => '63e64e19-8d43-42ec-a738-2b6af2610efa',
+		'Editor List Grants With Versions' => '0911d62b-1e3f-4778-8b1b-903b7e4e8476',
+		'File Editor List Grants With Versions' => 'b173329d-cf2e-42f0-a595-ee410645d840'
path: tests/acceptance/TestHelpers/GraphHelper.php
user: login: saw-jan
body: ```suggestion
		'Editor With Versions' => '0911d62b-1e3f-4778-8b1b-903b7e4e8476',
		'File Editor With Versions' => 'b173329d-cf2e-42f0-a595-ee410645d840'
```
created_at: 2025-03-05T06:08:47Z
author_association: MEMBER
diff_hunk: @@ -3362,3 +3362,173 @@ Feature: Send a sharing invitations
       | Space Viewer     |
       | Space Editor     |
       | Manager          |
+
+  @env-config
+  Scenario: send share invitation for a file to user with FileEditorListGrantsWithVersions role
path: tests/acceptance/features/apiSharingNgShareInvitation/shareInvitations.feature
user: login: prashant-gurung899
body: @saw-jan 
Okay then in this PR, i will create `apiOptionalShareRole` test suite and add these tests there. And after merging this PR, we can add other tests in coming PRs.
created_at: 2025-03-05T08:49:47Z
author_association: CONTRIBUTOR
diff_hunk: @@ -94,6 +94,7 @@ config = {
                 "apiDepthInfinity",
                 "apiLocks",
                 "apiActivities",
+                "apiOptionalShareRole",
path: .drone.star
user: login: saw-jan
body: this should go to the sharingNG suite. we can think of spliting the bulky ones later
created_at: 2025-03-06T08:21:07Z
author_association: MEMBER
path: tests/acceptance/features/apiOptionalShareRole/fileEditorWithVersions.feature
user: login: PrajwolAmatya
body: Are we creating role specific feature file? Maybe naming feature file as `optionalShareRole.feature` and add all related optional share role related test in the file.
created_at: 2025-03-06T10:32:27Z
author_association: CONTRIBUTOR
path: tests/acceptance/features/apiOptionalShareRole/fileEditorWithVersions.feature
user: login: prashant-gurung899
body: That could be another option as well. What do you say @saw-jan? 
created_at: 2025-03-06T10:42:48Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,89 @@
+Feature: an user shares resources
+  As a user
+  I want to share files with FileEditorListGrantsWithVersions role
+
path: tests/acceptance/features/apiOptionalShareRole/fileEditorWithVersions.feature
user: login: nirajacharya2
body: ```suggestion
  As a user
  I want to share files with FileEditorListGrantsWithVersions role
  so that ..
```
created_at: 2025-03-10T06:52:02Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,89 @@
+Feature: an user shares resources
+  As a user
+  I want to share files with FileEditorListGrantsWithVersions role
+
+  Background:
path: tests/acceptance/features/apiOptionalShareRole/fileEditorWithVersions.feature
user: login: nirajacharya2
body: no need
created_at: 2025-03-10T06:52:27Z
author_association: CONTRIBUTOR

PR comments:
user: login: sonarqubecloud[bot]
created_at: 2025-03-11T05:18:14Z
body: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=11087) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=11087&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=11087&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=owncloud_ocis&pullRequest=11087&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=11087&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=11087&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=11087)


author_association: NONE
user: login: prashant-gurung899
created_at: 2025-03-11T06:41:28Z
body: > Just little warning ,if we keep on adding tests to the **shareNg** pipeline then oCIS CI pipeline will be dis-balanced. ![Screenshot from 2025-03-11 12-11-08](https://private-user-images.githubusercontent.com/54478846/421219289-20f25e1c-42c5-4853-a6cc-c0d24224f710.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NDE2NzU1MjMsIm5iZiI6MTc0MTY3NTIyMywicGF0aCI6Ii81NDQ3ODg0Ni80MjEyMTkyODktMjBmMjVlMWMtNDJjNS00ODUzLWE2Y2MtYzBkMjQyMjRmNzEwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAzMTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMzExVDA2NDAyM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTk4Y2RmY2I5YjAzNWI3NzE2NzU4NTBiZDJhZTc4MzJkNjc4ZDA4YWFjM2ZjMjI5YmNmYmNjZjQyYmQyZTNhOTMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.8eUBQPRtYMEZfSnyBRU1f8IZu72q896NFdMdBzACUz0)

Okay. Will keep track of it.
author_association: CONTRIBUTOR