Add Radar DC Telegram functionality and configuration
- Introduced new `RadarConfig` structure in `config.go` to manage radar settings, including `statuses_url`, `http_timeout_ms`, and `ping_from`. - Implemented validation for radar configuration in `config_test.go` to ensure correct URL schemes and timeout limits. - Added new API routes for radar statuses and ping functionality in the gateway, enhancing the service's capabilities. - Updated documentation in `GATEWAY_RUN.md` to include details about the new radar features and their usage. - Enhanced the user interface to include navigation and display options for the Radar DC section in the sidebar and page titles. - Added client-side API functions for fetching radar statuses and ping responses, improving integration with the frontend.
This commit is contained in:
@@ -114,3 +114,27 @@ func TestValidateAggregateCacheTTL(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidateRadarStatusesURL(t *testing.T) {
|
||||
c := &Config{
|
||||
Servers: []Server{{Alias: "a", BaseURL: "http://x:1"}},
|
||||
Radar: &RadarConfig{StatusesURL: "ftp://bad"},
|
||||
}
|
||||
if err := c.Validate(); err == nil {
|
||||
t.Fatal("expected error for invalid radar.statuses_url scheme")
|
||||
}
|
||||
c.Radar.StatusesURL = "https://radar.example/api"
|
||||
if err := c.Validate(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidateRadarHTTPTimeoutMs(t *testing.T) {
|
||||
c := &Config{
|
||||
Servers: []Server{{Alias: "a", BaseURL: "http://x:1"}},
|
||||
Radar: &RadarConfig{HTTPTimeoutMs: 600001},
|
||||
}
|
||||
if err := c.Validate(); err == nil {
|
||||
t.Fatal("expected error for radar.http_timeout_ms > 600000")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user