All checks were successful
Release / Scraper / Test (push) Successful in 10s
Release / UI / Build (push) Successful in 26s
Release / v2 / Build ui-v2 (push) Successful in 17s
Release / Scraper / Docker (push) Successful in 47s
Release / UI / Docker (push) Successful in 56s
CI / Scraper / Lint (pull_request) Successful in 7s
CI / Scraper / Test (pull_request) Successful in 8s
CI / UI / Build (pull_request) Successful in 16s
CI / Scraper / Docker Push (pull_request) Has been skipped
CI / UI / Docker Push (pull_request) Has been skipped
Release / v2 / Docker / ui-v2 (push) Successful in 56s
Release / v2 / Test backend (push) Successful in 4m35s
iOS CI / Build (pull_request) Successful in 4m28s
Release / v2 / Docker / backend (push) Successful in 1m29s
Release / v2 / Docker / runner (push) Successful in 1m39s
iOS CI / Test (pull_request) Successful in 9m51s
- backend/: Go API server and runner binaries with PocketBase + MinIO storage - ui-v2/: SvelteKit frontend rewrite - docker-compose-new.yml: compose file for the v2 stack - .gitea/workflows/release-v2.yaml: CI/CD for backend, runner, and ui-v2 Docker Hub images - scripts/pb-init.sh: migrate from wget to curl, add superuser bootstrap for fresh installs - .env.example: document DOCKER_BUILDKIT=1 for Colima users
58 lines
1.6 KiB
Go
58 lines
1.6 KiB
Go
package main
|
|
|
|
import (
|
|
"os"
|
|
"testing"
|
|
)
|
|
|
|
// TestBuildLogger verifies that buildLogger returns a non-nil logger for each
|
|
// supported log level string and for unknown values.
|
|
func TestBuildLogger(t *testing.T) {
|
|
for _, level := range []string{"debug", "info", "warn", "error", "unknown", ""} {
|
|
l := buildLogger(level)
|
|
if l == nil {
|
|
t.Errorf("buildLogger(%q) returned nil", level)
|
|
}
|
|
}
|
|
}
|
|
|
|
// TestNoopKokoro verifies that the no-op Kokoro stub returns the expected
|
|
// sentinel error from GenerateAudio and nil, nil from ListVoices.
|
|
func TestNoopKokoro(t *testing.T) {
|
|
noop := &noopKokoro{}
|
|
|
|
_, err := noop.GenerateAudio(t.Context(), "text", "af_bella")
|
|
if err == nil {
|
|
t.Fatal("noopKokoro.GenerateAudio: expected error, got nil")
|
|
}
|
|
|
|
voices, err := noop.ListVoices(t.Context())
|
|
if err != nil {
|
|
t.Fatalf("noopKokoro.ListVoices: unexpected error: %v", err)
|
|
}
|
|
if voices != nil {
|
|
t.Fatalf("noopKokoro.ListVoices: expected nil slice, got %v", voices)
|
|
}
|
|
}
|
|
|
|
// TestRunStorageUnreachable verifies that run() fails fast and returns a
|
|
// descriptive error when PocketBase is unreachable.
|
|
func TestRunStorageUnreachable(t *testing.T) {
|
|
// Point at an address nothing is listening on.
|
|
t.Setenv("POCKETBASE_URL", "http://127.0.0.1:19999")
|
|
// Use a fast listen address so we don't accidentally start a real server.
|
|
t.Setenv("BACKEND_HTTP_ADDR", "127.0.0.1:0")
|
|
|
|
err := run()
|
|
if err == nil {
|
|
t.Fatal("run() should have returned an error when storage is unreachable")
|
|
}
|
|
|
|
t.Logf("got expected error: %v", err)
|
|
}
|
|
|
|
// TestMain runs the test suite. No special setup required.
|
|
func TestMain(m *testing.M) {
|
|
os.Exit(m.Run())
|
|
}
|