Some checks failed
CI / build-and-test (push) Failing after -31m53s
* Implement maintenance page with task and log display * Add backfill and metadata retry functionality * Integrate grid component for project display in thoughts page * Update types for maintenance tasks and logs * Enhance sidebar and shell for new maintenance navigation
71 lines
2.0 KiB
Go
71 lines
2.0 KiB
Go
package tools
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"git.warky.dev/wdevs/amcs/internal/mcperrors"
|
|
"github.com/google/uuid"
|
|
)
|
|
|
|
func TestLearningsAddRequiresSummary(t *testing.T) {
|
|
tool := &LearningsTool{}
|
|
|
|
_, _, err := tool.Add(context.Background(), nil, AddLearningInput{})
|
|
if err == nil {
|
|
t.Fatal("Add() error = nil, want error")
|
|
}
|
|
|
|
_, data := requireRPCError(t, err)
|
|
if data.Field != "summary" {
|
|
t.Fatalf("Add() error field = %q, want %q", data.Field, "summary")
|
|
}
|
|
}
|
|
|
|
func TestLearningsMethodsRequireConfiguredStore(t *testing.T) {
|
|
tool := &LearningsTool{}
|
|
|
|
t.Run("add", func(t *testing.T) {
|
|
_, _, err := tool.Add(context.Background(), nil, AddLearningInput{Summary: "Keep this"})
|
|
if err == nil {
|
|
t.Fatal("Add() error = nil, want error")
|
|
}
|
|
_, data := requireRPCError(t, err)
|
|
if data.Type != mcperrors.TypeInvalidInput {
|
|
t.Fatalf("Add() data.type = %q, want %q", data.Type, mcperrors.TypeInvalidInput)
|
|
}
|
|
})
|
|
|
|
t.Run("get", func(t *testing.T) {
|
|
_, _, err := tool.Get(context.Background(), nil, GetLearningInput{ID: uuid.New()})
|
|
if err == nil {
|
|
t.Fatal("Get() error = nil, want error")
|
|
}
|
|
_, data := requireRPCError(t, err)
|
|
if data.Type != mcperrors.TypeInvalidInput {
|
|
t.Fatalf("Get() data.type = %q, want %q", data.Type, mcperrors.TypeInvalidInput)
|
|
}
|
|
})
|
|
|
|
t.Run("list", func(t *testing.T) {
|
|
_, _, err := tool.List(context.Background(), nil, ListLearningsInput{})
|
|
if err == nil {
|
|
t.Fatal("List() error = nil, want error")
|
|
}
|
|
_, data := requireRPCError(t, err)
|
|
if data.Type != mcperrors.TypeInvalidInput {
|
|
t.Fatalf("List() data.type = %q, want %q", data.Type, mcperrors.TypeInvalidInput)
|
|
}
|
|
})
|
|
}
|
|
|
|
func TestNormalizeStringSliceTrimsDedupesAndDropsEmpties(t *testing.T) {
|
|
got := normalizeStringSlice([]string{" alpha ", "beta", "", "beta", "alpha"})
|
|
if len(got) != 2 {
|
|
t.Fatalf("normalizeStringSlice() len = %d, want 2", len(got))
|
|
}
|
|
if got[0] != "alpha" || got[1] != "beta" {
|
|
t.Fatalf("normalizeStringSlice() = %#v, want [alpha beta]", got)
|
|
}
|
|
}
|