Monorepo for Tangled
Something went wrong. Try again.
Go
at commit-links
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102package spindle
import ( "context" "net/http" "net/http/httptest" "path/filepath" "testing"
kgit "tangled.org/core/knotserver/git" "tangled.org/core/spindle/config" "tangled.org/core/spindle/db" "tangled.org/core/spindle/models")
func TestHasSkipCIPushOption(t *testing.T) { tests := []struct { name string pushOptions []string want bool }{ { name: "skip-ci requests skip", pushOptions: []string{"skip-ci"}, want: true, }, { name: "ci-skip requests skip", pushOptions: []string{"ci-skip"}, want: true, }, { name: "unrelated ci options do not skip", pushOptions: []string{"verbose-ci", "ci-verbose"}, want: false, }, { name: "empty options do not skip", pushOptions: []string{}, want: false, }, { name: "nil options do not skip", pushOptions: nil, want: false, }, { name: "mixed options skip when any skip option appears", pushOptions: []string{"verbose-ci", "skip-ci", "ci-verbose"}, want: true, }, }
for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { got := kgit.HasSkipCIPushOption(tt.pushOptions) if got != tt.want { t.Fatalf("hasSkipCIPushOption(%v) = %v, want %v", tt.pushOptions, got, tt.want) } }) }}
func TestExecutorRoleBuildsMinimalSpindle(t *testing.T) { ctx := context.Background() dbPath := filepath.Join(t.TempDir(), "spindle.db") d, err := db.Make(ctx, dbPath) if err != nil { t.Fatalf("db.Make() error = %v", err) }
cfg := &config.Config{Role: config.RoleExecutor} cfg.Server.DBPath = dbPath cfg.Server.Hostname = "executor.test" cfg.Server.Tap.Embed = true cfg.ArtifactStores.Disk.Dir = t.TempDir() cfg.Mill.ArtifactStore = "disk"
s, err := New(ctx, cfg, d, map[string]models.Engine{}) if err != nil { t.Fatalf("New() error = %v", err) }
if s.jc != nil || s.tap != nil || s.e != nil || s.ks != nil || s.res != nil || s.vault != nil { t.Fatal("executor role built coordinator-only spindle dependencies") }
rr := httptest.NewRecorder() req := httptest.NewRequest(http.MethodGet, "/", nil) s.Router().ServeHTTP(rr, req) if rr.Code != http.StatusOK { t.Fatalf("root status = %d, want %d", rr.Code, http.StatusOK) }
rr = httptest.NewRecorder() req = httptest.NewRequest(http.MethodGet, "/xrpc/_health", nil) s.Router().ServeHTTP(rr, req) if rr.Code != http.StatusNotFound { t.Fatalf("executor xrpc status = %d, want %d", rr.Code, http.StatusNotFound) }}