From 6dc8f7846c5b3e71fb6a9d8ed8d33643d9a44614 Mon Sep 17 00:00:00 2001 From: Louis Chauvet Date: Wed, 2 Aug 2023 00:12:04 +0200 Subject: [PATCH] Add playwright tests --- .../requests/api-settings-ssogroup-change.har | 255 +++++++++++++++++ .../requests/api-settings-ssogroup-create.har | 255 +++++++++++++++++ .../requests/api-settings-ssogroup-delete.har | 255 +++++++++++++++++ .../api-settings-ssogroup-nothing.har | 195 +++++++++++++ .../requests/api-settings-ssogroup-view.har | 255 +++++++++++++++++ src-ui/e2e/settings/settings.spec.ts | 270 ++++++++++++++++++ 6 files changed, 1485 insertions(+) create mode 100644 src-ui/e2e/admin/requests/api-settings-ssogroup-change.har create mode 100644 src-ui/e2e/admin/requests/api-settings-ssogroup-create.har create mode 100644 src-ui/e2e/admin/requests/api-settings-ssogroup-delete.har create mode 100644 src-ui/e2e/admin/requests/api-settings-ssogroup-nothing.har create mode 100644 src-ui/e2e/admin/requests/api-settings-ssogroup-view.har create mode 100644 src-ui/e2e/settings/settings.spec.ts diff --git a/src-ui/e2e/admin/requests/api-settings-ssogroup-change.har b/src-ui/e2e/admin/requests/api-settings-ssogroup-change.har new file mode 100644 index 000000000..580952b4c --- /dev/null +++ b/src-ui/e2e/admin/requests/api-settings-ssogroup-change.har @@ -0,0 +1,255 @@ +{ + "log": { + "version": "1.2", + "creator": { + "name": "Playwright", + "version": "1.33.0" + }, + "browser": { + "name": "chromium", + "version": "113.0.5672.53" + }, + "entries": [ + { + "startedDateTime": "2023-05-14T07:18:59.856Z", + "time": 6.025, + "request": { + "method": "GET", + "url": "http://localhost:8000/api/ui_settings/", + "httpVersion": "HTTP/1.1", + "cookies": [ ], + "headers": [ + { "name": "Accept", "value": "application/json; version=3" }, + { "name": "Accept-Encoding", "value": "gzip, deflate, br" }, + { "name": "Accept-Language", "value": "en-US" }, + { "name": "Connection", "value": "keep-alive" }, + { "name": "Host", "value": "localhost:8000" }, + { "name": "Origin", "value": "http://localhost:4200" }, + { "name": "Referer", "value": "http://localhost:4200/" }, + { "name": "Sec-Fetch-Dest", "value": "empty" }, + { "name": "Sec-Fetch-Mode", "value": "cors" }, + { "name": "Sec-Fetch-Site", "value": "same-site" }, + { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.5672.53 Safari/537.36" } + ], + "queryString": [ ], + "headersSize": -1, + "bodySize": -1 + }, + "response": { + "status": 200, + "statusText": "OK", + "httpVersion": "HTTP/1.1", + "cookies": [ ], + "headers": [ + { "name": "Access-Control-Allow-Origin", "value": "http://localhost:4200" }, + { "name": "Allow", "value": "GET, POST, HEAD, OPTIONS" }, + { "name": "Content-Encoding", "value": "br" }, + { "name": "Content-Language", "value": "en-us" }, + { "name": "Content-Length", "value": "1742" }, + { "name": "Content-Type", "value": "application/json" }, + { "name": "Cross-Origin-Opener-Policy", "value": "same-origin" }, + { "name": "Referrer-Policy", "value": "same-origin" }, + { "name": "Vary", "value": "Accept, Accept-Language, Origin, Cookie, Accept-Encoding" }, + { "name": "X-Api-Version", "value": "3" }, + { "name": "X-Content-Type-Options", "value": "nosniff" }, + { "name": "X-Frame-Options", "value": "ANY" }, + { "name": "X-Version", "value": "1.14.4" } + ], + "content": { + "size": -1, + "mimeType": "application/json", + "text": "{\"user\":{\"id\":1,\"username\":\"testuser\",\"is_superuser\":false,\"groups\":[]},\"settings\":{\"language\":\"\",\"bulk_edit\":{\"confirmation_dialogs\":true,\"apply_on_close\":false},\"documentListSize\":50,\"dark_mode\":{\"use_system\":true,\"enabled\":\"false\",\"thumb_inverted\":\"true\"},\"theme\":{\"color\":\"#9fbf2f\"},\"document_details\":{\"native_pdf_viewer\":false},\"date_display\":{\"date_locale\":\"\",\"date_format\":\"mediumDate\"},\"notifications\":{\"consumer_new_documents\":true,\"consumer_success\":true,\"consumer_failed\":true,\"consumer_suppress_on_dashboard\":true},\"comments_enabled\":true,\"slim_sidebar\":false,\"update_checking\":{\"enabled\":false,\"backend_setting\":\"default\"},\"saved_views\":{\"warn_on_unsaved_change\":true},\"notes_enabled\":true,\"tour_complete\":true},\"permissions\":[\"add_uisettings\",\"view_uisettings\",\"change_uisettings\",\"delete_uisettings\",\"add_logentry\",\"view_logentry\",\"change_logentry\",\"delete_logentry\",\"add_paperlesstask\",\"view_paperlesstask\",\"change_paperlesstask\",\"delete_paperlesstask\",\"add_document\",\"view_document\",\"change_document\",\"delete_document\",\"add_tag\",\"view_tag\",\"change_tag\",\"delete_tag\",\"add_note\",\"view_note\",\"change_note\",\"delete_note\",\"add_correspondent\",\"view_correspondent\",\"change_correspondent\",\"delete_correspondent\",\"add_documenttype\",\"view_documenttype\",\"change_documenttype\",\"delete_documenttype\",\"add_savedview\",\"view_savedview\",\"change_savedview\",\"delete_savedview\",\"add_storagepath\",\"view_storagepath\",\"change_storagepath\",\"delete_storagepath\",\"add_mailaccount\",\"view_mailaccount\",\"change_mailaccount\",\"delete_mailaccount\",\"add_mailrule\",\"view_mailrule\",\"change_mailrule\",\"delete_mailrule\",\"add_user\",\"view_user\",\"change_user\",\"delete_user\",\"add_group\",\"view_group\",\"change_group\",\"delete_group\",\"view_ssogroup\",\"change_ssogroup\"]}" + }, + "headersSize": -1, + "bodySize": -1, + "redirectURL": "" + }, + "cache": { }, + "timings": { + "send": -1, + "wait": -1, + "receive": 6.025 + } + }, + { + "startedDateTime": "2023-05-14T07:18:59.990Z", + "time": 0.647, + "request": { + "method": "GET", + "url": "http://localhost:8000/api/sso_groups/?page=1&page_size=100000", + "httpVersion": "HTTP/1.1", + "cookies": [ ], + "headers": [ + { "name": "Accept", "value": "application/json; version=3" }, + { "name": "Accept-Encoding", "value": "gzip, deflate, br" }, + { "name": "Accept-Language", "value": "en-US" }, + { "name": "Connection", "value": "keep-alive" }, + { "name": "Host", "value": "localhost:8000" }, + { "name": "Origin", "value": "http://localhost:4200" }, + { "name": "Referer", "value": "http://localhost:4200/" }, + { "name": "Sec-Fetch-Dest", "value": "empty" }, + { "name": "Sec-Fetch-Mode", "value": "cors" }, + { "name": "Sec-Fetch-Site", "value": "same-site" }, + { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.5672.53 Safari/537.36" } + ], + "queryString": [ ], + "headersSize": -1, + "bodySize": -1 + }, + "response": { + "status": 200, + "statusText": "OK", + "httpVersion": "HTTP/1.1", + "cookies": [ ], + "headers": [ + { "name": "Access-Control-Allow-Origin", "value": "http://localhost:4200" }, + { "name": "Allow", "value": "GET, HEAD, OPTIONS" }, + { "name": "Content-Language", "value": "en-us" }, + { "name": "Content-Length", "value": "166" }, + { "name": "Content-Type", "value": "application/json" }, + { "name": "Cross-Origin-Opener-Policy", "value": "same-origin" }, + { "name": "Referrer-Policy", "value": "same-origin" }, + { "name": "Vary", "value": "Accept, Accept-Language, Origin, Cookie" }, + { "name": "X-Api-Version", "value": "3" }, + { "name": "X-Content-Type-Options", "value": "nosniff" }, + { "name": "X-Frame-Options", "value": "ANY" }, + { "name": "X-Version", "value": "1.14.4" } + ], + "content": { + "size": -1, + "mimeType": "application/json", + "text": "{\"count\":3,\"next\":null,\"previous\":null,\"all\":[1,2,3],\"results\":[{\"id\":1,\"name\":\"admin\",\"group\":1},{\"id\":2,\"name\":\"guest\",\"group\":2},{\"id\":3,\"name\":\"test\",\"group\":2}]}" + }, + "headersSize": -1, + "bodySize": -1, + "redirectURL": "" + }, + "cache": { }, + "timings": { + "send": -1, + "wait": -1, + "receive": 0.647 + } + }, + { + "startedDateTime": "2023-05-14T07:18:59.990Z", + "time": 0.647, + "request": { + "method": "GET", + "url": "http://localhost:8000/api/groups/?page=1&page_size=100000", + "httpVersion": "HTTP/1.1", + "cookies": [ ], + "headers": [ + { "name": "Accept", "value": "application/json; version=3" }, + { "name": "Accept-Encoding", "value": "gzip, deflate, br" }, + { "name": "Accept-Language", "value": "en-US" }, + { "name": "Connection", "value": "keep-alive" }, + { "name": "Host", "value": "localhost:8000" }, + { "name": "Origin", "value": "http://localhost:4200" }, + { "name": "Referer", "value": "http://localhost:4200/" }, + { "name": "Sec-Fetch-Dest", "value": "empty" }, + { "name": "Sec-Fetch-Mode", "value": "cors" }, + { "name": "Sec-Fetch-Site", "value": "same-site" }, + { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.5672.53 Safari/537.36" } + ], + "queryString": [ ], + "headersSize": -1, + "bodySize": -1 + }, + "response": { + "status": 200, + "statusText": "OK", + "httpVersion": "HTTP/1.1", + "cookies": [ ], + "headers": [ + { "name": "Access-Control-Allow-Origin", "value": "http://localhost:4200" }, + { "name": "Allow", "value": "GET, HEAD, OPTIONS" }, + { "name": "Content-Language", "value": "en-us" }, + { "name": "Content-Length", "value": "145" }, + { "name": "Content-Type", "value": "application/json" }, + { "name": "Cross-Origin-Opener-Policy", "value": "same-origin" }, + { "name": "Referrer-Policy", "value": "same-origin" }, + { "name": "Vary", "value": "Accept, Accept-Language, Origin, Cookie" }, + { "name": "X-Api-Version", "value": "3" }, + { "name": "X-Content-Type-Options", "value": "nosniff" }, + { "name": "X-Frame-Options", "value": "ANY" }, + { "name": "X-Version", "value": "1.14.4" } + ], + "content": { + "size": -1, + "mimeType": "application/json", + "text": "{\"count\":2,\"next\":null,\"previous\":null,\"all\":[1,2],\"results\":[{\"id\":1,\"name\":\"admin\",\"permissions\":[]},{\"id\":2,\"name\":\"guest\",\"permissions\":[]}]}" + }, + "headersSize": -1, + "bodySize": -1, + "redirectURL": "" + }, + "cache": { }, + "timings": { + "send": -1, + "wait": -1, + "receive": 0.647 + } + },{ + "startedDateTime": "2023-05-14T07:18:59.990Z", + "time": 0.647, + "request": { + "method": "GET", + "url": "http://localhost:8000/api/users/?page=1&page_size=100000", + "httpVersion": "HTTP/1.1", + "cookies": [ ], + "headers": [ + { "name": "Accept", "value": "application/json; version=3" }, + { "name": "Accept-Encoding", "value": "gzip, deflate, br" }, + { "name": "Accept-Language", "value": "en-US" }, + { "name": "Connection", "value": "keep-alive" }, + { "name": "Host", "value": "localhost:8000" }, + { "name": "Origin", "value": "http://localhost:4200" }, + { "name": "Referer", "value": "http://localhost:4200/" }, + { "name": "Sec-Fetch-Dest", "value": "empty" }, + { "name": "Sec-Fetch-Mode", "value": "cors" }, + { "name": "Sec-Fetch-Site", "value": "same-site" }, + { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.5672.53 Safari/537.36" } + ], + "queryString": [ ], + "headersSize": -1, + "bodySize": -1 + }, + "response": { + "status": 200, + "statusText": "OK", + "httpVersion": "HTTP/1.1", + "cookies": [ ], + "headers": [ + { "name": "Access-Control-Allow-Origin", "value": "http://localhost:4200" }, + { "name": "Allow", "value": "GET, HEAD, OPTIONS" }, + { "name": "Content-Language", "value": "en-us" }, + { "name": "Content-Length", "value": "1298" }, + { "name": "Content-Type", "value": "application/json" }, + { "name": "Cross-Origin-Opener-Policy", "value": "same-origin" }, + { "name": "Referrer-Policy", "value": "same-origin" }, + { "name": "Vary", "value": "Accept, Accept-Language, Origin, Cookie" }, + { "name": "X-Api-Version", "value": "3" }, + { "name": "X-Content-Type-Options", "value": "nosniff" }, + { "name": "X-Frame-Options", "value": "ANY" }, + { "name": "X-Version", "value": "1.14.4" } + ], + "content": { + "size": -1, + "mimeType": "application/json", + "text": "{\"count\":1,\"next\":null,\"previous\":null,\"all\":[1],\"results\":[{\"id\":1,\"username\":\"testuser\",\"email\":\"\",\"password\":\"**********\",\"first_name\":\"\",\"last_name\":\"\",\"date_joined\":\"2000-01-01T00:00:00.000000Z\",\"is_staff\":true,\"is_active\":true,\"is_superuser\":false,\"groups\":[],\"user_permissions\":[\"add_uisettings\",\"view_uisettings\",\"change_uisettings\",\"delete_uisettings\",\"add_logentry\",\"view_logentry\",\"change_logentry\",\"delete_logentry\",\"add_paperlesstask\",\"view_paperlesstask\",\"change_paperlesstask\",\"delete_paperlesstask\",\"add_document\",\"view_document\",\"change_document\",\"delete_document\",\"add_tag\",\"view_tag\",\"change_tag\",\"delete_tag\",\"add_note\",\"view_note\",\"change_note\",\"delete_note\",\"add_correspondent\",\"view_correspondent\",\"change_correspondent\",\"delete_correspondent\",\"add_documenttype\",\"view_documenttype\",\"change_documenttype\",\"delete_documenttype\",\"add_savedview\",\"view_savedview\",\"change_savedview\",\"delete_savedview\",\"add_storagepath\",\"view_storagepath\",\"change_storagepath\",\"delete_storagepath\",\"add_mailaccount\",\"view_mailaccount\",\"change_mailaccount\",\"delete_mailaccount\",\"add_mailrule\",\"view_mailrule\",\"change_mailrule\",\"delete_mailrule\",\"add_user\",\"view_user\",\"change_user\",\"delete_user\",\"add_group\",\"view_group\",\"change_group\",\"delete_group\",\"view_ssogroup\",\"change_ssogroup\"],\"inherited_permissions\":[]}]}" + }, + "headersSize": -1, + "bodySize": -1, + "redirectURL": "" + }, + "cache": { }, + "timings": { + "send": -1, + "wait": -1, + "receive": 0.647 + } + } + ] + } +} diff --git a/src-ui/e2e/admin/requests/api-settings-ssogroup-create.har b/src-ui/e2e/admin/requests/api-settings-ssogroup-create.har new file mode 100644 index 000000000..a91fb42d8 --- /dev/null +++ b/src-ui/e2e/admin/requests/api-settings-ssogroup-create.har @@ -0,0 +1,255 @@ +{ + "log": { + "version": "1.2", + "creator": { + "name": "Playwright", + "version": "1.33.0" + }, + "browser": { + "name": "chromium", + "version": "113.0.5672.53" + }, + "entries": [ + { + "startedDateTime": "2023-05-14T07:18:59.856Z", + "time": 6.025, + "request": { + "method": "GET", + "url": "http://localhost:8000/api/ui_settings/", + "httpVersion": "HTTP/1.1", + "cookies": [ ], + "headers": [ + { "name": "Accept", "value": "application/json; version=3" }, + { "name": "Accept-Encoding", "value": "gzip, deflate, br" }, + { "name": "Accept-Language", "value": "en-US" }, + { "name": "Connection", "value": "keep-alive" }, + { "name": "Host", "value": "localhost:8000" }, + { "name": "Origin", "value": "http://localhost:4200" }, + { "name": "Referer", "value": "http://localhost:4200/" }, + { "name": "Sec-Fetch-Dest", "value": "empty" }, + { "name": "Sec-Fetch-Mode", "value": "cors" }, + { "name": "Sec-Fetch-Site", "value": "same-site" }, + { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.5672.53 Safari/537.36" } + ], + "queryString": [ ], + "headersSize": -1, + "bodySize": -1 + }, + "response": { + "status": 200, + "statusText": "OK", + "httpVersion": "HTTP/1.1", + "cookies": [ ], + "headers": [ + { "name": "Access-Control-Allow-Origin", "value": "http://localhost:4200" }, + { "name": "Allow", "value": "GET, POST, HEAD, OPTIONS" }, + { "name": "Content-Encoding", "value": "br" }, + { "name": "Content-Language", "value": "en-us" }, + { "name": "Content-Length", "value": "1739" }, + { "name": "Content-Type", "value": "application/json" }, + { "name": "Cross-Origin-Opener-Policy", "value": "same-origin" }, + { "name": "Referrer-Policy", "value": "same-origin" }, + { "name": "Vary", "value": "Accept, Accept-Language, Origin, Cookie, Accept-Encoding" }, + { "name": "X-Api-Version", "value": "3" }, + { "name": "X-Content-Type-Options", "value": "nosniff" }, + { "name": "X-Frame-Options", "value": "ANY" }, + { "name": "X-Version", "value": "1.14.4" } + ], + "content": { + "size": -1, + "mimeType": "application/json", + "text": "{\"user\":{\"id\":1,\"username\":\"testuser\",\"is_superuser\":false,\"groups\":[]},\"settings\":{\"language\":\"\",\"bulk_edit\":{\"confirmation_dialogs\":true,\"apply_on_close\":false},\"documentListSize\":50,\"dark_mode\":{\"use_system\":true,\"enabled\":\"false\",\"thumb_inverted\":\"true\"},\"theme\":{\"color\":\"#9fbf2f\"},\"document_details\":{\"native_pdf_viewer\":false},\"date_display\":{\"date_locale\":\"\",\"date_format\":\"mediumDate\"},\"notifications\":{\"consumer_new_documents\":true,\"consumer_success\":true,\"consumer_failed\":true,\"consumer_suppress_on_dashboard\":true},\"comments_enabled\":true,\"slim_sidebar\":false,\"update_checking\":{\"enabled\":false,\"backend_setting\":\"default\"},\"saved_views\":{\"warn_on_unsaved_change\":true},\"notes_enabled\":true,\"tour_complete\":true},\"permissions\":[\"add_uisettings\",\"view_uisettings\",\"change_uisettings\",\"delete_uisettings\",\"add_logentry\",\"view_logentry\",\"change_logentry\",\"delete_logentry\",\"add_paperlesstask\",\"view_paperlesstask\",\"change_paperlesstask\",\"delete_paperlesstask\",\"add_document\",\"view_document\",\"change_document\",\"delete_document\",\"add_tag\",\"view_tag\",\"change_tag\",\"delete_tag\",\"add_note\",\"view_note\",\"change_note\",\"delete_note\",\"add_correspondent\",\"view_correspondent\",\"change_correspondent\",\"delete_correspondent\",\"add_documenttype\",\"view_documenttype\",\"change_documenttype\",\"delete_documenttype\",\"add_savedview\",\"view_savedview\",\"change_savedview\",\"delete_savedview\",\"add_storagepath\",\"view_storagepath\",\"change_storagepath\",\"delete_storagepath\",\"add_mailaccount\",\"view_mailaccount\",\"change_mailaccount\",\"delete_mailaccount\",\"add_mailrule\",\"view_mailrule\",\"change_mailrule\",\"delete_mailrule\",\"add_user\",\"view_user\",\"change_user\",\"delete_user\",\"add_group\",\"view_group\",\"change_group\",\"delete_group\",\"view_ssogroup\",\"add_ssogroup\"]}" + }, + "headersSize": -1, + "bodySize": -1, + "redirectURL": "" + }, + "cache": { }, + "timings": { + "send": -1, + "wait": -1, + "receive": 6.025 + } + }, + { + "startedDateTime": "2023-05-14T07:18:59.990Z", + "time": 0.647, + "request": { + "method": "GET", + "url": "http://localhost:8000/api/sso_groups/?page=1&page_size=100000", + "httpVersion": "HTTP/1.1", + "cookies": [ ], + "headers": [ + { "name": "Accept", "value": "application/json; version=3" }, + { "name": "Accept-Encoding", "value": "gzip, deflate, br" }, + { "name": "Accept-Language", "value": "en-US" }, + { "name": "Connection", "value": "keep-alive" }, + { "name": "Host", "value": "localhost:8000" }, + { "name": "Origin", "value": "http://localhost:4200" }, + { "name": "Referer", "value": "http://localhost:4200/" }, + { "name": "Sec-Fetch-Dest", "value": "empty" }, + { "name": "Sec-Fetch-Mode", "value": "cors" }, + { "name": "Sec-Fetch-Site", "value": "same-site" }, + { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.5672.53 Safari/537.36" } + ], + "queryString": [ ], + "headersSize": -1, + "bodySize": -1 + }, + "response": { + "status": 200, + "statusText": "OK", + "httpVersion": "HTTP/1.1", + "cookies": [ ], + "headers": [ + { "name": "Access-Control-Allow-Origin", "value": "http://localhost:4200" }, + { "name": "Allow", "value": "GET, HEAD, OPTIONS" }, + { "name": "Content-Language", "value": "en-us" }, + { "name": "Content-Length", "value": "166" }, + { "name": "Content-Type", "value": "application/json" }, + { "name": "Cross-Origin-Opener-Policy", "value": "same-origin" }, + { "name": "Referrer-Policy", "value": "same-origin" }, + { "name": "Vary", "value": "Accept, Accept-Language, Origin, Cookie" }, + { "name": "X-Api-Version", "value": "3" }, + { "name": "X-Content-Type-Options", "value": "nosniff" }, + { "name": "X-Frame-Options", "value": "ANY" }, + { "name": "X-Version", "value": "1.14.4" } + ], + "content": { + "size": -1, + "mimeType": "application/json", + "text": "{\"count\":3,\"next\":null,\"previous\":null,\"all\":[1,2,3],\"results\":[{\"id\":1,\"name\":\"admin\",\"group\":1},{\"id\":2,\"name\":\"guest\",\"group\":2},{\"id\":3,\"name\":\"test\",\"group\":2}]}" + }, + "headersSize": -1, + "bodySize": -1, + "redirectURL": "" + }, + "cache": { }, + "timings": { + "send": -1, + "wait": -1, + "receive": 0.647 + } + }, + { + "startedDateTime": "2023-05-14T07:18:59.990Z", + "time": 0.647, + "request": { + "method": "GET", + "url": "http://localhost:8000/api/groups/?page=1&page_size=100000", + "httpVersion": "HTTP/1.1", + "cookies": [ ], + "headers": [ + { "name": "Accept", "value": "application/json; version=3" }, + { "name": "Accept-Encoding", "value": "gzip, deflate, br" }, + { "name": "Accept-Language", "value": "en-US" }, + { "name": "Connection", "value": "keep-alive" }, + { "name": "Host", "value": "localhost:8000" }, + { "name": "Origin", "value": "http://localhost:4200" }, + { "name": "Referer", "value": "http://localhost:4200/" }, + { "name": "Sec-Fetch-Dest", "value": "empty" }, + { "name": "Sec-Fetch-Mode", "value": "cors" }, + { "name": "Sec-Fetch-Site", "value": "same-site" }, + { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.5672.53 Safari/537.36" } + ], + "queryString": [ ], + "headersSize": -1, + "bodySize": -1 + }, + "response": { + "status": 200, + "statusText": "OK", + "httpVersion": "HTTP/1.1", + "cookies": [ ], + "headers": [ + { "name": "Access-Control-Allow-Origin", "value": "http://localhost:4200" }, + { "name": "Allow", "value": "GET, HEAD, OPTIONS" }, + { "name": "Content-Language", "value": "en-us" }, + { "name": "Content-Length", "value": "145" }, + { "name": "Content-Type", "value": "application/json" }, + { "name": "Cross-Origin-Opener-Policy", "value": "same-origin" }, + { "name": "Referrer-Policy", "value": "same-origin" }, + { "name": "Vary", "value": "Accept, Accept-Language, Origin, Cookie" }, + { "name": "X-Api-Version", "value": "3" }, + { "name": "X-Content-Type-Options", "value": "nosniff" }, + { "name": "X-Frame-Options", "value": "ANY" }, + { "name": "X-Version", "value": "1.14.4" } + ], + "content": { + "size": -1, + "mimeType": "application/json", + "text": "{\"count\":2,\"next\":null,\"previous\":null,\"all\":[1,2],\"results\":[{\"id\":1,\"name\":\"admin\",\"permissions\":[]},{\"id\":2,\"name\":\"guest\",\"permissions\":[]}]}" + }, + "headersSize": -1, + "bodySize": -1, + "redirectURL": "" + }, + "cache": { }, + "timings": { + "send": -1, + "wait": -1, + "receive": 0.647 + } + },{ + "startedDateTime": "2023-05-14T07:18:59.990Z", + "time": 0.647, + "request": { + "method": "GET", + "url": "http://localhost:8000/api/users/?page=1&page_size=100000", + "httpVersion": "HTTP/1.1", + "cookies": [ ], + "headers": [ + { "name": "Accept", "value": "application/json; version=3" }, + { "name": "Accept-Encoding", "value": "gzip, deflate, br" }, + { "name": "Accept-Language", "value": "en-US" }, + { "name": "Connection", "value": "keep-alive" }, + { "name": "Host", "value": "localhost:8000" }, + { "name": "Origin", "value": "http://localhost:4200" }, + { "name": "Referer", "value": "http://localhost:4200/" }, + { "name": "Sec-Fetch-Dest", "value": "empty" }, + { "name": "Sec-Fetch-Mode", "value": "cors" }, + { "name": "Sec-Fetch-Site", "value": "same-site" }, + { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.5672.53 Safari/537.36" } + ], + "queryString": [ ], + "headersSize": -1, + "bodySize": -1 + }, + "response": { + "status": 200, + "statusText": "OK", + "httpVersion": "HTTP/1.1", + "cookies": [ ], + "headers": [ + { "name": "Access-Control-Allow-Origin", "value": "http://localhost:4200" }, + { "name": "Allow", "value": "GET, HEAD, OPTIONS" }, + { "name": "Content-Language", "value": "en-us" }, + { "name": "Content-Length", "value": "1313" }, + { "name": "Content-Type", "value": "application/json" }, + { "name": "Cross-Origin-Opener-Policy", "value": "same-origin" }, + { "name": "Referrer-Policy", "value": "same-origin" }, + { "name": "Vary", "value": "Accept, Accept-Language, Origin, Cookie" }, + { "name": "X-Api-Version", "value": "3" }, + { "name": "X-Content-Type-Options", "value": "nosniff" }, + { "name": "X-Frame-Options", "value": "ANY" }, + { "name": "X-Version", "value": "1.14.4" } + ], + "content": { + "size": -1, + "mimeType": "application/json", + "text": "{\"count\":1,\"next\":null,\"previous\":null,\"all\":[1],\"results\":[{\"id\":1,\"username\":\"testuser\",\"email\":\"\",\"password\":\"**********\",\"first_name\":\"\",\"last_name\":\"\",\"date_joined\":\"2000-01-01T00:00:00.000000Z\",\"is_staff\":true,\"is_active\":true,\"is_superuser\":false,\"groups\":[],\"user_permissions\":[\"add_uisettings\",\"view_uisettings\",\"change_uisettings\",\"delete_uisettings\",\"add_logentry\",\"view_logentry\",\"change_logentry\",\"delete_logentry\",\"add_paperlesstask\",\"view_paperlesstask\",\"change_paperlesstask\",\"delete_paperlesstask\",\"add_document\",\"view_document\",\"change_document\",\"delete_document\",\"add_tag\",\"view_tag\",\"change_tag\",\"delete_tag\",\"add_note\",\"view_note\",\"change_note\",\"delete_note\",\"add_correspondent\",\"view_correspondent\",\"change_correspondent\",\"delete_correspondent\",\"add_documenttype\",\"view_documenttype\",\"change_documenttype\",\"delete_documenttype\",\"add_savedview\",\"view_savedview\",\"change_savedview\",\"delete_savedview\",\"add_storagepath\",\"view_storagepath\",\"change_storagepath\",\"delete_storagepath\",\"add_mailaccount\",\"view_mailaccount\",\"change_mailaccount\",\"delete_mailaccount\",\"add_mailrule\",\"view_mailrule\",\"change_mailrule\",\"delete_mailrule\",\"add_user\",\"view_user\",\"change_user\",\"delete_user\",\"add_group\",\"view_group\",\"change_group\",\"delete_group\",\"view_ssogroup\",\"add_ssogroup\"],\"inherited_permissions\":[]}]}" + }, + "headersSize": -1, + "bodySize": -1, + "redirectURL": "" + }, + "cache": { }, + "timings": { + "send": -1, + "wait": -1, + "receive": 0.647 + } + } + ] + } +} diff --git a/src-ui/e2e/admin/requests/api-settings-ssogroup-delete.har b/src-ui/e2e/admin/requests/api-settings-ssogroup-delete.har new file mode 100644 index 000000000..55f6c54ad --- /dev/null +++ b/src-ui/e2e/admin/requests/api-settings-ssogroup-delete.har @@ -0,0 +1,255 @@ +{ + "log": { + "version": "1.2", + "creator": { + "name": "Playwright", + "version": "1.33.0" + }, + "browser": { + "name": "chromium", + "version": "113.0.5672.53" + }, + "entries": [ + { + "startedDateTime": "2023-05-14T07:18:59.856Z", + "time": 6.025, + "request": { + "method": "GET", + "url": "http://localhost:8000/api/ui_settings/", + "httpVersion": "HTTP/1.1", + "cookies": [ ], + "headers": [ + { "name": "Accept", "value": "application/json; version=3" }, + { "name": "Accept-Encoding", "value": "gzip, deflate, br" }, + { "name": "Accept-Language", "value": "en-US" }, + { "name": "Connection", "value": "keep-alive" }, + { "name": "Host", "value": "localhost:8000" }, + { "name": "Origin", "value": "http://localhost:4200" }, + { "name": "Referer", "value": "http://localhost:4200/" }, + { "name": "Sec-Fetch-Dest", "value": "empty" }, + { "name": "Sec-Fetch-Mode", "value": "cors" }, + { "name": "Sec-Fetch-Site", "value": "same-site" }, + { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.5672.53 Safari/537.36" } + ], + "queryString": [ ], + "headersSize": -1, + "bodySize": -1 + }, + "response": { + "status": 200, + "statusText": "OK", + "httpVersion": "HTTP/1.1", + "cookies": [ ], + "headers": [ + { "name": "Access-Control-Allow-Origin", "value": "http://localhost:4200" }, + { "name": "Allow", "value": "GET, POST, HEAD, OPTIONS" }, + { "name": "Content-Encoding", "value": "br" }, + { "name": "Content-Language", "value": "en-us" }, + { "name": "Content-Length", "value": "1742" }, + { "name": "Content-Type", "value": "application/json" }, + { "name": "Cross-Origin-Opener-Policy", "value": "same-origin" }, + { "name": "Referrer-Policy", "value": "same-origin" }, + { "name": "Vary", "value": "Accept, Accept-Language, Origin, Cookie, Accept-Encoding" }, + { "name": "X-Api-Version", "value": "3" }, + { "name": "X-Content-Type-Options", "value": "nosniff" }, + { "name": "X-Frame-Options", "value": "ANY" }, + { "name": "X-Version", "value": "1.14.4" } + ], + "content": { + "size": -1, + "mimeType": "application/json", + "text": "{\"user\":{\"id\":1,\"username\":\"testuser\",\"is_superuser\":false,\"groups\":[]},\"settings\":{\"language\":\"\",\"bulk_edit\":{\"confirmation_dialogs\":true,\"apply_on_close\":false},\"documentListSize\":50,\"dark_mode\":{\"use_system\":true,\"enabled\":\"false\",\"thumb_inverted\":\"true\"},\"theme\":{\"color\":\"#9fbf2f\"},\"document_details\":{\"native_pdf_viewer\":false},\"date_display\":{\"date_locale\":\"\",\"date_format\":\"mediumDate\"},\"notifications\":{\"consumer_new_documents\":true,\"consumer_success\":true,\"consumer_failed\":true,\"consumer_suppress_on_dashboard\":true},\"comments_enabled\":true,\"slim_sidebar\":false,\"update_checking\":{\"enabled\":false,\"backend_setting\":\"default\"},\"saved_views\":{\"warn_on_unsaved_change\":true},\"notes_enabled\":true,\"tour_complete\":true},\"permissions\":[\"add_uisettings\",\"view_uisettings\",\"change_uisettings\",\"delete_uisettings\",\"add_logentry\",\"view_logentry\",\"change_logentry\",\"delete_logentry\",\"add_paperlesstask\",\"view_paperlesstask\",\"change_paperlesstask\",\"delete_paperlesstask\",\"add_document\",\"view_document\",\"change_document\",\"delete_document\",\"add_tag\",\"view_tag\",\"change_tag\",\"delete_tag\",\"add_note\",\"view_note\",\"change_note\",\"delete_note\",\"add_correspondent\",\"view_correspondent\",\"change_correspondent\",\"delete_correspondent\",\"add_documenttype\",\"view_documenttype\",\"change_documenttype\",\"delete_documenttype\",\"add_savedview\",\"view_savedview\",\"change_savedview\",\"delete_savedview\",\"add_storagepath\",\"view_storagepath\",\"change_storagepath\",\"delete_storagepath\",\"add_mailaccount\",\"view_mailaccount\",\"change_mailaccount\",\"delete_mailaccount\",\"add_mailrule\",\"view_mailrule\",\"change_mailrule\",\"delete_mailrule\",\"add_user\",\"view_user\",\"change_user\",\"delete_user\",\"add_group\",\"view_group\",\"change_group\",\"delete_group\",\"view_ssogroup\",\"delete_ssogroup\"]}" + }, + "headersSize": -1, + "bodySize": -1, + "redirectURL": "" + }, + "cache": { }, + "timings": { + "send": -1, + "wait": -1, + "receive": 6.025 + } + }, + { + "startedDateTime": "2023-05-14T07:18:59.990Z", + "time": 0.647, + "request": { + "method": "GET", + "url": "http://localhost:8000/api/sso_groups/?page=1&page_size=100000", + "httpVersion": "HTTP/1.1", + "cookies": [ ], + "headers": [ + { "name": "Accept", "value": "application/json; version=3" }, + { "name": "Accept-Encoding", "value": "gzip, deflate, br" }, + { "name": "Accept-Language", "value": "en-US" }, + { "name": "Connection", "value": "keep-alive" }, + { "name": "Host", "value": "localhost:8000" }, + { "name": "Origin", "value": "http://localhost:4200" }, + { "name": "Referer", "value": "http://localhost:4200/" }, + { "name": "Sec-Fetch-Dest", "value": "empty" }, + { "name": "Sec-Fetch-Mode", "value": "cors" }, + { "name": "Sec-Fetch-Site", "value": "same-site" }, + { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.5672.53 Safari/537.36" } + ], + "queryString": [ ], + "headersSize": -1, + "bodySize": -1 + }, + "response": { + "status": 200, + "statusText": "OK", + "httpVersion": "HTTP/1.1", + "cookies": [ ], + "headers": [ + { "name": "Access-Control-Allow-Origin", "value": "http://localhost:4200" }, + { "name": "Allow", "value": "GET, HEAD, OPTIONS" }, + { "name": "Content-Language", "value": "en-us" }, + { "name": "Content-Length", "value": "166" }, + { "name": "Content-Type", "value": "application/json" }, + { "name": "Cross-Origin-Opener-Policy", "value": "same-origin" }, + { "name": "Referrer-Policy", "value": "same-origin" }, + { "name": "Vary", "value": "Accept, Accept-Language, Origin, Cookie" }, + { "name": "X-Api-Version", "value": "3" }, + { "name": "X-Content-Type-Options", "value": "nosniff" }, + { "name": "X-Frame-Options", "value": "ANY" }, + { "name": "X-Version", "value": "1.14.4" } + ], + "content": { + "size": -1, + "mimeType": "application/json", + "text": "{\"count\":3,\"next\":null,\"previous\":null,\"all\":[1,2,3],\"results\":[{\"id\":1,\"name\":\"admin\",\"group\":1},{\"id\":2,\"name\":\"guest\",\"group\":2},{\"id\":3,\"name\":\"test\",\"group\":2}]}" + }, + "headersSize": -1, + "bodySize": -1, + "redirectURL": "" + }, + "cache": { }, + "timings": { + "send": -1, + "wait": -1, + "receive": 0.647 + } + }, + { + "startedDateTime": "2023-05-14T07:18:59.990Z", + "time": 0.647, + "request": { + "method": "GET", + "url": "http://localhost:8000/api/groups/?page=1&page_size=100000", + "httpVersion": "HTTP/1.1", + "cookies": [ ], + "headers": [ + { "name": "Accept", "value": "application/json; version=3" }, + { "name": "Accept-Encoding", "value": "gzip, deflate, br" }, + { "name": "Accept-Language", "value": "en-US" }, + { "name": "Connection", "value": "keep-alive" }, + { "name": "Host", "value": "localhost:8000" }, + { "name": "Origin", "value": "http://localhost:4200" }, + { "name": "Referer", "value": "http://localhost:4200/" }, + { "name": "Sec-Fetch-Dest", "value": "empty" }, + { "name": "Sec-Fetch-Mode", "value": "cors" }, + { "name": "Sec-Fetch-Site", "value": "same-site" }, + { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.5672.53 Safari/537.36" } + ], + "queryString": [ ], + "headersSize": -1, + "bodySize": -1 + }, + "response": { + "status": 200, + "statusText": "OK", + "httpVersion": "HTTP/1.1", + "cookies": [ ], + "headers": [ + { "name": "Access-Control-Allow-Origin", "value": "http://localhost:4200" }, + { "name": "Allow", "value": "GET, HEAD, OPTIONS" }, + { "name": "Content-Language", "value": "en-us" }, + { "name": "Content-Length", "value": "145" }, + { "name": "Content-Type", "value": "application/json" }, + { "name": "Cross-Origin-Opener-Policy", "value": "same-origin" }, + { "name": "Referrer-Policy", "value": "same-origin" }, + { "name": "Vary", "value": "Accept, Accept-Language, Origin, Cookie" }, + { "name": "X-Api-Version", "value": "3" }, + { "name": "X-Content-Type-Options", "value": "nosniff" }, + { "name": "X-Frame-Options", "value": "ANY" }, + { "name": "X-Version", "value": "1.14.4" } + ], + "content": { + "size": -1, + "mimeType": "application/json", + "text": "{\"count\":2,\"next\":null,\"previous\":null,\"all\":[1,2],\"results\":[{\"id\":1,\"name\":\"admin\",\"permissions\":[]},{\"id\":2,\"name\":\"guest\",\"permissions\":[]}]}" + }, + "headersSize": -1, + "bodySize": -1, + "redirectURL": "" + }, + "cache": { }, + "timings": { + "send": -1, + "wait": -1, + "receive": 0.647 + } + },{ + "startedDateTime": "2023-05-14T07:18:59.990Z", + "time": 0.647, + "request": { + "method": "GET", + "url": "http://localhost:8000/api/users/?page=1&page_size=100000", + "httpVersion": "HTTP/1.1", + "cookies": [ ], + "headers": [ + { "name": "Accept", "value": "application/json; version=3" }, + { "name": "Accept-Encoding", "value": "gzip, deflate, br" }, + { "name": "Accept-Language", "value": "en-US" }, + { "name": "Connection", "value": "keep-alive" }, + { "name": "Host", "value": "localhost:8000" }, + { "name": "Origin", "value": "http://localhost:4200" }, + { "name": "Referer", "value": "http://localhost:4200/" }, + { "name": "Sec-Fetch-Dest", "value": "empty" }, + { "name": "Sec-Fetch-Mode", "value": "cors" }, + { "name": "Sec-Fetch-Site", "value": "same-site" }, + { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.5672.53 Safari/537.36" } + ], + "queryString": [ ], + "headersSize": -1, + "bodySize": -1 + }, + "response": { + "status": 200, + "statusText": "OK", + "httpVersion": "HTTP/1.1", + "cookies": [ ], + "headers": [ + { "name": "Access-Control-Allow-Origin", "value": "http://localhost:4200" }, + { "name": "Allow", "value": "GET, HEAD, OPTIONS" }, + { "name": "Content-Language", "value": "en-us" }, + { "name": "Content-Length", "value": "1316" }, + { "name": "Content-Type", "value": "application/json" }, + { "name": "Cross-Origin-Opener-Policy", "value": "same-origin" }, + { "name": "Referrer-Policy", "value": "same-origin" }, + { "name": "Vary", "value": "Accept, Accept-Language, Origin, Cookie" }, + { "name": "X-Api-Version", "value": "3" }, + { "name": "X-Content-Type-Options", "value": "nosniff" }, + { "name": "X-Frame-Options", "value": "ANY" }, + { "name": "X-Version", "value": "1.14.4" } + ], + "content": { + "size": -1, + "mimeType": "application/json", + "text": "{\"count\":1,\"next\":null,\"previous\":null,\"all\":[1],\"results\":[{\"id\":1,\"username\":\"testuser\",\"email\":\"\",\"password\":\"**********\",\"first_name\":\"\",\"last_name\":\"\",\"date_joined\":\"2000-01-01T00:00:00.000000Z\",\"is_staff\":true,\"is_active\":true,\"is_superuser\":false,\"groups\":[],\"user_permissions\":[\"add_uisettings\",\"view_uisettings\",\"change_uisettings\",\"delete_uisettings\",\"add_logentry\",\"view_logentry\",\"change_logentry\",\"delete_logentry\",\"add_paperlesstask\",\"view_paperlesstask\",\"change_paperlesstask\",\"delete_paperlesstask\",\"add_document\",\"view_document\",\"change_document\",\"delete_document\",\"add_tag\",\"view_tag\",\"change_tag\",\"delete_tag\",\"add_note\",\"view_note\",\"change_note\",\"delete_note\",\"add_correspondent\",\"view_correspondent\",\"change_correspondent\",\"delete_correspondent\",\"add_documenttype\",\"view_documenttype\",\"change_documenttype\",\"delete_documenttype\",\"add_savedview\",\"view_savedview\",\"change_savedview\",\"delete_savedview\",\"add_storagepath\",\"view_storagepath\",\"change_storagepath\",\"delete_storagepath\",\"add_mailaccount\",\"view_mailaccount\",\"change_mailaccount\",\"delete_mailaccount\",\"add_mailrule\",\"view_mailrule\",\"change_mailrule\",\"delete_mailrule\",\"add_user\",\"view_user\",\"change_user\",\"delete_user\",\"add_group\",\"view_group\",\"change_group\",\"delete_group\",\"view_ssogroup\",\"delete_ssogroup\"],\"inherited_permissions\":[]}]}" + }, + "headersSize": -1, + "bodySize": -1, + "redirectURL": "" + }, + "cache": { }, + "timings": { + "send": -1, + "wait": -1, + "receive": 0.647 + } + } + ] + } +} diff --git a/src-ui/e2e/admin/requests/api-settings-ssogroup-nothing.har b/src-ui/e2e/admin/requests/api-settings-ssogroup-nothing.har new file mode 100644 index 000000000..a709dad7e --- /dev/null +++ b/src-ui/e2e/admin/requests/api-settings-ssogroup-nothing.har @@ -0,0 +1,195 @@ +{ + "log": { + "version": "1.2", + "creator": { + "name": "Playwright", + "version": "1.33.0" + }, + "browser": { + "name": "chromium", + "version": "113.0.5672.53" + }, + "entries": [ + { + "startedDateTime": "2023-05-14T07:18:59.856Z", + "time": 6.025, + "request": { + "method": "GET", + "url": "http://localhost:8000/api/ui_settings/", + "httpVersion": "HTTP/1.1", + "cookies": [ ], + "headers": [ + { "name": "Accept", "value": "application/json; version=3" }, + { "name": "Accept-Encoding", "value": "gzip, deflate, br" }, + { "name": "Accept-Language", "value": "en-US" }, + { "name": "Connection", "value": "keep-alive" }, + { "name": "Host", "value": "localhost:8000" }, + { "name": "Origin", "value": "http://localhost:4200" }, + { "name": "Referer", "value": "http://localhost:4200/" }, + { "name": "Sec-Fetch-Dest", "value": "empty" }, + { "name": "Sec-Fetch-Mode", "value": "cors" }, + { "name": "Sec-Fetch-Site", "value": "same-site" }, + { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.5672.53 Safari/537.36" } + ], + "queryString": [ ], + "headersSize": -1, + "bodySize": -1 + }, + "response": { + "status": 200, + "statusText": "OK", + "httpVersion": "HTTP/1.1", + "cookies": [ ], + "headers": [ + { "name": "Access-Control-Allow-Origin", "value": "http://localhost:4200" }, + { "name": "Allow", "value": "GET, POST, HEAD, OPTIONS" }, + { "name": "Content-Encoding", "value": "br" }, + { "name": "Content-Language", "value": "en-us" }, + { "name": "Content-Length", "value": "1708" }, + { "name": "Content-Type", "value": "application/json" }, + { "name": "Cross-Origin-Opener-Policy", "value": "same-origin" }, + { "name": "Referrer-Policy", "value": "same-origin" }, + { "name": "Vary", "value": "Accept, Accept-Language, Origin, Cookie, Accept-Encoding" }, + { "name": "X-Api-Version", "value": "3" }, + { "name": "X-Content-Type-Options", "value": "nosniff" }, + { "name": "X-Frame-Options", "value": "ANY" }, + { "name": "X-Version", "value": "1.14.4" } + ], + "content": { + "size": -1, + "mimeType": "application/json", + "text": "{\"user\":{\"id\":2,\"username\":\"testuser\",\"is_superuser\":false,\"groups\":[]},\"settings\":{\"language\":\"\",\"bulk_edit\":{\"confirmation_dialogs\":true,\"apply_on_close\":false},\"documentListSize\":50,\"dark_mode\":{\"use_system\":true,\"enabled\":\"false\",\"thumb_inverted\":\"true\"},\"theme\":{\"color\":\"#9fbf2f\"},\"document_details\":{\"native_pdf_viewer\":false},\"date_display\":{\"date_locale\":\"\",\"date_format\":\"mediumDate\"},\"notifications\":{\"consumer_new_documents\":true,\"consumer_success\":true,\"consumer_failed\":true,\"consumer_suppress_on_dashboard\":true},\"comments_enabled\":true,\"slim_sidebar\":false,\"update_checking\":{\"enabled\":false,\"backend_setting\":\"default\"},\"saved_views\":{\"warn_on_unsaved_change\":true},\"notes_enabled\":true,\"tour_complete\":true},\"permissions\":[\"add_uisettings\",\"view_uisettings\",\"change_uisettings\",\"delete_uisettings\",\"add_logentry\",\"view_logentry\",\"change_logentry\",\"delete_logentry\",\"add_paperlesstask\",\"view_paperlesstask\",\"change_paperlesstask\",\"delete_paperlesstask\",\"add_document\",\"view_document\",\"change_document\",\"delete_document\",\"add_tag\",\"view_tag\",\"change_tag\",\"delete_tag\",\"add_note\",\"view_note\",\"change_note\",\"delete_note\",\"add_correspondent\",\"view_correspondent\",\"change_correspondent\",\"delete_correspondent\",\"add_documenttype\",\"view_documenttype\",\"change_documenttype\",\"delete_documenttype\",\"add_savedview\",\"view_savedview\",\"change_savedview\",\"delete_savedview\",\"add_storagepath\",\"view_storagepath\",\"change_storagepath\",\"delete_storagepath\",\"add_mailaccount\",\"view_mailaccount\",\"change_mailaccount\",\"delete_mailaccount\",\"add_mailrule\",\"view_mailrule\",\"change_mailrule\",\"delete_mailrule\",\"add_user\",\"view_user\",\"change_user\",\"delete_user\",\"add_group\",\"view_group\",\"change_group\",\"delete_group\"]}" + }, + "headersSize": -1, + "bodySize": -1, + "redirectURL": "" + }, + "cache": { }, + "timings": { + "send": -1, + "wait": -1, + "receive": 6.025 + } + }, + { + "startedDateTime": "2023-05-14T07:18:59.990Z", + "time": 0.647, + "request": { + "method": "GET", + "url": "http://localhost:8000/api/groups/?page=1&page_size=100000", + "httpVersion": "HTTP/1.1", + "cookies": [ ], + "headers": [ + { "name": "Accept", "value": "application/json; version=3" }, + { "name": "Accept-Encoding", "value": "gzip, deflate, br" }, + { "name": "Accept-Language", "value": "en-US" }, + { "name": "Connection", "value": "keep-alive" }, + { "name": "Host", "value": "localhost:8000" }, + { "name": "Origin", "value": "http://localhost:4200" }, + { "name": "Referer", "value": "http://localhost:4200/" }, + { "name": "Sec-Fetch-Dest", "value": "empty" }, + { "name": "Sec-Fetch-Mode", "value": "cors" }, + { "name": "Sec-Fetch-Site", "value": "same-site" }, + { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.5672.53 Safari/537.36" } + ], + "queryString": [ ], + "headersSize": -1, + "bodySize": -1 + }, + "response": { + "status": 200, + "statusText": "OK", + "httpVersion": "HTTP/1.1", + "cookies": [ ], + "headers": [ + { "name": "Access-Control-Allow-Origin", "value": "http://localhost:4200" }, + { "name": "Allow", "value": "GET, HEAD, OPTIONS" }, + { "name": "Content-Language", "value": "en-us" }, + { "name": "Content-Length", "value": "145" }, + { "name": "Content-Type", "value": "application/json" }, + { "name": "Cross-Origin-Opener-Policy", "value": "same-origin" }, + { "name": "Referrer-Policy", "value": "same-origin" }, + { "name": "Vary", "value": "Accept, Accept-Language, Origin, Cookie" }, + { "name": "X-Api-Version", "value": "3" }, + { "name": "X-Content-Type-Options", "value": "nosniff" }, + { "name": "X-Frame-Options", "value": "ANY" }, + { "name": "X-Version", "value": "1.14.4" } + ], + "content": { + "size": -1, + "mimeType": "application/json", + "text": "{\"count\":2,\"next\":null,\"previous\":null,\"all\":[1,2],\"results\":[{\"id\":1,\"name\":\"admin\",\"permissions\":[]},{\"id\":2,\"name\":\"guest\",\"permissions\":[]}]}" + }, + "headersSize": -1, + "bodySize": -1, + "redirectURL": "" + }, + "cache": { }, + "timings": { + "send": -1, + "wait": -1, + "receive": 0.647 + } + },{ + "startedDateTime": "2023-05-14T07:18:59.990Z", + "time": 0.647, + "request": { + "method": "GET", + "url": "http://localhost:8000/api/users/?page=1&page_size=100000", + "httpVersion": "HTTP/1.1", + "cookies": [ ], + "headers": [ + { "name": "Accept", "value": "application/json; version=3" }, + { "name": "Accept-Encoding", "value": "gzip, deflate, br" }, + { "name": "Accept-Language", "value": "en-US" }, + { "name": "Connection", "value": "keep-alive" }, + { "name": "Host", "value": "localhost:8000" }, + { "name": "Origin", "value": "http://localhost:4200" }, + { "name": "Referer", "value": "http://localhost:4200/" }, + { "name": "Sec-Fetch-Dest", "value": "empty" }, + { "name": "Sec-Fetch-Mode", "value": "cors" }, + { "name": "Sec-Fetch-Site", "value": "same-site" }, + { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.5672.53 Safari/537.36" } + ], + "queryString": [ ], + "headersSize": -1, + "bodySize": -1 + }, + "response": { + "status": 200, + "statusText": "OK", + "httpVersion": "HTTP/1.1", + "cookies": [ ], + "headers": [ + { "name": "Access-Control-Allow-Origin", "value": "http://localhost:4200" }, + { "name": "Allow", "value": "GET, HEAD, OPTIONS" }, + { "name": "Content-Language", "value": "en-us" }, + { "name": "Content-Length", "value": "1298" }, + { "name": "Content-Type", "value": "application/json" }, + { "name": "Cross-Origin-Opener-Policy", "value": "same-origin" }, + { "name": "Referrer-Policy", "value": "same-origin" }, + { "name": "Vary", "value": "Accept, Accept-Language, Origin, Cookie" }, + { "name": "X-Api-Version", "value": "3" }, + { "name": "X-Content-Type-Options", "value": "nosniff" }, + { "name": "X-Frame-Options", "value": "ANY" }, + { "name": "X-Version", "value": "1.14.4" } + ], + "content": { + "size": -1, + "mimeType": "application/json", + "text": "{\"count\":1,\"next\":null,\"previous\":null,\"all\":[1],\"results\":[{\"id\":1,\"username\":\"testuser\",\"email\":\"\",\"password\":\"**********\",\"first_name\":\"\",\"last_name\":\"\",\"date_joined\":\"2000-01-01T00:00:00.000000Z\",\"is_staff\":true,\"is_active\":true,\"is_superuser\":false,\"groups\":[],\"user_permissions\":[\"add_uisettings\",\"view_uisettings\",\"change_uisettings\",\"delete_uisettings\",\"add_logentry\",\"view_logentry\",\"change_logentry\",\"delete_logentry\",\"add_paperlesstask\",\"view_paperlesstask\",\"change_paperlesstask\",\"delete_paperlesstask\",\"add_document\",\"view_document\",\"change_document\",\"delete_document\",\"add_tag\",\"view_tag\",\"change_tag\",\"delete_tag\",\"add_note\",\"view_note\",\"change_note\",\"delete_note\",\"add_correspondent\",\"view_correspondent\",\"change_correspondent\",\"delete_correspondent\",\"add_documenttype\",\"view_documenttype\",\"change_documenttype\",\"delete_documenttype\",\"add_savedview\",\"view_savedview\",\"change_savedview\",\"delete_savedview\",\"add_storagepath\",\"view_storagepath\",\"change_storagepath\",\"delete_storagepath\",\"add_mailaccount\",\"view_mailaccount\",\"change_mailaccount\",\"delete_mailaccount\",\"add_mailrule\",\"view_mailrule\",\"change_mailrule\",\"delete_mailrule\",\"add_user\",\"view_user\",\"change_user\",\"delete_user\",\"add_group\",\"view_group\",\"change_group\",\"delete_group\",\"view_ssogroup\"],\"inherited_permissions\":[]}]}" + }, + "headersSize": -1, + "bodySize": -1, + "redirectURL": "" + }, + "cache": { }, + "timings": { + "send": -1, + "wait": -1, + "receive": 0.647 + } + } + ] + } +} diff --git a/src-ui/e2e/admin/requests/api-settings-ssogroup-view.har b/src-ui/e2e/admin/requests/api-settings-ssogroup-view.har new file mode 100644 index 000000000..f58522946 --- /dev/null +++ b/src-ui/e2e/admin/requests/api-settings-ssogroup-view.har @@ -0,0 +1,255 @@ +{ + "log": { + "version": "1.2", + "creator": { + "name": "Playwright", + "version": "1.33.0" + }, + "browser": { + "name": "chromium", + "version": "113.0.5672.53" + }, + "entries": [ + { + "startedDateTime": "2023-05-14T07:18:59.856Z", + "time": 6.025, + "request": { + "method": "GET", + "url": "http://localhost:8000/api/ui_settings/", + "httpVersion": "HTTP/1.1", + "cookies": [ ], + "headers": [ + { "name": "Accept", "value": "application/json; version=3" }, + { "name": "Accept-Encoding", "value": "gzip, deflate, br" }, + { "name": "Accept-Language", "value": "en-US" }, + { "name": "Connection", "value": "keep-alive" }, + { "name": "Host", "value": "localhost:8000" }, + { "name": "Origin", "value": "http://localhost:4200" }, + { "name": "Referer", "value": "http://localhost:4200/" }, + { "name": "Sec-Fetch-Dest", "value": "empty" }, + { "name": "Sec-Fetch-Mode", "value": "cors" }, + { "name": "Sec-Fetch-Site", "value": "same-site" }, + { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.5672.53 Safari/537.36" } + ], + "queryString": [ ], + "headersSize": -1, + "bodySize": -1 + }, + "response": { + "status": 200, + "statusText": "OK", + "httpVersion": "HTTP/1.1", + "cookies": [ ], + "headers": [ + { "name": "Access-Control-Allow-Origin", "value": "http://localhost:4200" }, + { "name": "Allow", "value": "GET, POST, HEAD, OPTIONS" }, + { "name": "Content-Encoding", "value": "br" }, + { "name": "Content-Language", "value": "en-us" }, + { "name": "Content-Length", "value": "1724" }, + { "name": "Content-Type", "value": "application/json" }, + { "name": "Cross-Origin-Opener-Policy", "value": "same-origin" }, + { "name": "Referrer-Policy", "value": "same-origin" }, + { "name": "Vary", "value": "Accept, Accept-Language, Origin, Cookie, Accept-Encoding" }, + { "name": "X-Api-Version", "value": "3" }, + { "name": "X-Content-Type-Options", "value": "nosniff" }, + { "name": "X-Frame-Options", "value": "ANY" }, + { "name": "X-Version", "value": "1.14.4" } + ], + "content": { + "size": -1, + "mimeType": "application/json", + "text": "{\"user\":{\"id\":2,\"username\":\"testuser\",\"is_superuser\":false,\"groups\":[]},\"settings\":{\"language\":\"\",\"bulk_edit\":{\"confirmation_dialogs\":true,\"apply_on_close\":false},\"documentListSize\":50,\"dark_mode\":{\"use_system\":true,\"enabled\":\"false\",\"thumb_inverted\":\"true\"},\"theme\":{\"color\":\"#9fbf2f\"},\"document_details\":{\"native_pdf_viewer\":false},\"date_display\":{\"date_locale\":\"\",\"date_format\":\"mediumDate\"},\"notifications\":{\"consumer_new_documents\":true,\"consumer_success\":true,\"consumer_failed\":true,\"consumer_suppress_on_dashboard\":true},\"comments_enabled\":true,\"slim_sidebar\":false,\"update_checking\":{\"enabled\":false,\"backend_setting\":\"default\"},\"saved_views\":{\"warn_on_unsaved_change\":true},\"notes_enabled\":true,\"tour_complete\":true},\"permissions\":[\"add_uisettings\",\"view_uisettings\",\"change_uisettings\",\"delete_uisettings\",\"add_logentry\",\"view_logentry\",\"change_logentry\",\"delete_logentry\",\"add_paperlesstask\",\"view_paperlesstask\",\"change_paperlesstask\",\"delete_paperlesstask\",\"add_document\",\"view_document\",\"change_document\",\"delete_document\",\"add_tag\",\"view_tag\",\"change_tag\",\"delete_tag\",\"add_note\",\"view_note\",\"change_note\",\"delete_note\",\"add_correspondent\",\"view_correspondent\",\"change_correspondent\",\"delete_correspondent\",\"add_documenttype\",\"view_documenttype\",\"change_documenttype\",\"delete_documenttype\",\"add_savedview\",\"view_savedview\",\"change_savedview\",\"delete_savedview\",\"add_storagepath\",\"view_storagepath\",\"change_storagepath\",\"delete_storagepath\",\"add_mailaccount\",\"view_mailaccount\",\"change_mailaccount\",\"delete_mailaccount\",\"add_mailrule\",\"view_mailrule\",\"change_mailrule\",\"delete_mailrule\",\"add_user\",\"view_user\",\"change_user\",\"delete_user\",\"add_group\",\"view_group\",\"change_group\",\"delete_group\",\"view_ssogroup\"]}" + }, + "headersSize": -1, + "bodySize": -1, + "redirectURL": "" + }, + "cache": { }, + "timings": { + "send": -1, + "wait": -1, + "receive": 6.025 + } + }, + { + "startedDateTime": "2023-05-14T07:18:59.990Z", + "time": 0.647, + "request": { + "method": "GET", + "url": "http://localhost:8000/api/sso_groups/?page=1&page_size=100000", + "httpVersion": "HTTP/1.1", + "cookies": [ ], + "headers": [ + { "name": "Accept", "value": "application/json; version=3" }, + { "name": "Accept-Encoding", "value": "gzip, deflate, br" }, + { "name": "Accept-Language", "value": "en-US" }, + { "name": "Connection", "value": "keep-alive" }, + { "name": "Host", "value": "localhost:8000" }, + { "name": "Origin", "value": "http://localhost:4200" }, + { "name": "Referer", "value": "http://localhost:4200/" }, + { "name": "Sec-Fetch-Dest", "value": "empty" }, + { "name": "Sec-Fetch-Mode", "value": "cors" }, + { "name": "Sec-Fetch-Site", "value": "same-site" }, + { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.5672.53 Safari/537.36" } + ], + "queryString": [ ], + "headersSize": -1, + "bodySize": -1 + }, + "response": { + "status": 200, + "statusText": "OK", + "httpVersion": "HTTP/1.1", + "cookies": [ ], + "headers": [ + { "name": "Access-Control-Allow-Origin", "value": "http://localhost:4200" }, + { "name": "Allow", "value": "GET, HEAD, OPTIONS" }, + { "name": "Content-Language", "value": "en-us" }, + { "name": "Content-Length", "value": "166" }, + { "name": "Content-Type", "value": "application/json" }, + { "name": "Cross-Origin-Opener-Policy", "value": "same-origin" }, + { "name": "Referrer-Policy", "value": "same-origin" }, + { "name": "Vary", "value": "Accept, Accept-Language, Origin, Cookie" }, + { "name": "X-Api-Version", "value": "3" }, + { "name": "X-Content-Type-Options", "value": "nosniff" }, + { "name": "X-Frame-Options", "value": "ANY" }, + { "name": "X-Version", "value": "1.14.4" } + ], + "content": { + "size": -1, + "mimeType": "application/json", + "text": "{\"count\":3,\"next\":null,\"previous\":null,\"all\":[1,2,3],\"results\":[{\"id\":1,\"name\":\"admin\",\"group\":1},{\"id\":2,\"name\":\"guest\",\"group\":2},{\"id\":3,\"name\":\"test\",\"group\":2}]}" + }, + "headersSize": -1, + "bodySize": -1, + "redirectURL": "" + }, + "cache": { }, + "timings": { + "send": -1, + "wait": -1, + "receive": 0.647 + } + }, + { + "startedDateTime": "2023-05-14T07:18:59.990Z", + "time": 0.647, + "request": { + "method": "GET", + "url": "http://localhost:8000/api/groups/?page=1&page_size=100000", + "httpVersion": "HTTP/1.1", + "cookies": [ ], + "headers": [ + { "name": "Accept", "value": "application/json; version=3" }, + { "name": "Accept-Encoding", "value": "gzip, deflate, br" }, + { "name": "Accept-Language", "value": "en-US" }, + { "name": "Connection", "value": "keep-alive" }, + { "name": "Host", "value": "localhost:8000" }, + { "name": "Origin", "value": "http://localhost:4200" }, + { "name": "Referer", "value": "http://localhost:4200/" }, + { "name": "Sec-Fetch-Dest", "value": "empty" }, + { "name": "Sec-Fetch-Mode", "value": "cors" }, + { "name": "Sec-Fetch-Site", "value": "same-site" }, + { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.5672.53 Safari/537.36" } + ], + "queryString": [ ], + "headersSize": -1, + "bodySize": -1 + }, + "response": { + "status": 200, + "statusText": "OK", + "httpVersion": "HTTP/1.1", + "cookies": [ ], + "headers": [ + { "name": "Access-Control-Allow-Origin", "value": "http://localhost:4200" }, + { "name": "Allow", "value": "GET, HEAD, OPTIONS" }, + { "name": "Content-Language", "value": "en-us" }, + { "name": "Content-Length", "value": "145" }, + { "name": "Content-Type", "value": "application/json" }, + { "name": "Cross-Origin-Opener-Policy", "value": "same-origin" }, + { "name": "Referrer-Policy", "value": "same-origin" }, + { "name": "Vary", "value": "Accept, Accept-Language, Origin, Cookie" }, + { "name": "X-Api-Version", "value": "3" }, + { "name": "X-Content-Type-Options", "value": "nosniff" }, + { "name": "X-Frame-Options", "value": "ANY" }, + { "name": "X-Version", "value": "1.14.4" } + ], + "content": { + "size": -1, + "mimeType": "application/json", + "text": "{\"count\":2,\"next\":null,\"previous\":null,\"all\":[1,2],\"results\":[{\"id\":1,\"name\":\"admin\",\"permissions\":[]},{\"id\":2,\"name\":\"guest\",\"permissions\":[]}]}" + }, + "headersSize": -1, + "bodySize": -1, + "redirectURL": "" + }, + "cache": { }, + "timings": { + "send": -1, + "wait": -1, + "receive": 0.647 + } + },{ + "startedDateTime": "2023-05-14T07:18:59.990Z", + "time": 0.647, + "request": { + "method": "GET", + "url": "http://localhost:8000/api/users/?page=1&page_size=100000", + "httpVersion": "HTTP/1.1", + "cookies": [ ], + "headers": [ + { "name": "Accept", "value": "application/json; version=3" }, + { "name": "Accept-Encoding", "value": "gzip, deflate, br" }, + { "name": "Accept-Language", "value": "en-US" }, + { "name": "Connection", "value": "keep-alive" }, + { "name": "Host", "value": "localhost:8000" }, + { "name": "Origin", "value": "http://localhost:4200" }, + { "name": "Referer", "value": "http://localhost:4200/" }, + { "name": "Sec-Fetch-Dest", "value": "empty" }, + { "name": "Sec-Fetch-Mode", "value": "cors" }, + { "name": "Sec-Fetch-Site", "value": "same-site" }, + { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.5672.53 Safari/537.36" } + ], + "queryString": [ ], + "headersSize": -1, + "bodySize": -1 + }, + "response": { + "status": 200, + "statusText": "OK", + "httpVersion": "HTTP/1.1", + "cookies": [ ], + "headers": [ + { "name": "Access-Control-Allow-Origin", "value": "http://localhost:4200" }, + { "name": "Allow", "value": "GET, HEAD, OPTIONS" }, + { "name": "Content-Language", "value": "en-us" }, + { "name": "Content-Length", "value": "1298" }, + { "name": "Content-Type", "value": "application/json" }, + { "name": "Cross-Origin-Opener-Policy", "value": "same-origin" }, + { "name": "Referrer-Policy", "value": "same-origin" }, + { "name": "Vary", "value": "Accept, Accept-Language, Origin, Cookie" }, + { "name": "X-Api-Version", "value": "3" }, + { "name": "X-Content-Type-Options", "value": "nosniff" }, + { "name": "X-Frame-Options", "value": "ANY" }, + { "name": "X-Version", "value": "1.14.4" } + ], + "content": { + "size": -1, + "mimeType": "application/json", + "text": "{\"count\":1,\"next\":null,\"previous\":null,\"all\":[1],\"results\":[{\"id\":1,\"username\":\"testuser\",\"email\":\"\",\"password\":\"**********\",\"first_name\":\"\",\"last_name\":\"\",\"date_joined\":\"2000-01-01T00:00:00.000000Z\",\"is_staff\":true,\"is_active\":true,\"is_superuser\":false,\"groups\":[],\"user_permissions\":[\"add_uisettings\",\"view_uisettings\",\"change_uisettings\",\"delete_uisettings\",\"add_logentry\",\"view_logentry\",\"change_logentry\",\"delete_logentry\",\"add_paperlesstask\",\"view_paperlesstask\",\"change_paperlesstask\",\"delete_paperlesstask\",\"add_document\",\"view_document\",\"change_document\",\"delete_document\",\"add_tag\",\"view_tag\",\"change_tag\",\"delete_tag\",\"add_note\",\"view_note\",\"change_note\",\"delete_note\",\"add_correspondent\",\"view_correspondent\",\"change_correspondent\",\"delete_correspondent\",\"add_documenttype\",\"view_documenttype\",\"change_documenttype\",\"delete_documenttype\",\"add_savedview\",\"view_savedview\",\"change_savedview\",\"delete_savedview\",\"add_storagepath\",\"view_storagepath\",\"change_storagepath\",\"delete_storagepath\",\"add_mailaccount\",\"view_mailaccount\",\"change_mailaccount\",\"delete_mailaccount\",\"add_mailrule\",\"view_mailrule\",\"change_mailrule\",\"delete_mailrule\",\"add_user\",\"view_user\",\"change_user\",\"delete_user\",\"add_group\",\"view_group\",\"change_group\",\"delete_group\",\"view_ssogroup\"],\"inherited_permissions\":[]}]}" + }, + "headersSize": -1, + "bodySize": -1, + "redirectURL": "" + }, + "cache": { }, + "timings": { + "send": -1, + "wait": -1, + "receive": 0.647 + } + } + ] + } +} diff --git a/src-ui/e2e/settings/settings.spec.ts b/src-ui/e2e/settings/settings.spec.ts new file mode 100644 index 000000000..e09a74b23 --- /dev/null +++ b/src-ui/e2e/settings/settings.spec.ts @@ -0,0 +1,270 @@ +import { test, expect } from '@playwright/test' + +const REQUESTS_HAR = 'e2e/settings/requests/api-settings.har' +const REQUESTS_HAR2 = 'e2e/settings/requests/api-settings2.har' +const REQUESTS_HAR3 = 'e2e/settings/requests/api-settings3.har' +const REQUESTS_HAR_SSO_NOTHING = + 'e2e/settings/requests/api-settings-ssogroup-nothing.har' +const REQUESTS_HAR_SSO_VIEW = + 'e2e/settings/requests/api-settings-ssogroup-view.har' +const REQUESTS_HAR_SSO_CHANGE = + 'e2e/settings/requests/api-settings-ssogroup-change.har' +const REQUESTS_HAR_SSO_CREATE = + 'e2e/settings/requests/api-settings-ssogroup-create.har' +const REQUESTS_HAR_SSO_DELETE = + 'e2e/settings/requests/api-settings-ssogroup-delete.har' + +test('should not be able to do anything', async ({ page }) => { + await page.routeFromHAR(REQUESTS_HAR_SSO_NOTHING, { notFound: 'fallback' }) + await page.goto('/settings/usersgroups') + await expect(page.getByTestId('list-ssogroups')).toHaveCount(0) +}) + +test('should list three sso groups and no buttons', async ({ page }) => { + await page.routeFromHAR(REQUESTS_HAR_SSO_VIEW, { notFound: 'fallback' }) + await page.goto('/settings/usersgroups') + const sso_table = page.getByTestId('list-ssogroups') + await expect(sso_table.getByRole('listitem')).toHaveCount(4) // 3 + header + await expect(sso_table.getByRole('button', { name: 'edit' })).toHaveCount(0) // No edit + await expect(sso_table.getByRole('button', { name: 'delete' })).toHaveCount(0) // No delete + await expect(page.getByRole('button', { name: 'Add SSO Group' })).toHaveCount( + 0 + ) // No add +}) + +test('should be able to edit sso_group', async ({ page }) => { + await page.routeFromHAR(REQUESTS_HAR_SSO_CHANGE, { notFound: 'fallback' }) + await page.goto('/settings/usersgroups') + const sso_table = page.getByTestId('list-ssogroups') + await expect(sso_table.getByRole('listitem')).toHaveCount(4) // 3 + header + await expect(sso_table.getByRole('button', { name: 'edit' })).toHaveCount(3) // Only edit + await expect(sso_table.getByRole('button', { name: 'delete' })).toHaveCount(0) // No delete + await expect(page.getByRole('button', { name: 'Add SSO Group' })).toHaveCount( + 0 + ) // No add + await sso_table.getByRole('button', { name: 'edit' }).first().click() // Delete a group + await expect(page.getByRole('dialog')).toHaveCount(1) // Expect dialog + await page.getByRole('combobox').click() + await page.getByRole('option', { name: 'guest' }).click() + await page.getByLabel('Name', { exact: true }).fill('new_guest') + const updatePromise = page.waitForRequest((request) => { + const data = request.postDataJSON() + const isValid = + data['name'] == 'new_guest' && data['group'] == 2 && data['id'] == 2 + return ( + request.method() === 'PUT' && request.url().includes('/api/sso_groups/1') + ) + }) + await page.getByRole('button', { name: 'save' }).click() + await updatePromise +}) + +test('should be able to delete sso_group', async ({ page }) => { + await page.routeFromHAR(REQUESTS_HAR_SSO_DELETE, { notFound: 'fallback' }) + await page.goto('/settings/usersgroups') + const sso_table = page.getByTestId('list-ssogroups') + await expect(sso_table.getByRole('listitem')).toHaveCount(4) // 3 + header + await expect(sso_table.getByRole('button', { name: 'edit' })).toHaveCount(0) // No edit + await expect(sso_table.getByRole('button', { name: 'delete' })).toHaveCount(3) // Only delete + await expect(page.getByRole('button', { name: 'Add SSO Group' })).toHaveCount( + 0 + ) // No add + await sso_table.getByRole('button', { name: 'delete' }).first().click() // Delete a group + await expect(page.getByRole('dialog')).toHaveCount(1) // Expect dialog + const updatePromise = page.waitForRequest((request) => { + return ( + request.method() === 'DELETE' && + request.url().includes('/api/sso_groups/1') + ) + }) + await page.getByRole('button', { name: 'proceed' }).click() + await updatePromise // Should receive delete request +}) + +test('should be able to create sso_group', async ({ page }) => { + await page.routeFromHAR(REQUESTS_HAR_SSO_CREATE, { notFound: 'fallback' }) + await page.goto('/settings/usersgroups') + const sso_table = page.getByTestId('list-ssogroups') + await expect(sso_table.getByRole('listitem')).toHaveCount(4) // 3 + header + await expect(sso_table.getByRole('button', { name: 'edit' })).toHaveCount(0) // No edit + await expect(sso_table.getByRole('button', { name: 'delete' })).toHaveCount(0) // No delete + await expect(page.getByRole('button', { name: 'Add SSO Group' })).toHaveCount( + 1 + ) // Only add + await page.getByRole('button', { name: 'Add SSO Group' }).click() + await expect(page.getByRole('dialog')).toHaveCount(1) + await page.getByRole('combobox').click() + await page.getByRole('option', { name: 'admin' }).click() + await page.getByLabel('Name', { exact: true }).fill('admin_v2') + const updatePromise = page.waitForRequest((request) => { + const data = request.postDataJSON() + const isValid = data['name'] == 'admin_v2' && data['group'] == 1 + return ( + isValid && + request.method() === 'POST' && + request.url().includes('/api/sso_groups/') + ) + }) + await page.getByRole('button', { name: 'save' }).click() + await updatePromise +}) + +test('should post settings on save', async ({ page }) => { + await page.routeFromHAR(REQUESTS_HAR, { notFound: 'fallback' }) + await page.goto('/settings') + await page.getByLabel('Use system setting').click() + await page.getByRole('button', { name: 'Save' }).scrollIntoViewIfNeeded() + const updatePromise = page.waitForRequest((request) => { + const data = request.postDataJSON() + const isValid = data['settings'] != null + return ( + isValid && + request.method() === 'POST' && + request.url().includes('/api/ui_settings/') + ) + }) + await page.getByRole('button', { name: 'Save' }).click() + await updatePromise +}) + +test('should activate / deactivate save button when settings change', async ({ + page, +}) => { + await page.routeFromHAR(REQUESTS_HAR, { notFound: 'fallback' }) + await page.goto('/settings') + await expect(page.getByRole('button', { name: 'Save' })).toBeDisabled() + await page.getByLabel('Use system setting').click() + await page.getByRole('button', { name: 'Save' }).scrollIntoViewIfNeeded() + await expect(page.getByRole('button', { name: 'Save' })).toBeEnabled() +}) + +test('should warn on unsaved changes', async ({ page }) => { + await page.routeFromHAR(REQUESTS_HAR, { notFound: 'fallback' }) + await page.goto('/settings') + await page.getByLabel('Use system setting').click() + await page.getByRole('link', { name: 'Dashboard' }).click() + await expect(page.getByRole('dialog')).toHaveText(/unsaved changes/) + await page.getByRole('button', { name: 'Cancel' }).click() + await page.getByLabel('Use system setting').click() + await page.getByRole('link', { name: 'Dashboard' }).click() + await expect(page.getByRole('dialog')).toHaveCount(0) +}) + +test('should apply appearance changes when set', async ({ page }) => { + await page.routeFromHAR(REQUESTS_HAR, { notFound: 'fallback' }) + await page.goto('/settings') + await expect(page.locator('body')).toHaveClass(/color-scheme-system/) + await page.getByLabel('Use system setting').click() + await page.getByLabel('Enable dark mode').click() + await expect(page.locator('body')).toHaveClass(/color-scheme-dark/) +}) + +test('should toggle saved view options when set & saved', async ({ page }) => { + await page.routeFromHAR(REQUESTS_HAR, { notFound: 'fallback' }) + await page.goto('/settings/savedviews') + await page.getByLabel('Show on dashboard').first().click() + await page.getByLabel('Show in sidebar').first().click() + const updatePromise = page.waitForRequest((request) => { + if (!request.url().includes('8')) return true // skip other saved views + const data = request.postDataJSON() + const isValid = + data['show_on_dashboard'] === true && data['show_in_sidebar'] === true + return ( + isValid && + request.method() === 'PATCH' && + request.url().includes('/api/saved_views/') + ) + }) + await page.getByRole('button', { name: 'Save' }).scrollIntoViewIfNeeded() + await page.getByRole('button', { name: 'Save' }).click() + await updatePromise +}) + +test('should support tab direct navigation', async ({ page }) => { + await page.routeFromHAR(REQUESTS_HAR, { notFound: 'fallback' }) + await page.goto('/settings/general') + await expect(page.getByRole('tab', { name: 'General' })).toHaveAttribute( + 'aria-selected', + 'true' + ) + await page.goto('/settings/notifications') + await expect( + page.getByRole('tab', { name: 'Notifications' }) + ).toHaveAttribute('aria-selected', 'true') + await page.goto('/settings/savedviews') + await expect(page.getByRole('tab', { name: 'Saved Views' })).toHaveAttribute( + 'aria-selected', + 'true' + ) + await page.goto('/settings/mail') + await expect(page.getByRole('tab', { name: 'Mail' })).toHaveAttribute( + 'aria-selected', + 'true' + ) + await page.goto('/settings/usersgroups') + await expect( + page.getByRole('tab', { name: 'Users & Groups' }) + ).toHaveAttribute('aria-selected', 'true') +}) + +test('should show a list of mail accounts & support creation', async ({ + page, +}) => { + await page.routeFromHAR(REQUESTS_HAR2, { notFound: 'fallback' }) + await page.goto('/settings/mail') + await expect( + page.getByRole('listitem').filter({ hasText: 'imap.gmail.com' }) + ).toHaveCount(1) + await expect( + page.getByRole('listitem').filter({ hasText: 'imap.domain.com' }) + ).toHaveCount(1) + await page.getByRole('button', { name: /Add Account/ }).click() + await expect(page.getByRole('dialog')).toHaveCount(1) + await page.getByLabel('Name', { exact: true }).fill('Test Account') + await page.getByLabel('IMAP Server', { exact: true }).fill('imap.server.com') + await page.getByLabel('IMAP Port', { exact: true }).fill('993') + await page.getByLabel('Username', { exact: true }).fill('username') + await page.getByLabel('Password', { exact: true }).fill('password') + const createPromise = page.waitForRequest((request) => { + const data = request.postDataJSON() + const isValid = data['imap_server'] === 'imap.server.com' + return ( + isValid && + request.method() === 'POST' && + request.url().includes('/api/mail_accounts/') + ) + }) + await page.getByRole('button', { name: 'Save' }).click() + await createPromise +}) + +test('should show a list of mail rules & support creation', async ({ + page, +}) => { + await page.routeFromHAR(REQUESTS_HAR3, { notFound: 'fallback' }) + await page.goto('/settings/mail') + await expect( + page.getByRole('listitem').filter({ hasText: 'domain' }) + ).toHaveCount(2) + await expect( + page.getByRole('listitem').filter({ hasText: 'gmail' }) + ).toHaveCount(2) + await page.getByRole('button', { name: /Add Rule/ }).click() + await expect(page.getByRole('dialog')).toHaveCount(1) + await page.getByLabel('Name', { exact: true }).fill('Test Rule') + await page.getByTitle('Account').locator('span').first().click() + await page.getByRole('option', { name: 'gmail' }).click() + await page.getByLabel('Maximum age (days)').fill('0') + const createPromise = page.waitForRequest((request) => { + const data = request.postDataJSON() + const isValid = data['name'] === 'Test Rule' + return ( + isValid && + request.method() === 'POST' && + request.url().includes('/api/mail_rules/') + ) + }) + await page.getByRole('button', { name: 'Save' }).scrollIntoViewIfNeeded() + await page.getByRole('button', { name: 'Save' }).click() + await createPromise +})