File size: 2,605 Bytes
b110593
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
//                           _       _
// __      _____  __ ___   ___  __ _| |_ ___
// \ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \
//  \ V  V /  __/ (_| |\ V /| | (_| | ||  __/
//   \_/\_/ \___|\__,_| \_/ |_|\__,_|\__\___|
//
//  Copyright © 2016 - 2024 Weaviate B.V. All rights reserved.
//
//  CONTACT: [email protected]
//

package test

import (
	"os"
	"testing"

	"github.com/stretchr/testify/assert"
	"github.com/weaviate/weaviate/entities/models"
	"github.com/weaviate/weaviate/test/helper"
	graphqlhelper "github.com/weaviate/weaviate/test/helper/graphql"
	"github.com/weaviate/weaviate/test/helper/sample-schema/books"
)

func Test_SUMTransformers(t *testing.T) {
	helper.SetupClient(os.Getenv(weaviateEndpoint))
	tests := []struct {
		name  string
		class *models.Class
	}{
		{
			name:  "with module config for sum-transformers module",
			class: books.ClassContextionaryVectorizerWithSumTransformers(),
		},
		{
			name:  "without module config",
			class: books.ClassContextionaryVectorizer(),
		},
	}
	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {
			booksClass := tt.class
			helper.CreateClass(t, booksClass)
			defer helper.DeleteClass(t, booksClass.Class)

			t.Run("add data to Books schema", func(t *testing.T) {
				for _, book := range books.Objects() {
					helper.CreateObject(t, book)
					helper.AssertGetObjectEventually(t, book.Class, book.ID)
				}
			})

			t.Run("query Books data with nearText", func(t *testing.T) {
				result := graphqlhelper.AssertGraphQL(t, helper.RootAuth, `

					{

						Get {

							Books(where: {

								operator: Equal

								path:["title"]

								valueText: "Dune"

							}){

								title

								_additional {

									summary (properties:["description"]) {

										property

										result

									}

								}

							}

						}

					}

				`)
				books := result.Get("Get", "Books").AsSlice()
				expected := []interface{}{
					map[string]interface{}{
						"title": "Dune",
						"_additional": map[string]interface{}{
							"summary": []interface{}{
								map[string]interface{}{
									"property": "description",
									"result": "Dune is a 1965 epic science fiction novel by American author Frank Herbert." +
										"It is the first novel in the Dune series by Frank Herbert, and the first in the \"Dune\" series of books." +
										"It was published in the United States by Simon & Schuster in 1965.",
								},
							},
						},
					},
				}
				assert.ElementsMatch(t, expected, books)
			})
		})
	}
}