check for no actors in sequence diagram

This commit is contained in:
Alexander Wang 2023-02-23 23:17:45 -08:00
parent 811be06d42
commit 25f6c84a3a
No known key found for this signature in database
GPG key ID: D89FA31966BDBECE
3 changed files with 13 additions and 4 deletions

View file

@ -106,8 +106,11 @@ func layoutSequenceDiagram(g *d2graph.Graph, obj *d2graph.Object) (*sequenceDiag
} }
} }
sd := newSequenceDiagram(obj.ChildrenArray, edges) sd, err := newSequenceDiagram(obj.ChildrenArray, edges)
err := sd.layout() if err != nil {
return nil, err
}
err = sd.layout()
return sd, err return sd, err
} }

View file

@ -1,6 +1,7 @@
package d2sequence package d2sequence
import ( import (
"errors"
"fmt" "fmt"
"math" "math"
"sort" "sort"
@ -64,7 +65,7 @@ func getEdgeEarliestLineNum(e *d2graph.Edge) int {
return min return min
} }
func newSequenceDiagram(objects []*d2graph.Object, messages []*d2graph.Edge) *sequenceDiagram { func newSequenceDiagram(objects []*d2graph.Object, messages []*d2graph.Edge) (*sequenceDiagram, error) {
var actors []*d2graph.Object var actors []*d2graph.Object
var groups []*d2graph.Object var groups []*d2graph.Object
@ -84,6 +85,10 @@ func newSequenceDiagram(objects []*d2graph.Object, messages []*d2graph.Edge) *se
} }
} }
if len(actors) == 0 {
return nil, errors.New("no actors declared in sequence diagram")
}
sd := &sequenceDiagram{ sd := &sequenceDiagram{
messages: messages, messages: messages,
actors: actors, actors: actors,
@ -185,7 +190,7 @@ func newSequenceDiagram(objects []*d2graph.Object, messages []*d2graph.Edge) *se
sd.maxActorHeight += float64(*sd.root.LabelHeight) sd.maxActorHeight += float64(*sd.root.LabelHeight)
} }
return sd return sd, nil
} }
func (sd *sequenceDiagram) layout() error { func (sd *sequenceDiagram) layout() error {

View file

@ -37,6 +37,7 @@ group.nested: {
a -> b a -> b
} }
`, `,
expErr: "no actors declared in sequence diagram",
}, },
{ {
name: "nested_steps", name: "nested_steps",