grafana/pkg/tsdb/grafana-testdata-datasource/sims/engine_test.go

65 lines
1.3 KiB
Go

package sims
import (
"encoding/json"
"testing"
"github.com/stretchr/testify/require"
)
func TestCoreSimulationRegistry(t *testing.T) {
sims, err := NewSimulationEngine()
require.NoError(t, err)
v, err := sims.Lookup(simulationState{
Key: simulationKey{
Type: "flight",
TickHZ: 1,
},
Config: map[string]any{
"period": 100,
"radius": 0.05,
},
})
require.NoError(t, err)
cfg, err := json.MarshalIndent(v.GetState(), "", " ")
require.NoError(t, err)
require.JSONEq(t, `{
"key": {
"type": "flight",
"tick": 1
},
"config": {
"centerLat":37.83,
"centerLng":-122.42487,
"altitudeMax":400,
"altitudeMin":350,
"period":100,
"radius":0.05
}
}`, string(cfg))
path := v.GetState().Key.String()
found, err := sims.getSimFromPath("sim/" + path)
require.NoError(t, err)
require.Equal(t, v, found)
found, err = sims.getSimFromPath("/sim/" + path)
require.NoError(t, err)
require.Equal(t, v, found)
found, err = sims.getSimFromPath(path)
require.NoError(t, err)
require.Equal(t, v, found)
// In valid paths
_, err = sims.getSimFromPath("flight/1.00hz")
require.Error(t, err)
_, err = sims.getSimFromPath("flight/1")
require.Error(t, err)
_, err = sims.getSimFromPath("flight/1/")
require.Error(t, err)
}