package graph import ( "context" "testing" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "oss.terrastruct.com/d2/d2format" "oss.terrastruct.com/d2/d2renderers/d2svg" d2log "oss.terrastruct.com/d2/lib/log" "oss.terrastruct.com/util-go/go2" "edge-infra.dev/pkg/f8n/warehouse/oci" "edge-infra.dev/test/snapshot" ) func TestD2(t *testing.T) { t.Parallel() tcs := map[string]struct { a oci.Artifact depth int providerLabels bool }{ "shoot_0": {shoot, 0, false}, "shoot_1": {shoot, 1, false}, "shoot_2": {shoot, 2, false}, "shoot_3": {shoot, 3, false}, "shoot_0_provider_labels": {shoot, 0, true}, "shoot_1_provider_labels": {shoot, 1, true}, "shoot_2_provider_labels": {shoot, 2, true}, "shoot_3_provider_labels": {shoot, 3, true}, } for name, tc := range tcs { tc := tc t.Run(name, func(t *testing.T) { t.Parallel() g, err := buildGraph(tc.a, tc.depth) require.NoError(t, err) ctx := d2log.Named(d2log.WithTB(context.Background(), t, nil), "d2_test.logger") d2, err := g.toD2(ctx, tc.providerLabels) require.NoError(t, err) snapshot.Snap(t, d2format.Format(d2.g.AST)) _, err = d2svg.Render(d2.d, &d2svg.RenderOpts{ Pad: go2.Pointer(int64(d2svg.DEFAULT_PADDING)), }) assert.NoError(t, err, "produced graph couldnt be rendered") }) } }