mirror of
https://github.com/henrygd/beszel.git
synced 2025-12-03 10:22:34 +00:00
76 lines
1.8 KiB
Go
76 lines
1.8 KiB
Go
//go:build testing
|
|
|
|
package ws
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/henrygd/beszel/internal/common"
|
|
"github.com/henrygd/beszel/internal/entities/systemd"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestSystemdInfoHandlerSuccess(t *testing.T) {
|
|
handler := &systemdInfoHandler{
|
|
result: &systemd.ServiceDetails{},
|
|
}
|
|
|
|
// Test successful handling with valid ServiceInfo
|
|
testDetails := systemd.ServiceDetails{
|
|
"Id": "nginx.service",
|
|
"ActiveState": "active",
|
|
"SubState": "running",
|
|
"Description": "A high performance web server",
|
|
"ExecMainPID": 1234,
|
|
"MemoryCurrent": 1024000,
|
|
}
|
|
|
|
response := common.AgentResponse{
|
|
ServiceInfo: testDetails,
|
|
}
|
|
|
|
err := handler.Handle(response)
|
|
assert.NoError(t, err)
|
|
assert.Equal(t, testDetails, *handler.result)
|
|
}
|
|
|
|
func TestSystemdInfoHandlerError(t *testing.T) {
|
|
handler := &systemdInfoHandler{
|
|
result: &systemd.ServiceDetails{},
|
|
}
|
|
|
|
// Test error handling when ServiceInfo is nil
|
|
response := common.AgentResponse{
|
|
ServiceInfo: nil,
|
|
Error: "service not found",
|
|
}
|
|
|
|
err := handler.Handle(response)
|
|
assert.Error(t, err)
|
|
assert.Equal(t, "no systemd info in response", err.Error())
|
|
}
|
|
|
|
func TestSystemdInfoHandlerEmptyResponse(t *testing.T) {
|
|
handler := &systemdInfoHandler{
|
|
result: &systemd.ServiceDetails{},
|
|
}
|
|
|
|
// Test with completely empty response
|
|
response := common.AgentResponse{}
|
|
|
|
err := handler.Handle(response)
|
|
assert.Error(t, err)
|
|
assert.Equal(t, "no systemd info in response", err.Error())
|
|
}
|
|
|
|
func TestSystemdInfoHandlerLegacyNotSupported(t *testing.T) {
|
|
handler := &systemdInfoHandler{
|
|
result: &systemd.ServiceDetails{},
|
|
}
|
|
|
|
// Test that legacy format is not supported
|
|
err := handler.HandleLegacy([]byte("some data"))
|
|
assert.Error(t, err)
|
|
assert.Equal(t, "legacy format not supported", err.Error())
|
|
}
|