Something went wrong. Try again.
Monorepo for Tangled tangled.org
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172package spindle
import ( "context" "errors" "testing" "time"
"tangled.org/core/spindle/models" pipelinecodec "tangled.org/core/spindle/pipeline" "tangled.org/core/spindle/xrpc" "tangled.org/core/workflow")
func (e *pushEnv) enqueue(t *testing.T) { t.Helper() repoDid := testRepoDid.String() actor := testBob.String() raw := workflow.PipelineSpec{ TriggerMetadata: &workflow.TriggerMetadata{ Kind: string(workflow.TriggerKindPush), Repo: &workflow.TriggerRepo{Knot: e.w.knotRef().Host, RepoDid: &repoDid, Did: testOwner.String()}, Push: &workflow.PushTriggerData{Ref: "refs/heads/main", OldSha: zeroSha, NewSha: testHexNew}, Actor: &actor, }, Workflows: []*workflow.WorkflowSpec{{Name: "ci.yml"}}, } record, err := pipelinecodec.FromTangled(models.PipelineId("late"), time.Now(), raw) if err != nil { t.Fatal(err) } // error ignored on purpose, the pipeline count is what matters _ = e.n.s.processPipeline(context.Background(), testRepoDid, raw, record, nil, false)}
func TestPauseThatLandsBeforeTheEnqueueStartsNothing(t *testing.T) { e := newClosedPushEnv(t, false, listOwner) e.disallow(t)
e.enqueue(t) e.wantPipelines(t, 0, "for an owner who was paused before the insert")}
func TestWipeThatLandsBeforeTheEnqueueLeavesNoOrphan(t *testing.T) { e := newPushEnv(t) if err := e.n.s.WipeRepo(context.Background(), testRepoDid, "test"); err != nil { t.Fatal(err) }
e.enqueue(t) e.wantPipelines(t, 0, "for a repo that was wiped before the insert") var jobs int if err := e.n.s.db.QueryRow("select count(*) from jobs where repo_did = ?", testRepoDid.String()).Scan(&jobs); err != nil || jobs != 0 { t.Fatalf("%d jobs for a wiped repo, err %v, want none", jobs, err) }}
func TestPausedManualTriggerRefusesBeforeAnyCheckout(t *testing.T) { e := newClosedPushEnv(t, false, listOwner) sha := e.repo.commit(t) e.disallow(t) fetches := e.w.gitFetches.Load()
_, err := e.n.s.TriggerManual(context.Background(), testBob, testRepoDid, sha, "", nil, nil) if !errors.Is(err, xrpc.ErrOwnerPaused) { t.Fatalf("err = %v, want ErrOwnerPaused", err) } if got := e.w.gitFetches.Load(); got != fetches { t.Fatalf("%d git fetches for a paused manual trigger, want none", got-fetches) }}