Something went wrong. Try again.
Monorepo for Tangled tangled.org
Something went wrong. Try again.
2.2 kB · 70 lines
Go
at next-dev
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071package org_tangled
import ( "encoding/json" "reflect" "strings" "testing"
lexutil "github.com/bluesky-social/indigo/lex/util")
func TestCiPipelineTriggerJSON(t *testing.T) { cases := []struct { name string trigger CiPipeline_Trigger typeID string }{ {"push", CiPipeline_Trigger{EventPush: &EventPush{}}, EventPushNSID}, {"pull_request", CiPipeline_Trigger{EventPullRequest: &EventPullRequest{}}, EventPullRequestNSID}, {"manual", CiPipeline_Trigger{CiTriggerManual: &CiTriggerManual{Repo: "did:plc:repo", Commit: strings.Repeat("1", 40)}}, CiTriggerManualNSID}, } for _, test := range cases { t.Run(test.name, func(t *testing.T) { encoded, err := json.Marshal(&test.trigger) if err != nil { t.Fatal(err) } if !strings.Contains(string(encoded), `"$type":"`+test.typeID+`"`) { t.Fatalf("trigger JSON = %s", encoded) } }) }}
func TestCiPipelineTriggerRoundTripsUnknownType(t *testing.T) { original := []byte(`{"$type":"org.tangled.event.future","detail":{"value":1}}`) var trigger CiPipeline_Trigger if err := json.Unmarshal(original, &trigger); err != nil { t.Fatal(err) } if trigger.EventPush != nil || trigger.EventPullRequest != nil || trigger.CiTriggerManual != nil || trigger.Unknown == nil { t.Fatalf("unknown trigger = %+v", trigger) } encoded, err := json.Marshal(&trigger) if err != nil { t.Fatal(err) } var originalValue, encodedValue any if err := json.Unmarshal(original, &originalValue); err != nil { t.Fatal(err) } if err := json.Unmarshal(encoded, &encodedValue); err != nil { t.Fatal(err) } if !reflect.DeepEqual(encodedValue, originalValue) { t.Fatalf("round trip = %s, want %s", encoded, original) }}
func TestCanonicalTriggerTypesAreRegistered(t *testing.T) { for _, typeID := range []string{EventPushNSID, EventPullRequestNSID, CiTriggerManualNSID} { var decoded lexutil.LexiconTypeDecoder if err := json.Unmarshal([]byte(`{"$type":"`+typeID+`","repo":"did:plc:repo","commit":"1111111111111111111111111111111111111111"}`), &decoded); err != nil { t.Fatalf("decode %s: %v", typeID, err) } if decoded.Val == nil { t.Fatalf("decode %s returned no value", typeID) } }}