37 lines
852 B
Go
37 lines
852 B
Go
package opensearchtest
|
|
|
|
import (
|
|
"encoding/json"
|
|
"testing"
|
|
"time"
|
|
|
|
opensearchgoAPI "github.com/opensearch-project/opensearch-go/v4/opensearchapi"
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/qsfera/server/pkg/conversions"
|
|
)
|
|
|
|
var TimeMustParse = func(t *testing.T, ts string) time.Time {
|
|
tp, err := time.Parse(time.RFC3339Nano, ts)
|
|
require.NoError(t, err, "failed to parse time %s", ts)
|
|
|
|
return tp
|
|
}
|
|
|
|
func JSONMustMarshal(t *testing.T, data any) string {
|
|
jsonData, err := json.Marshal(data)
|
|
require.NoError(t, err, "failed to marshal data to JSON")
|
|
return string(jsonData)
|
|
}
|
|
|
|
func SearchHitsMustBeConverted[T any](t *testing.T, hits []opensearchgoAPI.SearchHit) []T {
|
|
ts := make([]T, len(hits))
|
|
for i, hit := range hits {
|
|
resource, err := conversions.To[T](hit.Source)
|
|
require.NoError(t, err)
|
|
ts[i] = resource
|
|
}
|
|
|
|
return ts
|
|
}
|