github.com/weaviate/weaviate@v1.24.6/modules/multi2vec-bind/clients/meta_test.go (about) 1 // _ _ 2 // __ _____ __ ___ ___ __ _| |_ ___ 3 // \ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \ 4 // \ V V / __/ (_| |\ V /| | (_| | || __/ 5 // \_/\_/ \___|\__,_| \_/ |_|\__,_|\__\___| 6 // 7 // Copyright © 2016 - 2024 Weaviate B.V. All rights reserved. 8 // 9 // CONTACT: hello@weaviate.io 10 // 11 12 package clients 13 14 import ( 15 "net/http" 16 "net/http/httptest" 17 "testing" 18 "time" 19 20 "github.com/stretchr/testify/assert" 21 ) 22 23 func TestGetMeta(t *testing.T) { 24 t.Run("when the server is providing meta", func(t *testing.T) { 25 server := httptest.NewServer(&testMetaHandler{t: t}) 26 defer server.Close() 27 c := New(server.URL, 0, nullLogger()) 28 meta, err := c.MetaInfo() 29 30 assert.Nil(t, err) 31 assert.NotNil(t, meta) 32 assert.NotNil(t, meta["model"] != nil) 33 assert.NotNil(t, meta["version"] != nil) 34 }) 35 } 36 37 type testMetaHandler struct { 38 t *testing.T 39 // the test handler will report as not ready before the time has passed 40 readyTime time.Time 41 } 42 43 func (f *testMetaHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { 44 assert.Equal(f.t, "/meta", r.URL.String()) 45 assert.Equal(f.t, http.MethodGet, r.Method) 46 47 if time.Since(f.readyTime) < 0 { 48 w.WriteHeader(http.StatusServiceUnavailable) 49 } 50 51 w.Write([]byte(f.metaInfo())) 52 } 53 54 func (f *testMetaHandler) metaInfo() string { 55 return `{ 56 "model": "ImageBindModel", 57 "version": 1 58 }` 59 }