Implement NotifyOnStatusChange feature for nodes and enhance Telegram notifications
CI / Backend (build + test) (push) Successful in 1m24s
CI / Frontend (lint + typecheck + build) (push) Successful in 34s

- Added `NotifyOnStatusChange` property to the `Node` class and related DTOs to allow individual node configuration for status change notifications.
- Updated `NodeHealthCheckService` to send Telegram notifications to admins when a node's status changes, based on the new property.
- Enhanced the `ITelegramNotifier` interface with a method for notifying admins about node status changes.
- Modified the frontend to include a checkbox for `NotifyOnStatusChange` in the node editing dialog, allowing admins to easily configure this setting.
- Updated API documentation to reflect the new `notifyOnStatusChange` parameter in the node update endpoint.
- Added tests to ensure the correct behavior of the new feature and its integration with existing functionality.
This commit is contained in:
Leonid Pershin
2026-07-23 11:04:38 +03:00
parent 2f6bb26e97
commit fb97093bd6
20 changed files with 1272 additions and 6 deletions
@@ -97,6 +97,19 @@ public class NodeTests
Assert.True(node.IsEnabled);
}
[Fact]
public void SetNotifyOnStatusChange_DefaultsFalse_AndCanBeToggled()
{
var node = Node.Register("Node", new Uri("https://example.com"), Credentials, null);
Assert.False(node.NotifyOnStatusChange);
node.SetNotifyOnStatusChange(true);
Assert.True(node.NotifyOnStatusChange);
node.SetNotifyOnStatusChange(false);
Assert.False(node.NotifyOnStatusChange);
}
[Fact]
public void UpdateStatus_SetsStatus()
{