summaryrefslogtreecommitdiff
path: root/internal/apicircuit/apicircuit_test.go
diff options
context:
space:
mode:
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")
+ }
+}