summaryrefslogtreecommitdiff
path: root/internal/apicircuit/apicircuit_test.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-04-19 21:58:20 +0300
committerPaul Buetow <paul@buetow.org>2026-04-19 21:58:20 +0300
commitbaaa2a95b323296992bcce9c8cdc789c1c52d917 (patch)
treedbb2f8a231c1827cb571a1733abd5f7c66d31f4f /internal/apicircuit/apicircuit_test.go
parenta87e799634280e2b52a5fcacafc44cb28a0d288e (diff)
u4: add core infrastructure scaffolding
Diffstat (limited to 'internal/apicircuit/apicircuit_test.go')
-rw-r--r--internal/apicircuit/apicircuit_test.go40
1 files changed, 40 insertions, 0 deletions
diff --git a/internal/apicircuit/apicircuit_test.go b/internal/apicircuit/apicircuit_test.go
new file mode 100644
index 0000000..842a0f2
--- /dev/null
+++ b/internal/apicircuit/apicircuit_test.go
@@ -0,0 +1,40 @@
+package apicircuit
+
+import (
+ "context"
+ "errors"
+ "testing"
+)
+
+func TestGeminiTTS_Success(t *testing.T) {
+ t.Parallel()
+
+ v, err := GeminiTTS(func() (string, error) {
+ return "ok", nil
+ })
+ if err != nil || v != "ok" {
+ t.Fatalf("GeminiTTS() = %q, %v; want ok, nil", v, err)
+ }
+}
+
+func TestGeminiImage_Success(t *testing.T) {
+ t.Parallel()
+
+ v, err := GeminiImage(func() (int, error) {
+ return 42, nil
+ })
+ if err != nil || v != 42 {
+ t.Fatalf("GeminiImage() = %d, %v; want 42, nil", v, err)
+ }
+}
+
+func TestIsSuccessful_ContextCanceled(t *testing.T) {
+ t.Parallel()
+
+ if !isSuccessful(context.Canceled) {
+ t.Fatal("context.Canceled should not count as breaker failure")
+ }
+ if isSuccessful(errors.New("api error")) {
+ t.Fatal("arbitrary errors must count as failure")
+ }
+}