TestDeleteOldAlertsHistoryEdgeCases tests edge cases for alerts history deletion
(t *testing.T)
| 302 | |
| 303 | // TestDeleteOldAlertsHistoryEdgeCases tests edge cases for alerts history deletion |
| 304 | func TestDeleteOldAlertsHistoryEdgeCases(t *testing.T) { |
| 305 | hub, err := tests.NewTestHub(t.TempDir()) |
| 306 | require.NoError(t, err) |
| 307 | defer hub.Cleanup() |
| 308 | |
| 309 | t.Run("No users with excessive alerts", func(t *testing.T) { |
| 310 | // Create user with few alerts |
| 311 | user, err := tests.CreateUser(hub, "few@example.com", "testtesttest") |
| 312 | require.NoError(t, err) |
| 313 | |
| 314 | system, err := tests.CreateRecord(hub, "systems", map[string]any{ |
| 315 | "name": "test-system", |
| 316 | "host": "localhost", |
| 317 | "port": "45876", |
| 318 | "status": "up", |
| 319 | "users": []string{user.Id}, |
| 320 | }) |
| 321 | |
| 322 | // Create only 5 alerts (well below threshold) |
| 323 | for i := range 5 { |
| 324 | _, err := tests.CreateRecord(hub, "alerts_history", map[string]any{ |
| 325 | "user": user.Id, |
| 326 | "name": "CPU", |
| 327 | "value": i + 1, |
| 328 | "system": system.Id, |
| 329 | }) |
| 330 | require.NoError(t, err) |
| 331 | } |
| 332 | |
| 333 | // Should not error and should not delete anything |
| 334 | err = records.DeleteOldAlertsHistory(hub, 10, 20) |
| 335 | require.NoError(t, err) |
| 336 | |
| 337 | count, err := hub.CountRecords("alerts_history") |
| 338 | require.NoError(t, err) |
| 339 | assert.Equal(t, int64(5), count, "All alerts should remain") |
| 340 | }) |
| 341 | |
| 342 | t.Run("Empty alerts_history table", func(t *testing.T) { |
| 343 | // Clear any existing alerts |
| 344 | _, err := hub.DB().NewQuery("DELETE FROM alerts_history").Execute() |
| 345 | require.NoError(t, err) |
| 346 | |
| 347 | // Should not error with empty table |
| 348 | err = records.DeleteOldAlertsHistory(hub, 10, 20) |
| 349 | require.NoError(t, err) |
| 350 | }) |
| 351 | } |
| 352 | |
| 353 | // TestDeleteOldSystemdServiceRecords tests systemd service cleanup via DeleteOldRecords |
| 354 | func TestDeleteOldSystemdServiceRecords(t *testing.T) { |
nothing calls this directly
no test coverage detected