Something went wrong. Try again.
Monorepo for Tangled tangled.org
Something went wrong. Try again.
Go
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263package pipeline
import ( "slices" "testing" "time"
"tangled.org/core/api/tangled" "tangled.org/core/spindle/models")
func TestFromTangledPreservesDeclaredDefinitionMetadata(t *testing.T) { target := "did:plc:target" source := "did:plc:source" raw := tangled.Pipeline{ TriggerMetadata: &tangled.Pipeline_TriggerMetadata{ Kind: "push", Repo: &tangled.Pipeline_TriggerRepo{RepoDid: &target}, SourceRepo: &source, Push: &tangled.Pipeline_PushTriggerData{NewSha: "1111111111111111111111111111111111111111", Ref: "refs/heads/main"}, }, Workflows: []*tangled.Pipeline_Workflow{{ Name: "ci.yml", Raw: `when: - event: [pull_request, push, custom.example.trigger]`, }}, } record, err := FromTangled(models.PipelineId("pipeline"), time.Unix(1, 0), raw) if err != nil { t.Fatal(err) } definition := record.Workflows[0].Definition wantTriggers := []string{TriggerNSIDPullRequest, TriggerNSIDPush, "custom.example.trigger"} if !slices.Equal(definition.Triggers, wantTriggers) { t.Fatalf("triggers = %v, want %v", definition.Triggers, wantTriggers) } if definition.Hash != nil { t.Fatalf("hash was invented: %q", *definition.Hash) } file := definition.Source.File if file == nil || file.Repo != source || file.Commit != record.Commit || file.Path != ".tangled/workflows/ci.yml" { t.Fatalf("file source = %+v", file) }}
func TestFromTangledDoesNotInferDefinitionTriggers(t *testing.T) { repo := "did:plc:repo" record, err := FromTangled(models.PipelineId("pipeline"), time.Now(), tangled.Pipeline{ TriggerMetadata: &tangled.Pipeline_TriggerMetadata{ Kind: "manual", Repo: &tangled.Pipeline_TriggerRepo{RepoDid: &repo}, Manual: &tangled.Pipeline_ManualTriggerData{Sha: "1111111111111111111111111111111111111111"}, }, Workflows: []*tangled.Pipeline_Workflow{{Name: "ci.yml", Raw: `engine: nixery`}}, }) if err != nil { t.Fatal(err) } triggers := record.Workflows[0].Definition.Triggers if triggers == nil || len(triggers) != 0 { t.Fatalf("implicit triggers = %#v", triggers) }}