github.com/weaviate/weaviate@v1.24.6/modules/generative-aws/clients/aws_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, "", 60*time.Second, nullLogger()) 28 meta, err := c.MetaInfo() 29 30 assert.Nil(t, err) 31 assert.NotNil(t, meta) 32 metaModel := meta["name"] 33 assert.True(t, metaModel != nil) 34 documentationHref := meta["documentationHref"] 35 assert.True(t, documentationHref != nil) 36 }) 37 } 38 39 type testMetaHandler struct { 40 t *testing.T 41 // the test handler will report as not ready before the time has passed 42 readyTime time.Time 43 } 44 45 func (f *testMetaHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { 46 assert.Equal(f.t, "/meta", r.URL.String()) 47 assert.Equal(f.t, http.MethodGet, r.Method) 48 49 if time.Since(f.readyTime) < 0 { 50 w.WriteHeader(http.StatusServiceUnavailable) 51 } 52 53 w.Write([]byte(f.metaInfo())) 54 } 55 56 func (f *testMetaHandler) metaInfo() string { 57 return `{ 58 "hostname": "http://127.0.0.1:8080", 59 "modules": { 60 "generative-aws": { 61 "documentationHref": "to be announced", 62 "name": "AWS Generative Module" 63 } 64 }, 65 "version": "1.16.0" 66 }` 67 }