test(quality): cover upsert validation and redis open branches

This commit is contained in:
phamnazage-jpg
2026-05-30 18:48:20 +08:00
parent d9216d5712
commit 9e32a24f8c
4 changed files with 142 additions and 0 deletions

View File

@@ -457,6 +457,44 @@ func TestRedisStickyStoreOpenRejectsAuthError(t *testing.T) {
}
}
func TestRedisStickyStoreOpenRejectsAuthUnexpectedResponse(t *testing.T) {
t.Parallel()
server := newScriptedRedisServer(t, func(conn net.Conn, reader *bufio.Reader) {
command, err := readRESPArray(reader)
if err != nil {
return
}
if len(command) > 0 && strings.ToUpper(command[0]) == "AUTH" {
_, _ = io.WriteString(conn, ":1\r\n")
}
})
defer server.Close()
store := &RedisStickyStore{cfg: RedisConfig{Addr: server.Addr(), Password: "secret"}}
_, _, err := store.open(context.Background())
if err == nil || !strings.Contains(err.Error(), "redis AUTH unexpected response") {
t.Fatalf("open() error = %v, want auth unexpected response", err)
}
}
func TestRedisStickyStoreOpenRejectsAuthReadFailure(t *testing.T) {
t.Parallel()
server := newScriptedRedisServer(t, func(conn net.Conn, reader *bufio.Reader) {
if _, err := readRESPArray(reader); err != nil {
return
}
})
defer server.Close()
store := &RedisStickyStore{cfg: RedisConfig{Addr: server.Addr(), Password: "secret"}}
_, _, err := store.open(context.Background())
if err == nil || !strings.Contains(err.Error(), "redis AUTH read") {
t.Fatalf("open() error = %v, want auth read failure", err)
}
}
func TestRedisStickyStoreOpenRejectsSelectUnexpectedResponse(t *testing.T) {
t.Parallel()
@@ -485,6 +523,30 @@ func TestRedisStickyStoreOpenRejectsSelectUnexpectedResponse(t *testing.T) {
}
}
func TestRedisStickyStoreOpenRejectsSelectReadFailure(t *testing.T) {
t.Parallel()
server := newScriptedRedisServer(t, func(conn net.Conn, reader *bufio.Reader) {
command, err := readRESPArray(reader)
if err != nil {
return
}
if len(command) > 0 && strings.ToUpper(command[0]) == "AUTH" {
_, _ = io.WriteString(conn, "+OK\r\n")
}
if _, err := readRESPArray(reader); err != nil {
return
}
})
defer server.Close()
store := &RedisStickyStore{cfg: RedisConfig{Addr: server.Addr(), Password: "secret", DB: 2}}
_, _, err := store.open(context.Background())
if err == nil || !strings.Contains(err.Error(), "redis SELECT read") {
t.Fatalf("open() error = %v, want select read failure", err)
}
}
func TestRedisStickyStoreGetJSONRejectsUnexpectedResponse(t *testing.T) {
t.Parallel()