(chore) setup kmsvc-cli
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
package cli
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
kmsvc "forgejo.riotpiao.homelab.com/homelab/kmsvc-sdk"
|
||||
)
|
||||
|
||||
func TestRenderMessagesTable(t *testing.T) {
|
||||
var buf bytes.Buffer
|
||||
msgs := []kmsvc.Message{{MessageID: "m1", ReceiptHandle: "rh1", Body: []byte("hi"), ReceiveCount: 2}}
|
||||
|
||||
if err := renderMessages(&buf, "table", msgs); err != nil {
|
||||
t.Fatalf("renderMessages: %v", err)
|
||||
}
|
||||
|
||||
out := buf.String()
|
||||
if !strings.Contains(out, "MESSAGE_ID") || !strings.Contains(out, "m1") || !strings.Contains(out, "hi") {
|
||||
t.Errorf("table output missing expected content: %q", out)
|
||||
}
|
||||
}
|
||||
|
||||
func TestRenderMessagesJSON(t *testing.T) {
|
||||
var buf bytes.Buffer
|
||||
msgs := []kmsvc.Message{{MessageID: "m1", ReceiptHandle: "rh1", Body: []byte("hi")}}
|
||||
|
||||
if err := renderMessages(&buf, "json", msgs); err != nil {
|
||||
t.Fatalf("renderMessages: %v", err)
|
||||
}
|
||||
|
||||
var got []kmsvc.Message
|
||||
if err := json.Unmarshal(buf.Bytes(), &got); err != nil {
|
||||
t.Fatalf("unmarshal output: %v", err)
|
||||
}
|
||||
if len(got) != 1 || got[0].MessageID != "m1" {
|
||||
t.Errorf("unexpected decoded messages: %+v", got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestRenderBatchResultTable(t *testing.T) {
|
||||
var buf bytes.Buffer
|
||||
successful := []kmsvc.BatchResultEntry{{ID: "1", MessageID: "m1"}}
|
||||
failed := []kmsvc.BatchResultEntry{{ID: "2", Error: "boom"}}
|
||||
|
||||
if err := renderBatchResult(&buf, "table", successful, failed); err != nil {
|
||||
t.Fatalf("renderBatchResult: %v", err)
|
||||
}
|
||||
|
||||
out := buf.String()
|
||||
if !strings.Contains(out, "ok") || !strings.Contains(out, "boom") {
|
||||
t.Errorf("table output missing expected content: %q", out)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user