mirror of
https://github.com/mermaid-js/mermaid.git
synced 2025-11-14 17:54:13 +01:00
fix : autonumber positioning for all types of arrows and central connections
This commit is contained in:
@@ -776,5 +776,834 @@ describe('Sequence Diagram Special Cases', () => {
|
||||
);
|
||||
});
|
||||
});
|
||||
describe('Sequence Diagram Rendering with Autonumber and All Arrow Types', () => {
|
||||
describe('Autonumber with All Arrow Types', () => {
|
||||
it('should render all arrow types with autonumbering', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
autonumber
|
||||
Alice->>Bob: Solid arrow (->>)
|
||||
Bob-->>Alice: Dotted arrow (-->>)
|
||||
Alice->Charlie: Solid open arrow (->)
|
||||
Charlie-->Dave: Dotted open arrow (-->)
|
||||
Alice-xBob: Solid cross (-x)
|
||||
Bob--xAlice: Dotted cross (--x)
|
||||
Alice-)Charlie: Solid point async (-)
|
||||
Charlie--)Dave: Dotted point async (--)
|
||||
Alice<<->>Bob: Bidirectional solid (<<->>)
|
||||
Charlie<<-->>Dave: Bidirectional dotted (<<-->>)
|
||||
Alice-|\\Bob: Solid top half (-|\\)
|
||||
Bob-|/Alice: Solid bottom half (-|/)
|
||||
Alice-\\\\Charlie: Stick top half (-\\\\)
|
||||
Charlie-//Dave: Stick bottom half (-//)
|
||||
Dave/|-Charlie: Solid top reverse (/|-)
|
||||
Charlie\\|-Bob: Solid bottom reverse (\\|-)
|
||||
Bob//-Alice: Stick top reverse (//-)
|
||||
Alice\\\\-Bob: Stick bottom reverse (\\\\-)
|
||||
Alice--|\\Bob: Dotted solid top (--|\\)
|
||||
Bob--|/Alice: Dotted solid bottom (--|/)
|
||||
Alice--\\\\Charlie: Dotted stick top (--\\\\)
|
||||
Charlie--//Dave: Dotted stick bottom (--//)
|
||||
Dave/|--Charlie: Dotted solid top reverse (/|--)
|
||||
Charlie\\|--Bob: Dotted solid bottom reverse (\\|--)
|
||||
Bob//--Alice: Dotted stick top reverse (//--)
|
||||
Alice\\\\--Bob: Dotted stick bottom reverse (\\\\--)
|
||||
Alice->>()Bob: Solid with central connection
|
||||
Bob()-->>Alice: Dotted with reverse central
|
||||
Alice()->>()Charlie: Dual central connections`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
|
||||
it('should render all arrow types with autonumbering - left to right only', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
autonumber
|
||||
Alice->>Bob: Solid arrow (->>)
|
||||
Alice-->>Bob: Dotted arrow (-->>)
|
||||
Alice->Bob: Solid open arrow (->)
|
||||
Alice-->Bob: Dotted open arrow (-->)
|
||||
Alice-xBob: Solid cross (-x)
|
||||
Alice--xBob: Dotted cross (--x)
|
||||
Alice-)Bob: Solid point async (-)
|
||||
Alice--)Bob: Dotted point async (--)
|
||||
Alice<<->>Bob: Bidirectional solid (<<->>)
|
||||
Alice<<-->>Bob: Bidirectional dotted (<<-->>)
|
||||
Alice-|\\Bob: Solid top half (-|\\)
|
||||
Alice-|/Bob: Solid bottom half (-|/)
|
||||
Alice-\\\\Bob: Stick top half (-\\\\)
|
||||
Alice-//Bob: Stick bottom half (-//)
|
||||
Bob/|-Alice: Solid top reverse (/|-)
|
||||
Bob\\|-Alice: Solid bottom reverse (\\|-)
|
||||
Bob//-Alice: Stick top reverse (//-)
|
||||
Bob\\\\-Alice: Stick bottom reverse (\\\\-)
|
||||
Alice--|\\Bob: Dotted solid top (--|\\)
|
||||
Alice--|/Bob: Dotted solid bottom (--|/)
|
||||
Alice--\\\\Bob: Dotted stick top (--\\\\)
|
||||
Alice--//Bob: Dotted stick bottom (--//)
|
||||
Bob/|--Alice: Dotted solid top reverse (/|--)
|
||||
Bob\\|--Alice: Dotted solid bottom reverse (\\|--)
|
||||
Bob//--Alice: Dotted stick top reverse (//--)
|
||||
Bob\\\\--Alice: Dotted stick bottom reverse (\\\\--)
|
||||
Alice->>()Bob: Solid with central connection
|
||||
Alice()-->>Bob: Dotted with reverse central
|
||||
Alice()->>()Bob: Dual central connections`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
|
||||
it('should render central connections with autonumbering', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
autonumber
|
||||
participant Alice
|
||||
participant Bob
|
||||
participant Charlie
|
||||
Alice->>()Bob: Central connection at destination
|
||||
Bob()->>Alice: Reverse central at source
|
||||
Alice()->>()Bob: Dual central connections
|
||||
Bob->>()Charlie: Another central connection
|
||||
Charlie()-->>Alice: Reverse central dotted
|
||||
Alice()<<-->>()Bob: Dual central bidirectional`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
|
||||
it('should render bidirectional arrows with autonumbering', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
autonumber
|
||||
participant Alice
|
||||
participant Bob
|
||||
participant Charlie
|
||||
Alice<<->>Bob: Bidirectional solid left to right
|
||||
Bob<<->>Alice: Bidirectional solid right to left
|
||||
Alice<<-->>Charlie: Bidirectional dotted left to right
|
||||
Charlie<<-->>Alice: Bidirectional dotted right to left
|
||||
Bob<<->>Charlie: Bidirectional solid
|
||||
Charlie<<-->>Bob: Bidirectional dotted`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
|
||||
it('should render reverse arrows with autonumbering', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
autonumber
|
||||
participant Alice
|
||||
participant Bob
|
||||
participant Charlie
|
||||
Bob/|-Alice: Solid top reverse left to right
|
||||
Alice/|-Bob: Solid top reverse right to left
|
||||
Bob\\|-Alice: Solid bottom reverse left to right
|
||||
Alice\\|-Bob: Solid bottom reverse right to left
|
||||
Bob//-Alice: Stick top reverse left to right
|
||||
Alice//-Bob: Stick top reverse right to left
|
||||
Bob\\\\-Alice: Stick bottom reverse left to right
|
||||
Alice\\\\-Bob: Stick bottom reverse right to left
|
||||
Bob/|--Alice: Dotted solid top reverse
|
||||
Alice\\|--Bob: Dotted solid bottom reverse
|
||||
Bob//--Alice: Dotted stick top reverse
|
||||
Alice\\\\--Bob: Dotted stick bottom reverse`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Central Connections with Autonumber - Comprehensive Coverage', () => {
|
||||
it('should render CENTRAL_CONNECTION with normal arrows - left to right', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
autonumber
|
||||
participant Alice
|
||||
participant Bob
|
||||
participant Charlie
|
||||
Alice->>()Bob: Solid arrow with circle at destination
|
||||
Alice-->>()Bob: Dotted arrow with circle at destination
|
||||
Alice->()Bob: Open arrow with circle at destination
|
||||
Alice--x()Bob: Cross arrow with circle at destination
|
||||
Alice--)()Bob: Close arrow with circle at destination`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
|
||||
it('should render CENTRAL_CONNECTION with normal arrows - right to left', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
autonumber
|
||||
participant Alice
|
||||
participant Bob
|
||||
participant Charlie
|
||||
Bob->>()Alice: Solid arrow with circle at destination (RTL)
|
||||
Charlie-->>()Bob: Dotted arrow with circle at destination (RTL)
|
||||
Bob->()Alice: Open arrow with circle at destination (RTL)
|
||||
Charlie--x()Alice: Cross arrow with circle at destination (RTL)
|
||||
Bob--)()Alice: Close arrow with circle at destination (RTL)`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
|
||||
it('should render CENTRAL_CONNECTION with reverse arrows - left to right', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
autonumber
|
||||
participant Alice
|
||||
participant Bob
|
||||
participant Charlie
|
||||
Bob/|-()Alice: Solid top reverse with circle (LTR)
|
||||
Bob\\|-()Alice: Solid bottom reverse with circle (LTR)
|
||||
Bob//-()Alice: Stick top reverse with circle (LTR)
|
||||
Bob\\\\-()Alice: Stick bottom reverse with circle (LTR)
|
||||
Bob/|--()Alice: Dotted solid top reverse with circle (LTR)
|
||||
Bob\\|--()Alice: Dotted solid bottom reverse with circle (LTR)
|
||||
Bob//--()Alice: Dotted stick top reverse with circle (LTR)
|
||||
Bob\\\\--()Alice: Dotted stick bottom reverse with circle (LTR)`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
|
||||
it('should render CENTRAL_CONNECTION with reverse arrows - right to left', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
autonumber
|
||||
participant Alice
|
||||
participant Bob
|
||||
participant Charlie
|
||||
Alice/|-()Bob: Solid top reverse with circle (RTL)
|
||||
Alice\\|-()Bob: Solid bottom reverse with circle (RTL)
|
||||
Alice//-()Bob: Stick top reverse with circle (RTL)
|
||||
Alice\\\\-()Bob: Stick bottom reverse with circle (RTL)
|
||||
Alice/|--()Bob: Dotted solid top reverse with circle (RTL)
|
||||
Alice\\|--()Bob: Dotted solid bottom reverse with circle (RTL)
|
||||
Alice//--()Bob: Dotted stick top reverse with circle (RTL)
|
||||
Alice\\\\--()Bob: Dotted stick bottom reverse with circle (RTL)`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
|
||||
it('should render Central_Connection_REVERSE ()->> normal LTR', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
autonumber
|
||||
participant Alice
|
||||
participant Bob
|
||||
participant Charlie
|
||||
Alice()->>Bob: Circle at source with solid arrow
|
||||
Alice()-->>Bob: Circle at source with dotted arrow
|
||||
Alice()->Bob: Circle at source with open arrow
|
||||
Alice()--xBob: Circle at source with cross arrow
|
||||
Alice()--)Bob: Circle at source with close arrow`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
|
||||
it('should render Central_Connection_REVERSE ()->> normal RTL', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
autonumber
|
||||
participant Alice
|
||||
participant Bob
|
||||
participant Charlie
|
||||
Bob()->>Alice: Circle at source with solid arrow (RTL)
|
||||
Charlie()-->>Bob: Circle at source with dotted arrow (RTL)
|
||||
Bob()->Alice: Circle at source with open arrow (RTL)
|
||||
Charlie()--xAlice: Circle at source with cross arrow (RTL)
|
||||
Bob()--)Alice: Circle at source with close arrow (RTL)`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
|
||||
it('should render Central_Connection_REVERSE ()->> reverse LTR', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
autonumber
|
||||
participant Alice
|
||||
participant Bob
|
||||
participant Charlie
|
||||
Bob()/|-Alice: Circle at source with solid top reverse (LTR)
|
||||
Bob()\\|-Alice: Circle at source with solid bottom reverse (LTR)
|
||||
Bob()//-Alice: Circle at source with stick top reverse (LTR)
|
||||
Bob()\\\\-Alice: Circle at source with stick bottom reverse (LTR)
|
||||
Bob()/|--Alice: Circle at source with dotted solid top reverse (LTR)
|
||||
Bob()\\|--Alice: Circle at source with dotted solid bottom reverse (LTR)
|
||||
Bob()//--Alice: Circle at source with dotted stick top reverse (LTR)
|
||||
Bob()\\\\--Alice: Circle at source with dotted stick bottom reverse (LTR)`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
|
||||
it('should render Central_Connection_REVERSE ()->> reverse RTL', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
autonumber
|
||||
participant Alice
|
||||
participant Bob
|
||||
participant Charlie
|
||||
Alice()/|-Bob: Circle at source with solid top reverse (RTL)
|
||||
Alice()\\|-Bob: Circle at source with solid bottom reverse (RTL)
|
||||
Alice()//-Bob: Circle at source with stick top reverse (RTL)
|
||||
Alice()\\\\-Bob: Circle at source with stick bottom reverse (RTL)
|
||||
Alice()/|--Bob: Circle at source with dotted solid top reverse (RTL)
|
||||
Alice()\\|--Bob: Circle at source with dotted solid bottom reverse (RTL)
|
||||
Alice()//--Bob: Circle at source with dotted stick top reverse (RTL)
|
||||
Alice()\\\\--Bob: Circle at source with dotted stick bottom reverse (RTL)`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
|
||||
it('should render Central_Connection_DUAL ()->>() normal LTR', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
autonumber
|
||||
participant Alice
|
||||
participant Bob
|
||||
participant Charlie
|
||||
Alice()->>()Bob: Circles at both ends with solid arrow
|
||||
Alice()-->>()Bob: Circles at both ends with dotted arrow
|
||||
Alice()->()Bob: Circles at both ends with open arrow
|
||||
Alice()--x()Bob: Circles at both ends with cross arrow
|
||||
Alice()--)()Bob: Circles at both ends with close arrow`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
|
||||
it('should render Central_Connection_DUAL ()->>() normal RTL', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
autonumber
|
||||
participant Alice
|
||||
participant Bob
|
||||
participant Charlie
|
||||
Bob()->>()Alice: Circles at both ends with solid arrow (RTL)
|
||||
Charlie()-->>()Bob: Circles at both ends with dotted arrow (RTL)
|
||||
Bob()->()Alice: Circles at both ends with open arrow (RTL)
|
||||
Charlie()--x()Alice: Circles at both ends with cross arrow (RTL)
|
||||
Bob()--)()Alice: Circles at both ends with close arrow (RTL)`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
|
||||
it('should render Central_Connection_DUAL ()->>() reverse LTR', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
autonumber
|
||||
participant Alice
|
||||
participant Bob
|
||||
participant Charlie
|
||||
Bob()/|-()Alice: Circles at both ends with solid top reverse (LTR)
|
||||
Bob()\\|-()Alice: Circles at both ends with solid bottom reverse (LTR)
|
||||
Bob()//-()Alice: Circles at both ends with stick top reverse (LTR)
|
||||
Bob()\\\\-()Alice: Circles at both ends with stick bottom reverse (LTR)
|
||||
Bob()/|--()Alice: Circles at both ends with dotted solid top reverse (LTR)
|
||||
Bob()\\|--()Alice: Circles at both ends with dotted solid bottom reverse (LTR)
|
||||
Bob()//--()Alice: Circles at both ends with dotted stick top reverse (LTR)
|
||||
Bob()\\\\--()Alice: Circles at both ends with dotted stick bottom reverse (LTR)`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
|
||||
it('should render Central_Connection_DUAL ()->>() reverse RTL', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
autonumber
|
||||
participant Alice
|
||||
participant Bob
|
||||
participant Charlie
|
||||
Alice()/|-()Bob: Circles at both ends with solid top reverse (RTL)
|
||||
Alice()\\|-()Bob: Circles at both ends with solid bottom reverse (RTL)
|
||||
Alice()//-()Bob: Circles at both ends with stick top reverse (RTL)
|
||||
Alice()\\\\-()Bob: Circles at both ends with stick bottom reverse (RTL)
|
||||
Alice()/|--()Bob: Circles at both ends with dotted solid top reverse (RTL)
|
||||
Alice()\\|--()Bob: Circles at both ends with dotted solid bottom reverse (RTL)
|
||||
Alice()//--()Bob: Circles at both ends with dotted stick top reverse (RTL)
|
||||
Alice()\\\\--()Bob: Circles at both ends with dotted stick bottom reverse (RTL)`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
|
||||
it('should render mixed central connections with autonumber', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
autonumber
|
||||
participant Alice
|
||||
participant Bob
|
||||
participant Charlie
|
||||
participant David
|
||||
|
||||
Note over Alice,David: Normal arrows with central connections
|
||||
Alice->>()Bob: CENTRAL_CONNECTION LTR
|
||||
Bob->>()Alice: CENTRAL_CONNECTION RTL
|
||||
Alice()->>Bob: CENTRAL_CONNECTION_REVERSE LTR
|
||||
Bob()->>Alice: CENTRAL_CONNECTION_REVERSE RTL
|
||||
Alice()->>()Bob: CENTRAL_CONNECTION_DUAL LTR
|
||||
Bob()->>()Alice: CENTRAL_CONNECTION_DUAL RTL
|
||||
|
||||
Note over Alice,David: Reverse arrows with central connections
|
||||
Bob/|-()Alice: Reverse with CENTRAL_CONNECTION LTR
|
||||
Alice/|-()Bob: Reverse with CENTRAL_CONNECTION RTL
|
||||
Bob()/|-Alice: Reverse with CENTRAL_CONNECTION_REVERSE LTR
|
||||
Alice()/|-Bob: Reverse with CENTRAL_CONNECTION_REVERSE RTL
|
||||
Bob()/|-()Alice: Reverse with CENTRAL_CONNECTION_DUAL LTR
|
||||
Alice()/|-()Bob: Reverse with CENTRAL_CONNECTION_DUAL RTL
|
||||
|
||||
Note over Alice,David: Mixed with different participants
|
||||
Alice->>()Charlie: Skip participant
|
||||
Charlie()->>Alice: Back skip
|
||||
Bob()->>()David: Another skip
|
||||
David()->>()Bob: Return skip`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
|
||||
it('should render central connections with bidirectional arrows and autonumber', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
autonumber
|
||||
participant Alice
|
||||
participant Bob
|
||||
participant Charlie
|
||||
Alice()<<->>()Bob: Dual central with bidirectional solid LTR
|
||||
Bob()<<->>()Alice: Dual central with bidirectional solid RTL
|
||||
Alice()<<-->>()Bob: Dual central with bidirectional dotted LTR
|
||||
Bob()<<-->>()Alice: Dual central with bidirectional dotted RTL
|
||||
Alice<<->>()Bob: Central at end with bidirectional LTR
|
||||
Bob()<<->>Alice: Central at start with bidirectional RTL`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Self-Reference Arrows - Comprehensive Coverage', () => {
|
||||
it('should render self-reference with normal arrows - without autonumber', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
participant Alice
|
||||
participant Bob
|
||||
participant Charlie
|
||||
Alice->>Alice: Solid arrow self-reference
|
||||
Bob-->>Bob: Dotted arrow self-reference
|
||||
Charlie->Charlie: Open arrow self-reference
|
||||
Alice-->Alice: Dotted open arrow self-reference
|
||||
Bob-xBob: Cross arrow self-reference
|
||||
Charlie--xCharlie: Dotted cross self-reference`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
|
||||
it('should render self-reference with normal arrows - with autonumber', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
autonumber
|
||||
participant Alice
|
||||
participant Bob
|
||||
participant Charlie
|
||||
Alice->>Alice: Solid arrow self-reference
|
||||
Bob-->>Bob: Dotted arrow self-reference
|
||||
Charlie->Charlie: Open arrow self-reference
|
||||
Alice-->Alice: Dotted open arrow self-reference
|
||||
Bob-xBob: Cross arrow self-reference
|
||||
Charlie--xCharlie: Dotted cross self-reference`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
|
||||
it('should render self-reference with reverse arrows - without autonumber', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
participant Alice
|
||||
participant Bob
|
||||
participant Charlie
|
||||
Alice/|-Alice: Solid top reverse self-reference
|
||||
Bob\\|-Bob: Solid bottom reverse self-reference
|
||||
Charlie//-Charlie: Stick top reverse self-reference
|
||||
Alice\\\\-Alice: Stick bottom reverse self-reference
|
||||
Bob/|--Bob: Dotted solid top reverse self-reference
|
||||
Charlie\\|--Charlie: Dotted solid bottom reverse self-reference
|
||||
Alice//--Alice: Dotted stick top reverse self-reference
|
||||
Bob\\\\--Bob: Dotted stick bottom reverse self-reference`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
|
||||
it('should render self-reference with reverse arrows - with autonumber', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
autonumber
|
||||
participant Alice
|
||||
participant Bob
|
||||
participant Charlie
|
||||
Alice/|-Alice: Solid top reverse self-reference
|
||||
Bob\\|-Bob: Solid bottom reverse self-reference
|
||||
Charlie//-Charlie: Stick top reverse self-reference
|
||||
Alice\\\\-Alice: Stick bottom reverse self-reference
|
||||
Bob/|--Bob: Dotted solid top reverse self-reference
|
||||
Charlie\\|--Charlie: Dotted solid bottom reverse self-reference
|
||||
Alice//--Alice: Dotted stick top reverse self-reference
|
||||
Bob\\\\--Bob: Dotted stick bottom reverse self-reference`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
|
||||
it('should render self-reference with bidirectional arrows - without autonumber', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
participant Alice
|
||||
participant Bob
|
||||
participant Charlie
|
||||
Alice<<->>Alice: Bidirectional solid self-reference
|
||||
Bob<<-->>Bob: Bidirectional dotted self-reference
|
||||
Charlie<<->>Charlie: Another bidirectional solid
|
||||
Alice<<-->>Alice: Another bidirectional dotted`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
|
||||
it('should render self-reference with bidirectional arrows - with autonumber', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
autonumber
|
||||
participant Alice
|
||||
participant Bob
|
||||
participant Charlie
|
||||
Alice<<->>Alice: Bidirectional solid self-reference
|
||||
Bob<<-->>Bob: Bidirectional dotted self-reference
|
||||
Charlie<<->>Charlie: Another bidirectional solid
|
||||
Alice<<-->>Alice: Another bidirectional dotted`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
|
||||
it('should render self-reference with CENTRAL_CONNECTION - without autonumber', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
participant Alice
|
||||
participant Bob
|
||||
participant Charlie
|
||||
Alice->>()Alice: Solid arrow with circle at destination
|
||||
Bob-->>()Bob: Dotted arrow with circle at destination
|
||||
Charlie->()Charlie: Open arrow with circle at destination
|
||||
Alice--x()Alice: Cross arrow with circle at destination
|
||||
Bob--)()Bob: Close arrow with circle at destination`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
|
||||
it('should render self-reference with CENTRAL_CONNECTION - with autonumber', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
autonumber
|
||||
participant Alice
|
||||
participant Bob
|
||||
participant Charlie
|
||||
Alice->>()Alice: Solid arrow with circle at destination
|
||||
Bob-->>()Bob: Dotted arrow with circle at destination
|
||||
Charlie->()Charlie: Open arrow with circle at destination
|
||||
Alice--x()Alice: Cross arrow with circle at destination
|
||||
Bob--)()Bob: Close arrow with circle at destination`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
|
||||
it('should render self-reference with CENTRAL_CONNECTION_REVERSE - without autonumber', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
participant Alice
|
||||
participant Bob
|
||||
participant Charlie
|
||||
Alice()->>Alice: Circle at source with solid arrow
|
||||
Bob()-->>Bob: Circle at source with dotted arrow
|
||||
Charlie()->Charlie: Circle at source with open arrow
|
||||
Alice()--xAlice: Circle at source with cross arrow
|
||||
Bob()--)Bob: Circle at source with close arrow`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
|
||||
it('should render self-reference with CENTRAL_CONNECTION_REVERSE - with autonumber', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
autonumber
|
||||
participant Alice
|
||||
participant Bob
|
||||
participant Charlie
|
||||
Alice()->>Alice: Circle at source with solid arrow
|
||||
Bob()-->>Bob: Circle at source with dotted arrow
|
||||
Charlie()->Charlie: Circle at source with open arrow
|
||||
Alice()--xAlice: Circle at source with cross arrow
|
||||
Bob()--)Bob: Circle at source with close arrow`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
|
||||
it('should render self-reference with CENTRAL_CONNECTION_DUAL - without autonumber', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
participant Alice
|
||||
participant Bob
|
||||
participant Charlie
|
||||
Alice()->>()Alice: Circles at both ends with solid arrow
|
||||
Bob()-->>()Bob: Circles at both ends with dotted arrow
|
||||
Charlie()->()Charlie: Circles at both ends with open arrow
|
||||
Alice()--x()Alice: Circles at both ends with cross arrow
|
||||
Bob()--)()Bob: Circles at both ends with close arrow`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
|
||||
it('should render self-reference with CENTRAL_CONNECTION_DUAL - with autonumber', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
autonumber
|
||||
participant Alice
|
||||
participant Bob
|
||||
participant Charlie
|
||||
Alice()->>()Alice: Circles at both ends with solid arrow
|
||||
Bob()-->>()Bob: Circles at both ends with dotted arrow
|
||||
Charlie()->()Charlie: Circles at both ends with open arrow
|
||||
Alice()--x()Alice: Circles at both ends with cross arrow
|
||||
Bob()--)()Bob: Circles at both ends with close arrow`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
|
||||
it('should render self-reference with reverse arrows and CENTRAL_CONNECTION', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
participant Alice
|
||||
participant Bob
|
||||
participant Charlie
|
||||
Alice/|-()Alice: Solid top reverse with circle at destination
|
||||
Bob\\|-()Bob: Solid bottom reverse with circle at destination
|
||||
Charlie//-()Charlie: Stick top reverse with circle at destination
|
||||
Alice\\\\-()Alice: Stick bottom reverse with circle at destination
|
||||
Bob/|--()Bob: Dotted solid top reverse with circle at destination
|
||||
Charlie\\|--()Charlie: Dotted solid bottom reverse with circle at destination
|
||||
Alice//--()Alice: Dotted stick top reverse with circle at destination
|
||||
Bob\\\\--()Bob: Dotted stick bottom reverse with circle at destination`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
|
||||
it('should render self-reference with reverse arrows and CENTRAL_CONNECTION - with autonumber', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
autonumber
|
||||
participant Alice
|
||||
participant Bob
|
||||
participant Charlie
|
||||
Alice/|-()Alice: Solid top reverse with circle at destination
|
||||
Bob\\|-()Bob: Solid bottom reverse with circle at destination
|
||||
Charlie//-()Charlie: Stick top reverse with circle at destination
|
||||
Alice\\\\-()Alice: Stick bottom reverse with circle at destination
|
||||
Bob/|--()Bob: Dotted solid top reverse with circle at destination
|
||||
Charlie\\|--()Charlie: Dotted solid bottom reverse with circle at destination
|
||||
Alice//--()Alice: Dotted stick top reverse with circle at destination
|
||||
Bob\\\\--()Bob: Dotted stick bottom reverse with circle at destination`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
|
||||
it('should render self-ref reverse Central_Connection_REVERSE no-autonumber', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
participant Alice
|
||||
participant Bob
|
||||
participant Charlie
|
||||
Alice()/|-Alice: Circle at source with solid top reverse
|
||||
Bob()\\|-Bob: Circle at source with solid bottom reverse
|
||||
Charlie()//-Charlie: Circle at source with stick top reverse
|
||||
Alice()\\\\-Alice: Circle at source with stick bottom reverse
|
||||
Bob()/|--Bob: Circle at source with dotted solid top reverse
|
||||
Charlie()\\|--Charlie: Circle at source with dotted solid bottom reverse
|
||||
Alice()//--Alice: Circle at source with dotted stick top reverse
|
||||
Bob()\\\\--Bob: Circle at source with dotted stick bottom reverse`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
|
||||
it('should render self-ref reverse Central_Connection_REVERSE autonumber', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
autonumber
|
||||
participant Alice
|
||||
participant Bob
|
||||
participant Charlie
|
||||
Alice()/|-Alice: Circle at source with solid top reverse
|
||||
Bob()\\|-Bob: Circle at source with solid bottom reverse
|
||||
Charlie()//-Charlie: Circle at source with stick top reverse
|
||||
Alice()\\\\-Alice: Circle at source with stick bottom reverse
|
||||
Bob()/|--Bob: Circle at source with dotted solid top reverse
|
||||
Charlie()\\|--Charlie: Circle at source with dotted solid bottom reverse
|
||||
Alice()//--Alice: Circle at source with dotted stick top reverse
|
||||
Bob()\\\\--Bob: Circle at source with dotted stick bottom reverse`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
|
||||
it('should render self-ref reverse Central_Connection_DUAL no-autonumber', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
participant Alice
|
||||
participant Bob
|
||||
participant Charlie
|
||||
Alice()/|-()Alice: Circles at both ends with solid top reverse
|
||||
Bob()\\|-()Bob: Circles at both ends with solid bottom reverse
|
||||
Charlie()//-()Charlie: Circles at both ends with stick top reverse
|
||||
Alice()\\\\-()Alice: Circles at both ends with stick bottom reverse
|
||||
Bob()/|--()Bob: Circles at both ends with dotted solid top reverse
|
||||
Charlie()\\|--()Charlie: Circles at both ends with dotted solid bottom reverse
|
||||
Alice()//--()Alice: Circles at both ends with dotted stick top reverse
|
||||
Bob()\\\\--()Bob: Circles at both ends with dotted stick bottom reverse`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
|
||||
it('should render self-references, reverse arrows & dual central connection (autonumber).', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
autonumber
|
||||
participant Alice
|
||||
participant Bob
|
||||
participant Charlie
|
||||
Alice()/|-()Alice: Circles at both ends with solid top reverse
|
||||
Bob()\\|-()Bob: Circles at both ends with solid bottom reverse
|
||||
Charlie()//-()Charlie: Circles at both ends with stick top reverse
|
||||
Alice()\\\\-()Alice: Circles at both ends with stick bottom reverse
|
||||
Bob()/|--()Bob: Circles at both ends with dotted solid top reverse
|
||||
Charlie()\\|--()Charlie: Circles at both ends with dotted solid bottom reverse
|
||||
Alice()//--()Alice: Circles at both ends with dotted stick top reverse
|
||||
Bob()\\\\--()Bob: Circles at both ends with dotted stick bottom reverse`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
|
||||
it('Render self-references with bidirectional central connections (no autonumber).', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
participant Alice
|
||||
participant Bob
|
||||
participant Charlie
|
||||
Alice()<<->>()Alice: Dual central with bidirectional solid
|
||||
Bob()<<-->>()Bob: Dual central with bidirectional dotted
|
||||
Charlie<<->>()Alice: Central at end with bidirectional
|
||||
Bob()<<->>Bob: Central at start with bidirectional`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
|
||||
it('should render self-reference with bidirectional and central connections - with autonumber', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
autonumber
|
||||
participant Alice
|
||||
participant Bob
|
||||
participant Charlie
|
||||
Alice()<<->>()Alice: Dual central with bidirectional solid
|
||||
Bob()<<-->>()Bob: Dual central with bidirectional dotted
|
||||
Charlie<<->>()Charlie: Central at end with bidirectional
|
||||
Bob()<<->>Bob: Central at start with bidirectional`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
|
||||
it('should render comprehensive self-reference scenario - all arrow types mixed', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
autonumber
|
||||
participant Alice
|
||||
participant Bob
|
||||
participant Charlie
|
||||
|
||||
Note over Alice,Charlie: Normal arrows
|
||||
Alice->>Alice: Normal solid
|
||||
Bob-->>Bob: Normal dotted
|
||||
Charlie->Charlie: Normal open
|
||||
|
||||
Note over Alice,Charlie: Reverse arrows
|
||||
Alice/|-Alice: Reverse solid top
|
||||
Bob\\|-Bob: Reverse solid bottom
|
||||
|
||||
Note over Alice,Charlie: Bidirectional arrows
|
||||
Charlie<<->>Charlie: Bidirectional solid
|
||||
Alice<<-->>Alice: Bidirectional dotted
|
||||
|
||||
Note over Alice,Charlie: Central connections
|
||||
Bob->>()Bob: Central at destination
|
||||
Charlie()->>Charlie: Central at source
|
||||
Alice()->>()Alice: Dual central
|
||||
|
||||
Note over Alice,Charlie: Reverse with central
|
||||
Bob()/|-()Bob: Reverse with dual central
|
||||
Charlie/|-()Charlie: Reverse with central at destination
|
||||
|
||||
Note over Alice,Charlie: Bidirectional with central
|
||||
Alice()<<->>()Alice: Bidirectional with dual central`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
|
||||
it('should render self-reference mixed with regular messages and autonumber', () => {
|
||||
imgSnapshotTest(
|
||||
`%%{init: {'theme':'base'}}%%
|
||||
sequenceDiagram
|
||||
autonumber
|
||||
participant Alice
|
||||
participant Bob
|
||||
participant Charlie
|
||||
|
||||
Alice->>Bob: Regular message
|
||||
Bob->>Bob: Self-reference solid
|
||||
Bob-->>Charlie: Regular dotted
|
||||
Charlie()->>()Charlie: Self-ref dual central
|
||||
Charlie->>Alice: Regular back
|
||||
Alice<<->>Alice: Self-ref bidirectional
|
||||
Alice()->>Bob: Regular with central
|
||||
Bob()/|-()Bob: Self-ref reverse dual central
|
||||
Bob-->>Alice: Regular dotted back`,
|
||||
{ sequence: { diagramMarginX: 50, diagramMarginY: 10 } }
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user