mirror of
https://github.com/henrygd/beszel.git
synced 2026-03-29 09:56:17 +02:00
62 lines
1.9 KiB
Go
62 lines
1.9 KiB
Go
package agent
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/henrygd/beszel/internal/common"
|
|
"github.com/henrygd/beszel/internal/entities/system"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestGatherStatsDoesNotAttachDetailsToCachedRequests(t *testing.T) {
|
|
agent := &Agent{
|
|
cache: NewSystemDataCache(),
|
|
systemDetails: system.Details{Hostname: "updated-host", Podman: true},
|
|
detailsDirty: true,
|
|
}
|
|
cached := &system.CombinedData{
|
|
Info: system.Info{Hostname: "cached-host"},
|
|
}
|
|
agent.cache.Set(cached, defaultDataCacheTimeMs)
|
|
|
|
response := agent.gatherStats(common.DataRequestOptions{CacheTimeMs: defaultDataCacheTimeMs})
|
|
|
|
assert.Same(t, cached, response)
|
|
assert.Nil(t, response.Details)
|
|
assert.True(t, agent.detailsDirty)
|
|
assert.Equal(t, "cached-host", response.Info.Hostname)
|
|
assert.Nil(t, cached.Details)
|
|
|
|
secondResponse := agent.gatherStats(common.DataRequestOptions{CacheTimeMs: defaultDataCacheTimeMs})
|
|
assert.Same(t, cached, secondResponse)
|
|
assert.Nil(t, secondResponse.Details)
|
|
}
|
|
|
|
func TestUpdateSystemDetailsMarksDetailsDirty(t *testing.T) {
|
|
agent := &Agent{}
|
|
|
|
agent.updateSystemDetails(func(details *system.Details) {
|
|
details.Hostname = "updated-host"
|
|
details.Podman = true
|
|
})
|
|
|
|
assert.True(t, agent.detailsDirty)
|
|
assert.Equal(t, "updated-host", agent.systemDetails.Hostname)
|
|
assert.True(t, agent.systemDetails.Podman)
|
|
|
|
original := &system.CombinedData{}
|
|
realTimeResponse := agent.attachSystemDetails(original, 1000, true)
|
|
assert.Same(t, original, realTimeResponse)
|
|
assert.Nil(t, realTimeResponse.Details)
|
|
assert.True(t, agent.detailsDirty)
|
|
|
|
response := agent.attachSystemDetails(original, defaultDataCacheTimeMs, false)
|
|
require.NotNil(t, response.Details)
|
|
assert.NotSame(t, original, response)
|
|
assert.Equal(t, "updated-host", response.Details.Hostname)
|
|
assert.True(t, response.Details.Podman)
|
|
assert.False(t, agent.detailsDirty)
|
|
assert.Nil(t, original.Details)
|
|
}
|