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) }