SemanticSearchPOC / usecases /replica /transport_test.go
KevinStephenson
Adding in weaviate code
b110593
raw
history blame
1.79 kB
// _ _
// __ _____ __ ___ ___ __ _| |_ ___
// \ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \
// \ V V / __/ (_| |\ V /| | (_| | || __/
// \_/\_/ \___|\__,_| \_/ |_|\__,_|\__\___|
//
// Copyright © 2016 - 2024 Weaviate B.V. All rights reserved.
//
// CONTACT: [email protected]
//
package replica
import (
"encoding/json"
"testing"
"time"
"github.com/pkg/errors"
"github.com/stretchr/testify/assert"
"golang.org/x/net/context"
)
func TestReplicationErrorTimeout(t *testing.T) {
ctx := context.Background()
ctx, cancel := context.WithDeadline(ctx, time.Now())
defer cancel()
err := &Error{Err: ctx.Err()}
assert.True(t, err.Timeout())
err = err.Clone()
assert.ErrorIs(t, err, context.DeadlineExceeded)
}
func TestReplicationErrorMarshal(t *testing.T) {
rawErr := Error{Code: StatusClassNotFound, Msg: "Article", Err: errors.New("error cannot be marshalled")}
bytes, err := json.Marshal(&rawErr)
assert.Nil(t, err)
got := NewError(0, "")
assert.Nil(t, json.Unmarshal(bytes, got))
want := &Error{Code: StatusClassNotFound, Msg: "Article"}
assert.Equal(t, want, got)
}
func TestReplicationErrorStatus(t *testing.T) {
tests := []struct {
code StatusCode
desc string
}{
{-1, ""},
{StatusOK, "ok"},
{StatusClassNotFound, "class not found"},
{StatusShardNotFound, "shard not found"},
{StatusNotFound, "not found"},
{StatusAlreadyExisted, "already existed"},
{StatusConflict, "conflict"},
{StatusPreconditionFailed, "precondition failed"},
{StatusReadOnly, "read only"},
}
for _, test := range tests {
got := statusText(test.code)
if got != test.desc {
t.Errorf("statusText(%d) want %v got %v", test.code, test.desc, got)
}
}
}