Something went wrong. Try again.
Monorepo for Tangled
Something went wrong. Try again.
Go
at sl/no-verify
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106package spindle
import ( "slices" "testing"
"github.com/bluesky-social/indigo/atproto/syntax" kgit "tangled.org/core/knotserver/git" "tangled.org/core/spindle/db")
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 TestSubscribedDids(t *testing.T) { d, e := newTestSpindleDB(t)
var ( member = syntax.DID("did:plc:member") owner = syntax.DID("did:plc:owner") collab = syntax.DID("did:plc:collab") repoDid = syntax.DID("did:plc:repo") repo2Did = syntax.DID("did:plc:repo2") )
// the repo owner is also a member, so the union has to dedupe for _, did := range []syntax.DID{member, owner} { if err := d.AllowMember(t.Context(), did); err != nil { t.Fatalf("AllowMember(%s): %v", did, err) } }
for _, r := range []syntax.DID{repoDid, repo2Did} { if err := d.UpsertRepo(db.Repo{ Knot: "knot.test", Owner: owner, Rkey: syntax.RecordKey("rkey-" + r.String()), RepoDid: r, }); err != nil { t.Fatalf("UpsertRepo(%s): %v", r, err) } if err := e.SetRepoOwner(owner, r); err != nil { t.Fatalf("SetRepoOwner(%s): %v", r, err) } } // a collaborator who is not a member - the case the members-only filter dropped if err := e.AddRepoCollaborator(collab, repoDid); err != nil { t.Fatalf("AddRepoCollaborator: %v", err) }
got, err := subscribedDids(d, e) if err != nil { t.Fatalf("subscribedDids: %v", err) }
want := []syntax.DID{collab, member, owner} // sorted and deduped if !slices.Equal(got, want) { t.Errorf("subscribedDids() = %v, want %v", got, want) }}