From 38a692d320cd36c6f55d35025d876ffff80ca37a Mon Sep 17 00:00:00 2001 From: Niraj Acharya Date: Mon, 20 Jan 2025 16:08:34 +0545 Subject: [PATCH] adding test for disabling mail notifications for space disabled event --- .../acceptance/bootstrap/SettingsContext.php | 2 +- .../apiSettings/notificationSetting.feature | 114 +++++++++++++++++- 2 files changed, 114 insertions(+), 2 deletions(-) diff --git a/tests/acceptance/bootstrap/SettingsContext.php b/tests/acceptance/bootstrap/SettingsContext.php index 3e37841f82f..ee867a431e2 100644 --- a/tests/acceptance/bootstrap/SettingsContext.php +++ b/tests/acceptance/bootstrap/SettingsContext.php @@ -588,7 +588,7 @@ public function getBodyForNotificationSetting(string $user, string $event): arra )->getBody()->getContents() )); foreach ($settingsValues->bundles[0]->settings as $settingsValue) { - if ($settingsValue->displayName === $event) { + if ($settingsValue->displayName === $event) { return [ "value" => [ "account_uuid" => "me", diff --git a/tests/acceptance/features/apiSettings/notificationSetting.feature b/tests/acceptance/features/apiSettings/notificationSetting.feature index 270211ed469..38082db099e 100644 --- a/tests/acceptance/features/apiSettings/notificationSetting.feature +++ b/tests/acceptance/features/apiSettings/notificationSetting.feature @@ -13,7 +13,6 @@ Feature: Notification Settings Scenario: disable email notification - Given user "Alice" has uploaded file with content "some data" to "lorem.txt" When user "Brian" disables email notification using the settings API Then the HTTP status code should be "201" And the JSON data of the response should match @@ -211,4 +210,117 @@ Feature: Notification Settings And user "Brian" should have "0" emails When user "Brian" lists all notifications Then the HTTP status code should be "200" + And the notifications should be empty + + + Scenario: disable in-app notification for Space disabled event + Given the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API + And user "Alice" has created a space "new-space" with the default quota using the Graph API + And user "Alice" has sent the following space share invitation: + | space | new-space | + | sharee | Brian | + | shareType | user | + | permissionsRole | Space Viewer | + And user "Brian" has deleted all notifications + When user "Brian" disables notification for the following events using the settings API: + | Space disabled | in-app | + 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": "event-space-disabled-options" + } + } + }, + "value":{ + "type": "object", + "required": [ + "id", + "bundleId", + "settingId", + "accountUuid", + "resource", + "collectionValue" + ], + "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" + } + } + }, + "collectionValue":{ + "type": "object", + "required":["values"], + "properties": { + "values":{ + "type": "array", + "maxItems": 1, + "minItems": 1, + "uniqueItems": true, + "items": { + "oneOf": [ + { + "type": "object", + "required": [ + "key", + "boolValue" + ], + "properties": { + "key":{ + "const": "in-app" + }, + "boolValue":{ + "const": false + } + } + } + ] + } + } + } + } + } + } + } + } + } + } + """ + And user "Alice" has disabled a space "new-space" + When user "Brian" lists all notifications + Then the HTTP status code should be "200" And the notifications should be empty \ No newline at end of file