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)
err := sd.layout()
sd, err := newSequenceDiagram(obj.ChildrenArray, edges)
if err != nil {
return nil, err
}
err = sd.layout()
return sd, err
}

View file

@ -1,6 +1,7 @@
package d2sequence
import (
"errors"
"fmt"
"math"
"sort"
@ -64,7 +65,7 @@ func getEdgeEarliestLineNum(e *d2graph.Edge) int {
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 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{
messages: messages,
actors: actors,
@ -185,7 +190,7 @@ func newSequenceDiagram(objects []*d2graph.Object, messages []*d2graph.Edge) *se
sd.maxActorHeight += float64(*sd.root.LabelHeight)
}
return sd
return sd, nil
}
func (sd *sequenceDiagram) layout() error {

View file

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