...
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