@oneuptime/common 9.4.7 → 9.4.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Models/DatabaseModels/Alert.ts +76 -0
- package/Models/DatabaseModels/AlertEpisode.ts +1201 -0
- package/Models/DatabaseModels/AlertEpisodeFeed.ts +529 -0
- package/Models/DatabaseModels/AlertEpisodeInternalNote.ts +455 -0
- package/Models/DatabaseModels/AlertEpisodeMember.ts +586 -0
- package/Models/DatabaseModels/AlertEpisodeOwnerTeam.ts +421 -0
- package/Models/DatabaseModels/AlertEpisodeOwnerUser.ts +419 -0
- package/Models/DatabaseModels/AlertEpisodeStateTimeline.ts +523 -0
- package/Models/DatabaseModels/AlertFeed.ts +1 -0
- package/Models/DatabaseModels/AlertGroupingRule.ts +1432 -0
- package/Models/DatabaseModels/Index.ts +18 -0
- package/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.ts +70 -0
- package/Models/DatabaseModels/StatusPageDomain.ts +2 -0
- package/Models/DatabaseModels/WorkspaceNotificationLog.ts +57 -0
- package/Server/API/SlackAPI.ts +21 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1768938069147-MigrationName.ts +751 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1769125561322-MigrationName.ts +41 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1769170578688-MigrationName.ts +29 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1769172358833-MigrationName.ts +177 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1769176450526-MigrationName.ts +71 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1769190495840-MigrationName.ts +35 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1769199303656-MigrationName.ts +29 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1769202898645-MigrationName.ts +29 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1769428619414-MigrationName.ts +35 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1769428821686-MigrationName.ts +47 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +20 -0
- package/Server/Services/AlertEpisodeFeedService.ts +94 -0
- package/Server/Services/AlertEpisodeInternalNoteService.ts +71 -0
- package/Server/Services/AlertEpisodeMemberService.ts +267 -0
- package/Server/Services/AlertEpisodeOwnerTeamService.ts +10 -0
- package/Server/Services/AlertEpisodeOwnerUserService.ts +10 -0
- package/Server/Services/AlertEpisodeService.ts +988 -0
- package/Server/Services/AlertEpisodeStateTimelineService.ts +557 -0
- package/Server/Services/AlertGroupingEngineService.ts +1120 -0
- package/Server/Services/AlertGroupingRuleService.ts +14 -0
- package/Server/Services/AlertService.ts +12 -0
- package/Server/Services/CallService.ts +2 -0
- package/Server/Services/Index.ts +21 -0
- package/Server/Services/MailService.ts +5 -0
- package/Server/Services/OnCallDutyPolicyService.ts +5 -0
- package/Server/Services/SmsService.ts +2 -0
- package/Server/Services/UserNotificationSettingService.ts +23 -0
- package/Server/Services/WhatsAppService.ts +5 -0
- package/Server/Services/WorkspaceNotificationRuleService.ts +26 -0
- package/Server/Utils/AnalyticsDatabase/Statement.ts +6 -2
- package/Server/Utils/WhatsAppTemplateUtil.ts +13 -0
- package/Server/Utils/Workspace/MicrosoftTeams/Actions/ActionTypes.ts +18 -0
- package/Server/Utils/Workspace/MicrosoftTeams/Actions/AlertEpisode.ts +689 -0
- package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +16 -0
- package/Server/Utils/Workspace/Slack/Actions/ActionTypes.ts +11 -0
- package/Server/Utils/Workspace/Slack/Actions/AlertEpisode.ts +915 -0
- package/Server/Utils/Workspace/Slack/Messages/AlertEpisode.ts +120 -0
- package/Server/Utils/Workspace/WorkspaceMessages/AlertEpisode.ts +74 -0
- package/Tests/Server/Services/AlertEpisodeMemberService.test.ts +200 -0
- package/Tests/Server/Services/AlertEpisodeService.test.ts +240 -0
- package/Tests/Server/Services/AlertGroupingEngineService.test.ts +542 -0
- package/Tests/Server/Services/AlertGroupingRuleService.test.ts +383 -0
- package/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.ts +1 -1
- package/Tests/UI/Components/Input.test.tsx +1 -1
- package/Tests/UI/Components/TextArea.test.tsx +2 -2
- package/Types/BaseDatabase/SortOrder.ts +9 -0
- package/Types/Email/EmailTemplateType.ts +5 -0
- package/Types/NotificationRule/NotificationRuleType.ts +1 -0
- package/Types/NotificationSetting/NotificationSettingEventType.ts +7 -0
- package/Types/Permission.ts +309 -0
- package/Types/UserNotification/UserNotificationEventType.ts +1 -0
- package/Types/WhatsApp/WhatsAppTemplates.ts +20 -0
- package/Types/Workspace/NotificationRules/EventType.ts +1 -0
- package/Types/Workspace/NotificationRules/NotificationRuleCondition.ts +32 -3
- package/UI/Components/Accordion/Accordion.tsx +20 -2
- package/UI/Components/Alerts/Alert.tsx +1 -0
- package/UI/Components/Button/Button.tsx +29 -0
- package/UI/Components/CardSelect/CardSelect.tsx +5 -1
- package/UI/Components/Checkbox/Checkbox.tsx +7 -3
- package/UI/Components/ColorCircle/ColorCircle.tsx +2 -0
- package/UI/Components/ColorViewer/ColorViewer.tsx +19 -3
- package/UI/Components/CopyableButton/CopyableButton.tsx +22 -5
- package/UI/Components/Detail/Detail.tsx +1 -1
- package/UI/Components/Dropdown/Dropdown.tsx +14 -1
- package/UI/Components/Forms/Fields/FormField.tsx +28 -0
- package/UI/Components/FullPageModal/FullPageModal.tsx +35 -4
- package/UI/Components/Input/Input.tsx +14 -2
- package/UI/Components/Link/Link.tsx +1 -0
- package/UI/Components/Loader/Loader.tsx +8 -2
- package/UI/Components/Markdown.tsx/MarkdownViewer.tsx +76 -1
- package/UI/Components/Modal/Modal.tsx +47 -3
- package/UI/Components/ModelTable/BaseModelTable.tsx +42 -1
- package/UI/Components/MoreMenu/MoreMenu.tsx +84 -2
- package/UI/Components/OrderedStatesList/OrderedStatesList.tsx +30 -8
- package/UI/Components/Pagination/Pagination.tsx +113 -8
- package/UI/Components/ProgressBar/ProgressBar.tsx +12 -2
- package/UI/Components/Radio/Radio.tsx +21 -3
- package/UI/Components/SideMenu/CountModelSideMenuItem.tsx +54 -27
- package/UI/Components/StatusBubble/StatusBubble.tsx +7 -2
- package/UI/Components/Table/TableHeader.tsx +20 -3
- package/UI/Components/Tabs/Tab.tsx +16 -1
- package/UI/Components/Tabs/Tabs.tsx +12 -1
- package/UI/Components/TextArea/TextArea.tsx +12 -2
- package/UI/Components/Toggle/Toggle.tsx +14 -3
- package/UI/Components/Tooltip/Tooltip.tsx +11 -1
- package/UI/Components/TopAlert/TopAlert.tsx +2 -0
- package/build/dist/Models/DatabaseModels/Alert.js +77 -0
- package/build/dist/Models/DatabaseModels/Alert.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertEpisode.js +1225 -0
- package/build/dist/Models/DatabaseModels/AlertEpisode.js.map +1 -0
- package/build/dist/Models/DatabaseModels/AlertEpisodeFeed.js +553 -0
- package/build/dist/Models/DatabaseModels/AlertEpisodeFeed.js.map +1 -0
- package/build/dist/Models/DatabaseModels/AlertEpisodeInternalNote.js +467 -0
- package/build/dist/Models/DatabaseModels/AlertEpisodeInternalNote.js.map +1 -0
- package/build/dist/Models/DatabaseModels/AlertEpisodeMember.js +607 -0
- package/build/dist/Models/DatabaseModels/AlertEpisodeMember.js.map +1 -0
- package/build/dist/Models/DatabaseModels/AlertEpisodeOwnerTeam.js +437 -0
- package/build/dist/Models/DatabaseModels/AlertEpisodeOwnerTeam.js.map +1 -0
- package/build/dist/Models/DatabaseModels/AlertEpisodeOwnerUser.js +436 -0
- package/build/dist/Models/DatabaseModels/AlertEpisodeOwnerUser.js.map +1 -0
- package/build/dist/Models/DatabaseModels/AlertEpisodeStateTimeline.js +546 -0
- package/build/dist/Models/DatabaseModels/AlertEpisodeStateTimeline.js.map +1 -0
- package/build/dist/Models/DatabaseModels/AlertFeed.js +1 -0
- package/build/dist/Models/DatabaseModels/AlertFeed.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertGroupingRule.js +1437 -0
- package/build/dist/Models/DatabaseModels/AlertGroupingRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/Index.js +16 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js +69 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageDomain.js +2 -0
- package/build/dist/Models/DatabaseModels/StatusPageDomain.js.map +1 -1
- package/build/dist/Models/DatabaseModels/WorkspaceNotificationLog.js +58 -0
- package/build/dist/Models/DatabaseModels/WorkspaceNotificationLog.js.map +1 -1
- package/build/dist/Server/API/SlackAPI.js +18 -0
- package/build/dist/Server/API/SlackAPI.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1768938069147-MigrationName.js +266 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1768938069147-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769125561322-MigrationName.js +20 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769125561322-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769170578688-MigrationName.js +16 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769170578688-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769172358833-MigrationName.js +68 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769172358833-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769176450526-MigrationName.js +30 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769176450526-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769190495840-MigrationName.js +18 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769190495840-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769199303656-MigrationName.js +16 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769199303656-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769202898645-MigrationName.js +16 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769202898645-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769428619414-MigrationName.js +18 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769428619414-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769428821686-MigrationName.js +22 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769428821686-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +20 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Services/AlertEpisodeFeedService.js +83 -0
- package/build/dist/Server/Services/AlertEpisodeFeedService.js.map +1 -0
- package/build/dist/Server/Services/AlertEpisodeInternalNoteService.js +70 -0
- package/build/dist/Server/Services/AlertEpisodeInternalNoteService.js.map +1 -0
- package/build/dist/Server/Services/AlertEpisodeMemberService.js +256 -0
- package/build/dist/Server/Services/AlertEpisodeMemberService.js.map +1 -0
- package/build/dist/Server/Services/AlertEpisodeOwnerTeamService.js +9 -0
- package/build/dist/Server/Services/AlertEpisodeOwnerTeamService.js.map +1 -0
- package/build/dist/Server/Services/AlertEpisodeOwnerUserService.js +9 -0
- package/build/dist/Server/Services/AlertEpisodeOwnerUserService.js.map +1 -0
- package/build/dist/Server/Services/AlertEpisodeService.js +885 -0
- package/build/dist/Server/Services/AlertEpisodeService.js.map +1 -0
- package/build/dist/Server/Services/AlertEpisodeStateTimelineService.js +494 -0
- package/build/dist/Server/Services/AlertEpisodeStateTimelineService.js.map +1 -0
- package/build/dist/Server/Services/AlertGroupingEngineService.js +893 -0
- package/build/dist/Server/Services/AlertGroupingEngineService.js.map +1 -0
- package/build/dist/Server/Services/AlertGroupingRuleService.js +13 -0
- package/build/dist/Server/Services/AlertGroupingRuleService.js.map +1 -0
- package/build/dist/Server/Services/AlertService.js +11 -0
- package/build/dist/Server/Services/AlertService.js.map +1 -1
- package/build/dist/Server/Services/CallService.js +11 -10
- package/build/dist/Server/Services/CallService.js.map +1 -1
- package/build/dist/Server/Services/Index.js +18 -0
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/MailService.js +3 -0
- package/build/dist/Server/Services/MailService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyService.js +3 -0
- package/build/dist/Server/Services/OnCallDutyPolicyService.js.map +1 -1
- package/build/dist/Server/Services/SmsService.js +11 -10
- package/build/dist/Server/Services/SmsService.js.map +1 -1
- package/build/dist/Server/Services/UserNotificationSettingService.js +9 -0
- package/build/dist/Server/Services/UserNotificationSettingService.js.map +1 -1
- package/build/dist/Server/Services/WhatsAppService.js +3 -0
- package/build/dist/Server/Services/WhatsAppService.js.map +1 -1
- package/build/dist/Server/Services/WorkspaceNotificationRuleService.js +25 -0
- package/build/dist/Server/Services/WorkspaceNotificationRuleService.js.map +1 -1
- package/build/dist/Server/Utils/AnalyticsDatabase/Statement.js +4 -2
- package/build/dist/Server/Utils/AnalyticsDatabase/Statement.js.map +1 -1
- package/build/dist/Server/Utils/WhatsAppTemplateUtil.js +8 -0
- package/build/dist/Server/Utils/WhatsAppTemplateUtil.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/ActionTypes.js +17 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/ActionTypes.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/AlertEpisode.js +545 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/AlertEpisode.js.map +1 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +13 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/Slack/Actions/ActionTypes.js +10 -0
- package/build/dist/Server/Utils/Workspace/Slack/Actions/ActionTypes.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/Slack/Actions/AlertEpisode.js +651 -0
- package/build/dist/Server/Utils/Workspace/Slack/Actions/AlertEpisode.js.map +1 -0
- package/build/dist/Server/Utils/Workspace/Slack/Messages/AlertEpisode.js +100 -0
- package/build/dist/Server/Utils/Workspace/Slack/Messages/AlertEpisode.js.map +1 -0
- package/build/dist/Server/Utils/Workspace/WorkspaceMessages/AlertEpisode.js +70 -0
- package/build/dist/Server/Utils/Workspace/WorkspaceMessages/AlertEpisode.js.map +1 -0
- package/build/dist/Tests/Server/Services/AlertEpisodeMemberService.test.js +165 -0
- package/build/dist/Tests/Server/Services/AlertEpisodeMemberService.test.js.map +1 -0
- package/build/dist/Tests/Server/Services/AlertEpisodeService.test.js +193 -0
- package/build/dist/Tests/Server/Services/AlertEpisodeService.test.js.map +1 -0
- package/build/dist/Tests/Server/Services/AlertGroupingEngineService.test.js +412 -0
- package/build/dist/Tests/Server/Services/AlertGroupingEngineService.test.js.map +1 -0
- package/build/dist/Tests/Server/Services/AlertGroupingRuleService.test.js +308 -0
- package/build/dist/Tests/Server/Services/AlertGroupingRuleService.test.js.map +1 -0
- package/build/dist/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.js +1 -1
- package/build/dist/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.js.map +1 -1
- package/build/dist/Tests/UI/Components/Input.test.js +1 -1
- package/build/dist/Tests/UI/Components/Input.test.js.map +1 -1
- package/build/dist/Tests/UI/Components/TextArea.test.js +2 -2
- package/build/dist/Tests/UI/Components/TextArea.test.js.map +1 -1
- package/build/dist/Types/BaseDatabase/SortOrder.js +5 -0
- package/build/dist/Types/BaseDatabase/SortOrder.js.map +1 -1
- package/build/dist/Types/Email/EmailTemplateType.js +4 -0
- package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
- package/build/dist/Types/NotificationRule/NotificationRuleType.js +1 -0
- package/build/dist/Types/NotificationRule/NotificationRuleType.js.map +1 -1
- package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js +5 -0
- package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js.map +1 -1
- package/build/dist/Types/Permission.js +264 -0
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/Types/UserNotification/UserNotificationEventType.js +1 -0
- package/build/dist/Types/UserNotification/UserNotificationEventType.js.map +1 -1
- package/build/dist/Types/WhatsApp/WhatsAppTemplates.js +12 -0
- package/build/dist/Types/WhatsApp/WhatsAppTemplates.js.map +1 -1
- package/build/dist/Types/Workspace/NotificationRules/EventType.js +1 -0
- package/build/dist/Types/Workspace/NotificationRules/EventType.js.map +1 -1
- package/build/dist/Types/Workspace/NotificationRules/NotificationRuleCondition.js +28 -3
- package/build/dist/Types/Workspace/NotificationRules/NotificationRuleCondition.js.map +1 -1
- package/build/dist/UI/Components/Accordion/Accordion.js +10 -3
- package/build/dist/UI/Components/Accordion/Accordion.js.map +1 -1
- package/build/dist/UI/Components/Alerts/Alert.js +1 -1
- package/build/dist/UI/Components/Alerts/Alert.js.map +1 -1
- package/build/dist/UI/Components/Button/Button.js +8 -2
- package/build/dist/UI/Components/Button/Button.js.map +1 -1
- package/build/dist/UI/Components/CardSelect/CardSelect.js +1 -1
- package/build/dist/UI/Components/CardSelect/CardSelect.js.map +1 -1
- package/build/dist/UI/Components/Checkbox/Checkbox.js +2 -2
- package/build/dist/UI/Components/Checkbox/Checkbox.js.map +1 -1
- package/build/dist/UI/Components/ColorCircle/ColorCircle.js +1 -1
- package/build/dist/UI/Components/ColorCircle/ColorCircle.js.map +1 -1
- package/build/dist/UI/Components/ColorViewer/ColorViewer.js +12 -3
- package/build/dist/UI/Components/ColorViewer/ColorViewer.js.map +1 -1
- package/build/dist/UI/Components/CopyableButton/CopyableButton.js +12 -5
- package/build/dist/UI/Components/CopyableButton/CopyableButton.js.map +1 -1
- package/build/dist/UI/Components/Detail/Detail.js +1 -1
- package/build/dist/UI/Components/Detail/Detail.js.map +1 -1
- package/build/dist/UI/Components/Dropdown/Dropdown.js +5 -3
- package/build/dist/UI/Components/Dropdown/Dropdown.js.map +1 -1
- package/build/dist/UI/Components/Forms/Fields/FormField.js +19 -1
- package/build/dist/UI/Components/Forms/Fields/FormField.js.map +1 -1
- package/build/dist/UI/Components/FullPageModal/FullPageModal.js +24 -5
- package/build/dist/UI/Components/FullPageModal/FullPageModal.js.map +1 -1
- package/build/dist/UI/Components/Input/Input.js +3 -3
- package/build/dist/UI/Components/Input/Input.js.map +1 -1
- package/build/dist/UI/Components/Link/Link.js +1 -1
- package/build/dist/UI/Components/Link/Link.js.map +1 -1
- package/build/dist/UI/Components/Loader/Loader.js +6 -4
- package/build/dist/UI/Components/Loader/Loader.js.map +1 -1
- package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js +56 -3
- package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js.map +1 -1
- package/build/dist/UI/Components/Modal/Modal.js +28 -3
- package/build/dist/UI/Components/Modal/Modal.js.map +1 -1
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js +23 -1
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
- package/build/dist/UI/Components/MoreMenu/MoreMenu.js +67 -6
- package/build/dist/UI/Components/MoreMenu/MoreMenu.js.map +1 -1
- package/build/dist/UI/Components/OrderedStatesList/OrderedStatesList.js +14 -3
- package/build/dist/UI/Components/OrderedStatesList/OrderedStatesList.js.map +1 -1
- package/build/dist/UI/Components/Pagination/Pagination.js +69 -13
- package/build/dist/UI/Components/Pagination/Pagination.js.map +1 -1
- package/build/dist/UI/Components/ProgressBar/ProgressBar.js +2 -2
- package/build/dist/UI/Components/ProgressBar/ProgressBar.js.map +1 -1
- package/build/dist/UI/Components/Radio/Radio.js +8 -5
- package/build/dist/UI/Components/Radio/Radio.js.map +1 -1
- package/build/dist/UI/Components/SideMenu/CountModelSideMenuItem.js +23 -4
- package/build/dist/UI/Components/SideMenu/CountModelSideMenuItem.js.map +1 -1
- package/build/dist/UI/Components/StatusBubble/StatusBubble.js +2 -2
- package/build/dist/UI/Components/StatusBubble/StatusBubble.js.map +1 -1
- package/build/dist/UI/Components/Table/TableHeader.js +12 -4
- package/build/dist/UI/Components/Table/TableHeader.js.map +1 -1
- package/build/dist/UI/Components/Tabs/Tab.js +8 -1
- package/build/dist/UI/Components/Tabs/Tab.js.map +1 -1
- package/build/dist/UI/Components/Tabs/Tabs.js +4 -3
- package/build/dist/UI/Components/Tabs/Tabs.js.map +1 -1
- package/build/dist/UI/Components/TextArea/TextArea.js +3 -3
- package/build/dist/UI/Components/TextArea/TextArea.js.map +1 -1
- package/build/dist/UI/Components/Toggle/Toggle.js +7 -4
- package/build/dist/UI/Components/Toggle/Toggle.js.map +1 -1
- package/build/dist/UI/Components/Tooltip/Tooltip.js +4 -1
- package/build/dist/UI/Components/Tooltip/Tooltip.js.map +1 -1
- package/build/dist/UI/Components/TopAlert/TopAlert.js +1 -1
- package/build/dist/UI/Components/TopAlert/TopAlert.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,383 @@
|
|
|
1
|
+
import AlertGroupingRule from "../../../Models/DatabaseModels/AlertGroupingRule";
|
|
2
|
+
import Monitor from "../../../Models/DatabaseModels/Monitor";
|
|
3
|
+
import AlertSeverity from "../../../Models/DatabaseModels/AlertSeverity";
|
|
4
|
+
import Label from "../../../Models/DatabaseModels/Label";
|
|
5
|
+
import Team from "../../../Models/DatabaseModels/Team";
|
|
6
|
+
import User from "../../../Models/DatabaseModels/User";
|
|
7
|
+
import OnCallDutyPolicy from "../../../Models/DatabaseModels/OnCallDutyPolicy";
|
|
8
|
+
import ObjectID from "../../../Types/ObjectID";
|
|
9
|
+
import { describe, expect, test, beforeEach } from "@jest/globals";
|
|
10
|
+
|
|
11
|
+
describe("AlertGroupingRule Model", () => {
|
|
12
|
+
let rule: AlertGroupingRule;
|
|
13
|
+
|
|
14
|
+
beforeEach(() => {
|
|
15
|
+
rule = new AlertGroupingRule();
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
describe("constructor", () => {
|
|
19
|
+
test("should create a new AlertGroupingRule instance", () => {
|
|
20
|
+
expect(rule).toBeInstanceOf(AlertGroupingRule);
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
test("should create AlertGroupingRule with an ID", () => {
|
|
24
|
+
const id: ObjectID = ObjectID.generate();
|
|
25
|
+
const ruleWithId: AlertGroupingRule = new AlertGroupingRule(id);
|
|
26
|
+
expect(ruleWithId.id).toEqual(id);
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
describe("Basic properties", () => {
|
|
31
|
+
test("should set and get name correctly", () => {
|
|
32
|
+
rule.name = "Critical Production Alerts";
|
|
33
|
+
expect(rule.name).toBe("Critical Production Alerts");
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
test("should set and get description correctly", () => {
|
|
37
|
+
rule.description = "Groups all critical alerts from production services";
|
|
38
|
+
expect(rule.description).toBe(
|
|
39
|
+
"Groups all critical alerts from production services",
|
|
40
|
+
);
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
test("should set and get priority correctly", () => {
|
|
44
|
+
rule.priority = 1;
|
|
45
|
+
expect(rule.priority).toBe(1);
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
test("should set and get isEnabled correctly", () => {
|
|
49
|
+
rule.isEnabled = true;
|
|
50
|
+
expect(rule.isEnabled).toBe(true);
|
|
51
|
+
|
|
52
|
+
rule.isEnabled = false;
|
|
53
|
+
expect(rule.isEnabled).toBe(false);
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
test("should set and get projectId correctly", () => {
|
|
57
|
+
const projectId: ObjectID = ObjectID.generate();
|
|
58
|
+
rule.projectId = projectId;
|
|
59
|
+
expect(rule.projectId).toEqual(projectId);
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
describe("Match Criteria", () => {
|
|
64
|
+
describe("Monitors", () => {
|
|
65
|
+
test("should set and get monitors correctly", () => {
|
|
66
|
+
const monitor1: Monitor = new Monitor();
|
|
67
|
+
monitor1._id = ObjectID.generate().toString();
|
|
68
|
+
const monitor2: Monitor = new Monitor();
|
|
69
|
+
monitor2._id = ObjectID.generate().toString();
|
|
70
|
+
|
|
71
|
+
rule.monitors = [monitor1, monitor2];
|
|
72
|
+
expect(rule.monitors).toHaveLength(2);
|
|
73
|
+
expect(rule.monitors).toContain(monitor1);
|
|
74
|
+
expect(rule.monitors).toContain(monitor2);
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
test("should handle empty monitors array", () => {
|
|
78
|
+
rule.monitors = [];
|
|
79
|
+
expect(rule.monitors).toHaveLength(0);
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
describe("Alert Severities", () => {
|
|
84
|
+
test("should set and get alertSeverities correctly", () => {
|
|
85
|
+
const severity: AlertSeverity = new AlertSeverity();
|
|
86
|
+
severity._id = ObjectID.generate().toString();
|
|
87
|
+
severity.name = "Critical";
|
|
88
|
+
|
|
89
|
+
rule.alertSeverities = [severity];
|
|
90
|
+
expect(rule.alertSeverities).toHaveLength(1);
|
|
91
|
+
expect(rule.alertSeverities![0]).toBe(severity);
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
describe("Labels", () => {
|
|
96
|
+
test("should set and get monitorLabels correctly", () => {
|
|
97
|
+
const label: Label = new Label();
|
|
98
|
+
label._id = ObjectID.generate().toString();
|
|
99
|
+
label.name = "production";
|
|
100
|
+
|
|
101
|
+
rule.monitorLabels = [label];
|
|
102
|
+
expect(rule.monitorLabels).toHaveLength(1);
|
|
103
|
+
expect(rule.monitorLabels![0]).toBe(label);
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
describe("Pattern Matching", () => {
|
|
108
|
+
test("should set and get alertTitlePattern correctly", () => {
|
|
109
|
+
rule.alertTitlePattern = "CPU.*High";
|
|
110
|
+
expect(rule.alertTitlePattern).toBe("CPU.*High");
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
test("should set and get alertDescriptionPattern correctly", () => {
|
|
114
|
+
rule.alertDescriptionPattern = "memory.*exceeded";
|
|
115
|
+
expect(rule.alertDescriptionPattern).toBe("memory.*exceeded");
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
test("should set and get monitorNamePattern correctly", () => {
|
|
119
|
+
rule.monitorNamePattern = "prod-.*-api";
|
|
120
|
+
expect(rule.monitorNamePattern).toBe("prod-.*-api");
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
test("should set and get monitorDescriptionPattern correctly", () => {
|
|
124
|
+
rule.monitorDescriptionPattern = ".*production.*";
|
|
125
|
+
expect(rule.monitorDescriptionPattern).toBe(".*production.*");
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
describe("Group By settings", () => {
|
|
131
|
+
test("should set and get groupByMonitor correctly", () => {
|
|
132
|
+
rule.groupByMonitor = true;
|
|
133
|
+
expect(rule.groupByMonitor).toBe(true);
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
test("should set and get groupBySeverity correctly", () => {
|
|
137
|
+
rule.groupBySeverity = true;
|
|
138
|
+
expect(rule.groupBySeverity).toBe(true);
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
test("should set and get groupByAlertTitle correctly", () => {
|
|
142
|
+
rule.groupByAlertTitle = true;
|
|
143
|
+
expect(rule.groupByAlertTitle).toBe(true);
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
test("should handle all groupBy options as false", () => {
|
|
147
|
+
rule.groupByMonitor = false;
|
|
148
|
+
rule.groupBySeverity = false;
|
|
149
|
+
rule.groupByAlertTitle = false;
|
|
150
|
+
|
|
151
|
+
expect(rule.groupByMonitor).toBe(false);
|
|
152
|
+
expect(rule.groupBySeverity).toBe(false);
|
|
153
|
+
expect(rule.groupByAlertTitle).toBe(false);
|
|
154
|
+
});
|
|
155
|
+
|
|
156
|
+
test("should handle combination of groupBy options", () => {
|
|
157
|
+
rule.groupByMonitor = true;
|
|
158
|
+
rule.groupBySeverity = true;
|
|
159
|
+
rule.groupByAlertTitle = false;
|
|
160
|
+
|
|
161
|
+
expect(rule.groupByMonitor).toBe(true);
|
|
162
|
+
expect(rule.groupBySeverity).toBe(true);
|
|
163
|
+
expect(rule.groupByAlertTitle).toBe(false);
|
|
164
|
+
});
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
describe("Time settings", () => {
|
|
168
|
+
test("should set and get enableTimeWindow correctly", () => {
|
|
169
|
+
rule.enableTimeWindow = true;
|
|
170
|
+
expect(rule.enableTimeWindow).toBe(true);
|
|
171
|
+
});
|
|
172
|
+
|
|
173
|
+
test("should set and get timeWindowMinutes correctly", () => {
|
|
174
|
+
rule.timeWindowMinutes = 30;
|
|
175
|
+
expect(rule.timeWindowMinutes).toBe(30);
|
|
176
|
+
});
|
|
177
|
+
|
|
178
|
+
test("should set and get enableReopenWindow correctly", () => {
|
|
179
|
+
rule.enableReopenWindow = true;
|
|
180
|
+
expect(rule.enableReopenWindow).toBe(true);
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
test("should set and get reopenWindowMinutes correctly", () => {
|
|
184
|
+
rule.reopenWindowMinutes = 60;
|
|
185
|
+
expect(rule.reopenWindowMinutes).toBe(60);
|
|
186
|
+
});
|
|
187
|
+
|
|
188
|
+
test("should set and get enableInactivityTimeout correctly", () => {
|
|
189
|
+
rule.enableInactivityTimeout = true;
|
|
190
|
+
expect(rule.enableInactivityTimeout).toBe(true);
|
|
191
|
+
});
|
|
192
|
+
|
|
193
|
+
test("should set and get inactivityTimeoutMinutes correctly", () => {
|
|
194
|
+
rule.inactivityTimeoutMinutes = 120;
|
|
195
|
+
expect(rule.inactivityTimeoutMinutes).toBe(120);
|
|
196
|
+
});
|
|
197
|
+
|
|
198
|
+
test("should set and get enableResolveDelay correctly", () => {
|
|
199
|
+
rule.enableResolveDelay = true;
|
|
200
|
+
expect(rule.enableResolveDelay).toBe(true);
|
|
201
|
+
});
|
|
202
|
+
|
|
203
|
+
test("should set and get resolveDelayMinutes correctly", () => {
|
|
204
|
+
rule.resolveDelayMinutes = 15;
|
|
205
|
+
expect(rule.resolveDelayMinutes).toBe(15);
|
|
206
|
+
});
|
|
207
|
+
});
|
|
208
|
+
|
|
209
|
+
describe("Episode Template settings", () => {
|
|
210
|
+
test("should set and get episodeTitleTemplate correctly", () => {
|
|
211
|
+
rule.episodeTitleTemplate = "{{alertSeverity}}: {{alertTitle}}";
|
|
212
|
+
expect(rule.episodeTitleTemplate).toBe(
|
|
213
|
+
"{{alertSeverity}}: {{alertTitle}}",
|
|
214
|
+
);
|
|
215
|
+
});
|
|
216
|
+
|
|
217
|
+
test("should set and get episodeDescriptionTemplate correctly", () => {
|
|
218
|
+
rule.episodeDescriptionTemplate =
|
|
219
|
+
"Episode with {{alertCount}} alerts from {{monitorName}}";
|
|
220
|
+
expect(rule.episodeDescriptionTemplate).toBe(
|
|
221
|
+
"Episode with {{alertCount}} alerts from {{monitorName}}",
|
|
222
|
+
);
|
|
223
|
+
});
|
|
224
|
+
|
|
225
|
+
test("should handle template with all supported variables", () => {
|
|
226
|
+
rule.episodeTitleTemplate =
|
|
227
|
+
"{{alertSeverity}} on {{monitorName}}: {{alertTitle}} ({{alertCount}})";
|
|
228
|
+
expect(rule.episodeTitleTemplate).toBe(
|
|
229
|
+
"{{alertSeverity}} on {{monitorName}}: {{alertTitle}} ({{alertCount}})",
|
|
230
|
+
);
|
|
231
|
+
});
|
|
232
|
+
});
|
|
233
|
+
|
|
234
|
+
describe("Ownership settings", () => {
|
|
235
|
+
test("should set and get defaultAssignToUser correctly", () => {
|
|
236
|
+
const user: User = new User();
|
|
237
|
+
user._id = ObjectID.generate().toString();
|
|
238
|
+
|
|
239
|
+
rule.defaultAssignToUser = user;
|
|
240
|
+
expect(rule.defaultAssignToUser).toBe(user);
|
|
241
|
+
});
|
|
242
|
+
|
|
243
|
+
test("should set and get defaultAssignToUserId correctly", () => {
|
|
244
|
+
const userId: ObjectID = ObjectID.generate();
|
|
245
|
+
rule.defaultAssignToUserId = userId;
|
|
246
|
+
expect(rule.defaultAssignToUserId).toEqual(userId);
|
|
247
|
+
});
|
|
248
|
+
|
|
249
|
+
test("should set and get defaultAssignToTeam correctly", () => {
|
|
250
|
+
const team: Team = new Team();
|
|
251
|
+
team._id = ObjectID.generate().toString();
|
|
252
|
+
|
|
253
|
+
rule.defaultAssignToTeam = team;
|
|
254
|
+
expect(rule.defaultAssignToTeam).toBe(team);
|
|
255
|
+
});
|
|
256
|
+
|
|
257
|
+
test("should set and get defaultAssignToTeamId correctly", () => {
|
|
258
|
+
const teamId: ObjectID = ObjectID.generate();
|
|
259
|
+
rule.defaultAssignToTeamId = teamId;
|
|
260
|
+
expect(rule.defaultAssignToTeamId).toEqual(teamId);
|
|
261
|
+
});
|
|
262
|
+
});
|
|
263
|
+
|
|
264
|
+
describe("On-Call Policy settings", () => {
|
|
265
|
+
test("should set and get onCallDutyPolicies correctly", () => {
|
|
266
|
+
const policy1: OnCallDutyPolicy = new OnCallDutyPolicy();
|
|
267
|
+
policy1._id = ObjectID.generate().toString();
|
|
268
|
+
const policy2: OnCallDutyPolicy = new OnCallDutyPolicy();
|
|
269
|
+
policy2._id = ObjectID.generate().toString();
|
|
270
|
+
|
|
271
|
+
rule.onCallDutyPolicies = [policy1, policy2];
|
|
272
|
+
expect(rule.onCallDutyPolicies).toHaveLength(2);
|
|
273
|
+
});
|
|
274
|
+
|
|
275
|
+
test("should handle empty onCallDutyPolicies array", () => {
|
|
276
|
+
rule.onCallDutyPolicies = [];
|
|
277
|
+
expect(rule.onCallDutyPolicies).toHaveLength(0);
|
|
278
|
+
});
|
|
279
|
+
});
|
|
280
|
+
|
|
281
|
+
describe("Full AlertGroupingRule", () => {
|
|
282
|
+
test("should handle complete rule configuration", () => {
|
|
283
|
+
const id: ObjectID = ObjectID.generate();
|
|
284
|
+
const projectId: ObjectID = ObjectID.generate();
|
|
285
|
+
const userId: ObjectID = ObjectID.generate();
|
|
286
|
+
const teamId: ObjectID = ObjectID.generate();
|
|
287
|
+
|
|
288
|
+
const fullRule: AlertGroupingRule = new AlertGroupingRule(id);
|
|
289
|
+
fullRule.projectId = projectId;
|
|
290
|
+
fullRule.name = "Production Critical Alerts";
|
|
291
|
+
fullRule.description = "Groups critical alerts from production";
|
|
292
|
+
fullRule.priority = 1;
|
|
293
|
+
fullRule.isEnabled = true;
|
|
294
|
+
|
|
295
|
+
// Match criteria
|
|
296
|
+
fullRule.alertTitlePattern = ".*critical.*";
|
|
297
|
+
fullRule.alertDescriptionPattern = ".*production.*";
|
|
298
|
+
|
|
299
|
+
// Group by
|
|
300
|
+
fullRule.groupByMonitor = true;
|
|
301
|
+
fullRule.groupBySeverity = true;
|
|
302
|
+
fullRule.groupByAlertTitle = false;
|
|
303
|
+
|
|
304
|
+
// Time settings
|
|
305
|
+
fullRule.enableTimeWindow = true;
|
|
306
|
+
fullRule.timeWindowMinutes = 30;
|
|
307
|
+
fullRule.enableReopenWindow = true;
|
|
308
|
+
fullRule.reopenWindowMinutes = 60;
|
|
309
|
+
fullRule.enableInactivityTimeout = true;
|
|
310
|
+
fullRule.inactivityTimeoutMinutes = 120;
|
|
311
|
+
fullRule.enableResolveDelay = true;
|
|
312
|
+
fullRule.resolveDelayMinutes = 15;
|
|
313
|
+
|
|
314
|
+
// Templates
|
|
315
|
+
fullRule.episodeTitleTemplate =
|
|
316
|
+
"{{alertSeverity}} Episode: {{alertTitle}}";
|
|
317
|
+
fullRule.episodeDescriptionTemplate = "{{alertCount}} related alerts";
|
|
318
|
+
|
|
319
|
+
// Ownership
|
|
320
|
+
fullRule.defaultAssignToUserId = userId;
|
|
321
|
+
fullRule.defaultAssignToTeamId = teamId;
|
|
322
|
+
|
|
323
|
+
// Verify all fields
|
|
324
|
+
expect(fullRule.id).toEqual(id);
|
|
325
|
+
expect(fullRule.projectId).toEqual(projectId);
|
|
326
|
+
expect(fullRule.name).toBe("Production Critical Alerts");
|
|
327
|
+
expect(fullRule.description).toBe(
|
|
328
|
+
"Groups critical alerts from production",
|
|
329
|
+
);
|
|
330
|
+
expect(fullRule.priority).toBe(1);
|
|
331
|
+
expect(fullRule.isEnabled).toBe(true);
|
|
332
|
+
expect(fullRule.alertTitlePattern).toBe(".*critical.*");
|
|
333
|
+
expect(fullRule.groupByMonitor).toBe(true);
|
|
334
|
+
expect(fullRule.groupBySeverity).toBe(true);
|
|
335
|
+
expect(fullRule.enableTimeWindow).toBe(true);
|
|
336
|
+
expect(fullRule.timeWindowMinutes).toBe(30);
|
|
337
|
+
expect(fullRule.episodeTitleTemplate).toBe(
|
|
338
|
+
"{{alertSeverity}} Episode: {{alertTitle}}",
|
|
339
|
+
);
|
|
340
|
+
expect(fullRule.defaultAssignToUserId).toEqual(userId);
|
|
341
|
+
});
|
|
342
|
+
|
|
343
|
+
test("should create rule with minimal configuration", () => {
|
|
344
|
+
const minRule: AlertGroupingRule = new AlertGroupingRule();
|
|
345
|
+
minRule.name = "Basic Rule";
|
|
346
|
+
minRule.priority = 10;
|
|
347
|
+
minRule.isEnabled = true;
|
|
348
|
+
|
|
349
|
+
expect(minRule.name).toBe("Basic Rule");
|
|
350
|
+
expect(minRule.priority).toBe(10);
|
|
351
|
+
expect(minRule.isEnabled).toBe(true);
|
|
352
|
+
|
|
353
|
+
// All other fields should be undefined or default
|
|
354
|
+
expect(minRule.monitors).toBeUndefined();
|
|
355
|
+
expect(minRule.alertSeverities).toBeUndefined();
|
|
356
|
+
expect(minRule.alertTitlePattern).toBeUndefined();
|
|
357
|
+
expect(minRule.groupByMonitor).toBeUndefined();
|
|
358
|
+
expect(minRule.episodeTitleTemplate).toBeUndefined();
|
|
359
|
+
});
|
|
360
|
+
});
|
|
361
|
+
|
|
362
|
+
describe("Priority ordering", () => {
|
|
363
|
+
test("should correctly compare priority values", () => {
|
|
364
|
+
const rule1: AlertGroupingRule = new AlertGroupingRule();
|
|
365
|
+
rule1.priority = 1;
|
|
366
|
+
|
|
367
|
+
const rule2: AlertGroupingRule = new AlertGroupingRule();
|
|
368
|
+
rule2.priority = 10;
|
|
369
|
+
|
|
370
|
+
const rule3: AlertGroupingRule = new AlertGroupingRule();
|
|
371
|
+
rule3.priority = 5;
|
|
372
|
+
|
|
373
|
+
const rules: AlertGroupingRule[] = [rule2, rule3, rule1];
|
|
374
|
+
rules.sort((a: AlertGroupingRule, b: AlertGroupingRule) => {
|
|
375
|
+
return (a.priority || 0) - (b.priority || 0);
|
|
376
|
+
});
|
|
377
|
+
|
|
378
|
+
expect(rules[0]!.priority).toBe(1);
|
|
379
|
+
expect(rules[1]!.priority).toBe(5);
|
|
380
|
+
expect(rules[2]!.priority).toBe(10);
|
|
381
|
+
});
|
|
382
|
+
});
|
|
383
|
+
});
|
|
@@ -283,7 +283,7 @@ describe("Input", () => {
|
|
|
283
283
|
|
|
284
284
|
render(<Input {...{ error }} />);
|
|
285
285
|
|
|
286
|
-
expect(screen.getByRole("icon")).toBeInTheDocument();
|
|
286
|
+
expect(screen.getByRole("icon", { hidden: true })).toBeInTheDocument();
|
|
287
287
|
});
|
|
288
288
|
|
|
289
289
|
test("sets error style if error exists", () => {
|
|
@@ -118,12 +118,12 @@ describe("TextArea", () => {
|
|
|
118
118
|
|
|
119
119
|
test("displays error icon", () => {
|
|
120
120
|
const { getByRole } = render(<TextArea error="error" initialValue="" />);
|
|
121
|
-
expect(getByRole("icon")).toBeInTheDocument();
|
|
121
|
+
expect(getByRole("icon", { hidden: true })).toBeInTheDocument();
|
|
122
122
|
});
|
|
123
123
|
|
|
124
124
|
test("does not display error icon without error", () => {
|
|
125
125
|
const { queryByRole } = render(<TextArea initialValue="" />);
|
|
126
|
-
expect(queryByRole("icon")).not.toBeInTheDocument();
|
|
126
|
+
expect(queryByRole("icon", { hidden: true })).not.toBeInTheDocument();
|
|
127
127
|
});
|
|
128
128
|
|
|
129
129
|
test("applies error styles", () => {
|
|
@@ -3,4 +3,13 @@ enum SortOrder {
|
|
|
3
3
|
Descending = "DESC",
|
|
4
4
|
}
|
|
5
5
|
|
|
6
|
+
// Maps SortOrder to ARIA sort values for accessibility
|
|
7
|
+
export const SortOrderToAriaSortMap: Record<
|
|
8
|
+
SortOrder,
|
|
9
|
+
"ascending" | "descending"
|
|
10
|
+
> = {
|
|
11
|
+
[SortOrder.Ascending]: "ascending",
|
|
12
|
+
[SortOrder.Descending]: "descending",
|
|
13
|
+
};
|
|
14
|
+
|
|
6
15
|
export default SortOrder;
|
|
@@ -42,6 +42,11 @@ enum EmailTemplateType {
|
|
|
42
42
|
AlertOwnerNotePosted = "AlertOwnerNotePosted.hbs",
|
|
43
43
|
AlertOwnerResourceCreated = "AlertOwnerResourceCreated.hbs",
|
|
44
44
|
|
|
45
|
+
AlertEpisodeOwnerAdded = "AlertEpisodeOwnerAdded.hbs",
|
|
46
|
+
AlertEpisodeOwnerStateChanged = "AlertEpisodeOwnerStateChanged.hbs",
|
|
47
|
+
AlertEpisodeOwnerNotePosted = "AlertEpisodeOwnerNotePosted.hbs",
|
|
48
|
+
AlertEpisodeOwnerResourceCreated = "AlertEpisodeOwnerResourceCreated.hbs",
|
|
49
|
+
|
|
45
50
|
ScheduledMaintenanceOwnerNotePosted = "ScheduledMaintenanceOwnerNotePosted.hbs",
|
|
46
51
|
ScheduledMaintenanceOwnerAdded = "ScheduledMaintenanceOwnerAdded.hbs",
|
|
47
52
|
ScheduledMaintenanceOwnerStateChanged = "ScheduledMaintenanceOwnerStateChanged.hbs",
|
|
@@ -12,6 +12,13 @@ enum NotificationSettingEventType {
|
|
|
12
12
|
SEND_ALERT_STATE_CHANGED_OWNER_NOTIFICATION = "Send alert state changed notification when I am the owner of the alert",
|
|
13
13
|
SEND_ALERT_OWNER_ADDED_NOTIFICATION = "Send notification when I am added as a owner to the alert",
|
|
14
14
|
|
|
15
|
+
// Alert Episodes
|
|
16
|
+
|
|
17
|
+
SEND_ALERT_EPISODE_CREATED_OWNER_NOTIFICATION = "Send alert episode created notification when I am the owner of the alert episode",
|
|
18
|
+
SEND_ALERT_EPISODE_NOTE_POSTED_OWNER_NOTIFICATION = "Send alert episode note posted notification when I am the owner of the alert episode",
|
|
19
|
+
SEND_ALERT_EPISODE_STATE_CHANGED_OWNER_NOTIFICATION = "Send alert episode state changed notification when I am the owner of the alert episode",
|
|
20
|
+
SEND_ALERT_EPISODE_OWNER_ADDED_NOTIFICATION = "Send notification when I am added as a owner to the alert episode",
|
|
21
|
+
|
|
15
22
|
// Monitors
|
|
16
23
|
SEND_MONITOR_OWNER_ADDED_NOTIFICATION = "Send notification when I am added as a owner to the monitor",
|
|
17
24
|
SEND_MONITOR_CREATED_OWNER_NOTIFICATION = "Send monitor created notification when I am the owner of the monitor",
|