...

Source file src/edge-infra.dev/pkg/f8n/warehouse/lift/cmd/graph/d2_test.go

Documentation: edge-infra.dev/pkg/f8n/warehouse/lift/cmd/graph

     1  package graph
     2  
     3  import (
     4  	"context"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/assert"
     8  	"github.com/stretchr/testify/require"
     9  	"oss.terrastruct.com/d2/d2format"
    10  	"oss.terrastruct.com/d2/d2renderers/d2svg"
    11  	d2log "oss.terrastruct.com/d2/lib/log"
    12  	"oss.terrastruct.com/util-go/go2"
    13  
    14  	"edge-infra.dev/pkg/f8n/warehouse/oci"
    15  	"edge-infra.dev/test/snapshot"
    16  )
    17  
    18  func TestD2(t *testing.T) {
    19  	t.Parallel()
    20  
    21  	tcs := map[string]struct {
    22  		a              oci.Artifact
    23  		depth          int
    24  		providerLabels bool
    25  	}{
    26  		"shoot_0":                 {shoot, 0, false},
    27  		"shoot_1":                 {shoot, 1, false},
    28  		"shoot_2":                 {shoot, 2, false},
    29  		"shoot_3":                 {shoot, 3, false},
    30  		"shoot_0_provider_labels": {shoot, 0, true},
    31  		"shoot_1_provider_labels": {shoot, 1, true},
    32  		"shoot_2_provider_labels": {shoot, 2, true},
    33  		"shoot_3_provider_labels": {shoot, 3, true},
    34  	}
    35  
    36  	for name, tc := range tcs {
    37  		tc := tc
    38  		t.Run(name, func(t *testing.T) {
    39  			t.Parallel()
    40  
    41  			g, err := buildGraph(tc.a, tc.depth)
    42  			require.NoError(t, err)
    43  
    44  			ctx := d2log.Named(d2log.WithTB(context.Background(), t, nil), "d2_test.logger")
    45  			d2, err := g.toD2(ctx, tc.providerLabels)
    46  			require.NoError(t, err)
    47  
    48  			snapshot.Snap(t, d2format.Format(d2.g.AST))
    49  
    50  			_, err = d2svg.Render(d2.d, &d2svg.RenderOpts{
    51  				Pad: go2.Pointer(int64(d2svg.DEFAULT_PADDING)),
    52  			})
    53  			assert.NoError(t, err, "produced graph couldnt be rendered")
    54  		})
    55  	}
    56  }
    57  

View as plain text