diff --git a/typesense/test/dbhelpers_test.go b/typesense/test/dbhelpers_test.go index f3d6a1c..e804718 100644 --- a/typesense/test/dbhelpers_test.go +++ b/typesense/test/dbhelpers_test.go @@ -155,6 +155,18 @@ func newDocumentResponse(docID string, opts ...newDocumentResponseOption) map[st return document } +func newStructResponse(docID string, opts ...func(*testDocument)) *testDocument { + document := &testDocument{} + document.ID = docID + document.CompanyName = "Stark Industries" + document.NumEmployees = 5215 + document.Country = "USA" + for _, opt := range opts { + opt(document) + } + return document +} + func newKeySchema() *api.ApiKeySchema { return &api.ApiKeySchema{ Description: "Search-only key.", diff --git a/typesense/test/document_test.go b/typesense/test/document_test.go index 7616328..2faaeba 100644 --- a/typesense/test/document_test.go +++ b/typesense/test/document_test.go @@ -8,8 +8,19 @@ import ( "testing" "github.com/stretchr/testify/require" + "github.com/typesense/typesense-go/typesense" ) +func TestDocumentRetrieveGeneric(t *testing.T) { + collectionName := createNewCollection(t, "companies") + expectedResult := newStructResponse("123") + createDocument(t, collectionName, newDocument("123")) + result, err := typesense.GenericCollection[*testDocument](typesenseClient, collectionName).Document("123").Retrieve(context.Background()) + + require.NoError(t, err) + require.Equal(t, expectedResult, result) +} + func TestDocumentRetrieve(t *testing.T) { collectionName := createNewCollection(t, "companies") expectedResult := newDocumentResponse("123")