2021-04-30 21:06:33 +03:00
|
|
|
package tests
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"encoding/json"
|
|
|
|
|
"testing"
|
|
|
|
|
|
2023-01-19 10:03:14 +01:00
|
|
|
"github.com/grafana/grafana/pkg/services/live/model"
|
2021-04-30 21:06:33 +03:00
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
|
)
|
|
|
|
|
|
2022-05-24 05:04:03 -04:00
|
|
|
func TestIntegrationLiveMessage(t *testing.T) {
|
2022-06-10 11:46:21 -04:00
|
|
|
if testing.Short() {
|
|
|
|
|
t.Skip("skipping integration test")
|
|
|
|
|
}
|
2021-04-30 21:06:33 +03:00
|
|
|
storage := SetupTestStorage(t)
|
|
|
|
|
|
2023-01-19 10:03:14 +01:00
|
|
|
getQuery := &model.GetLiveMessageQuery{
|
2021-04-30 21:06:33 +03:00
|
|
|
OrgId: 1,
|
|
|
|
|
Channel: "test_channel",
|
|
|
|
|
}
|
|
|
|
|
_, ok, err := storage.GetLiveMessage(getQuery)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.False(t, ok)
|
|
|
|
|
|
2023-01-19 10:03:14 +01:00
|
|
|
saveQuery := &model.SaveLiveMessageQuery{
|
2021-04-30 21:06:33 +03:00
|
|
|
OrgId: 1,
|
|
|
|
|
Channel: "test_channel",
|
|
|
|
|
Data: []byte(`{}`),
|
|
|
|
|
}
|
|
|
|
|
err = storage.SaveLiveMessage(saveQuery)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
|
|
|
|
|
msg, ok, err := storage.GetLiveMessage(getQuery)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.True(t, ok)
|
|
|
|
|
require.Equal(t, int64(1), msg.OrgId)
|
|
|
|
|
require.Equal(t, "test_channel", msg.Channel)
|
|
|
|
|
require.Equal(t, json.RawMessage(`{}`), msg.Data)
|
|
|
|
|
require.NotZero(t, msg.Published)
|
|
|
|
|
|
|
|
|
|
// try saving again, should be replaced.
|
2023-01-19 10:03:14 +01:00
|
|
|
saveQuery2 := &model.SaveLiveMessageQuery{
|
2021-04-30 21:06:33 +03:00
|
|
|
OrgId: 1,
|
|
|
|
|
Channel: "test_channel",
|
|
|
|
|
Data: []byte(`{"input": "hello"}`),
|
|
|
|
|
}
|
|
|
|
|
err = storage.SaveLiveMessage(saveQuery2)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
|
2023-01-19 10:03:14 +01:00
|
|
|
getQuery2 := &model.GetLiveMessageQuery{
|
2021-04-30 21:06:33 +03:00
|
|
|
OrgId: 1,
|
|
|
|
|
Channel: "test_channel",
|
|
|
|
|
}
|
|
|
|
|
msg2, ok, err := storage.GetLiveMessage(getQuery2)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.True(t, ok)
|
|
|
|
|
require.Equal(t, int64(1), msg2.OrgId)
|
|
|
|
|
require.Equal(t, "test_channel", msg2.Channel)
|
|
|
|
|
require.Equal(t, json.RawMessage(`{"input": "hello"}`), msg2.Data)
|
|
|
|
|
require.NotZero(t, msg2.Published)
|
|
|
|
|
}
|