mirror of
https://github.com/grafana/grafana.git
synced 2024-12-02 05:29:42 -06:00
77 lines
2.0 KiB
Go
77 lines
2.0 KiB
Go
package comments
|
|
|
|
import (
|
|
"context"
|
|
"strconv"
|
|
"testing"
|
|
|
|
"github.com/grafana/grafana/pkg/services/comments/commentmodel"
|
|
"github.com/grafana/grafana/pkg/services/sqlstore"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func createSqlStorage(t *testing.T) Storage {
|
|
t.Helper()
|
|
sqlStore := sqlstore.InitTestDB(t)
|
|
return &sqlStorage{
|
|
sql: sqlStore,
|
|
}
|
|
}
|
|
|
|
func TestSqlStorage(t *testing.T) {
|
|
s := createSqlStorage(t)
|
|
ctx := context.Background()
|
|
items, err := s.Get(ctx, 1, commentmodel.ObjectTypeOrg, "2", GetFilter{})
|
|
require.NoError(t, err)
|
|
require.Len(t, items, 0)
|
|
|
|
numComments := 10
|
|
|
|
for i := 0; i < numComments; i++ {
|
|
comment, err := s.Create(ctx, 1, commentmodel.ObjectTypeOrg, "2", 1, "test"+strconv.Itoa(i))
|
|
require.NoError(t, err)
|
|
require.NotNil(t, comment)
|
|
require.True(t, comment.Id > 0)
|
|
}
|
|
|
|
items, err = s.Get(ctx, 1, commentmodel.ObjectTypeOrg, "2", GetFilter{})
|
|
require.NoError(t, err)
|
|
require.Len(t, items, 10)
|
|
require.Equal(t, "test9", items[0].Content)
|
|
require.Equal(t, "test0", items[9].Content)
|
|
require.Equal(t, int64(1), items[0].UserId)
|
|
require.NotZero(t, items[0].Created)
|
|
require.NotZero(t, items[0].Updated)
|
|
|
|
// Same object, but another content type.
|
|
items, err = s.Get(ctx, 1, commentmodel.ObjectTypeDashboard, "2", GetFilter{})
|
|
require.NoError(t, err)
|
|
require.Len(t, items, 0)
|
|
|
|
// Now test filtering.
|
|
items, err = s.Get(ctx, 1, commentmodel.ObjectTypeOrg, "2", GetFilter{
|
|
Limit: 5,
|
|
})
|
|
require.NoError(t, err)
|
|
require.Len(t, items, 5)
|
|
require.Equal(t, "test9", items[0].Content)
|
|
require.Equal(t, "test5", items[4].Content)
|
|
|
|
items, err = s.Get(ctx, 1, commentmodel.ObjectTypeOrg, "2", GetFilter{
|
|
Limit: 5,
|
|
BeforeID: items[4].Id,
|
|
})
|
|
require.NoError(t, err)
|
|
require.Len(t, items, 5)
|
|
require.Equal(t, "test4", items[0].Content)
|
|
require.Equal(t, "test0", items[4].Content)
|
|
|
|
items, err = s.Get(ctx, 1, commentmodel.ObjectTypeOrg, "2", GetFilter{
|
|
Limit: 5,
|
|
BeforeID: items[4].Id,
|
|
})
|
|
require.NoError(t, err)
|
|
require.Len(t, items, 0)
|
|
}
|