MCPcopy
hub / github.com/henrygd/beszel / TestDeleteOldSystemdServiceRecords

Function TestDeleteOldSystemdServiceRecords

internal/records/records_test.go:354–428  ·  view source on GitHub ↗

TestDeleteOldSystemdServiceRecords tests systemd service cleanup via DeleteOldRecords

(t *testing.T)

Source from the content-addressed store, hash-verified

352
353// TestDeleteOldSystemdServiceRecords tests systemd service cleanup via DeleteOldRecords
354func TestDeleteOldSystemdServiceRecords(t *testing.T) {
355 hub, err := tests.NewTestHub(t.TempDir())
356 require.NoError(t, err)
357 defer hub.Cleanup()
358
359 rm := records.NewRecordManager(hub)
360
361 // Create test user and system
362 user, err := tests.CreateUser(hub, "test@example.com", "testtesttest")
363 require.NoError(t, err)
364
365 system, err := tests.CreateRecord(hub, "systems", map[string]any{
366 "name": "test-system",
367 "host": "localhost",
368 "port": "45876",
369 "status": "up",
370 "users": []string{user.Id},
371 })
372 require.NoError(t, err)
373
374 now := time.Now().UTC()
375
376 // Create old systemd service records that should be deleted (older than 20 minutes)
377 oldRecord, err := tests.CreateRecord(hub, "systemd_services", map[string]any{
378 "system": system.Id,
379 "name": "nginx.service",
380 "state": 0, // Active
381 "sub": 1, // Running
382 "cpu": 5.0,
383 "cpuPeak": 10.0,
384 "memory": 1024000,
385 "memPeak": 2048000,
386 })
387 require.NoError(t, err)
388 // Set updated time to 25 minutes ago (should be deleted)
389 oldRecord.SetRaw("updated", now.Add(-25*time.Minute).UnixMilli())
390 err = hub.SaveNoValidate(oldRecord)
391 require.NoError(t, err)
392
393 // Create recent systemd service record that should be kept (within 20 minutes)
394 recentRecord, err := tests.CreateRecord(hub, "systemd_services", map[string]any{
395 "system": system.Id,
396 "name": "apache.service",
397 "state": 1, // Inactive
398 "sub": 0, // Dead
399 "cpu": 2.0,
400 "cpuPeak": 3.0,
401 "memory": 512000,
402 "memPeak": 1024000,
403 })
404 require.NoError(t, err)
405 // Set updated time to 10 minutes ago (should be kept)
406 recentRecord.SetRaw("updated", now.Add(-10*time.Minute).UnixMilli())
407 err = hub.SaveNoValidate(recentRecord)
408 require.NoError(t, err)
409
410 // Count records before deletion
411 countBefore, err := hub.CountRecords("systemd_services")

Callers

nothing calls this directly

Calls 8

CleanupMethod · 0.95
DeleteOldRecordsMethod · 0.95
NewTestHubFunction · 0.92
NewRecordManagerFunction · 0.92
CreateUserFunction · 0.92
CreateRecordFunction · 0.92
LenMethod · 0.80
GetMethod · 0.45

Tested by

no test coverage detected