2019-09-11 18:53:05 +02:00
|
|
|
/// <reference types="Cypress" />
|
|
|
|
|
2019-09-18 18:25:06 +02:00
|
|
|
import { imgSnapshotTest } from '../../helpers/util';
|
2019-09-11 18:53:05 +02:00
|
|
|
|
2019-12-21 20:39:32 +01:00
|
|
|
context('Sequence diagram', () => {
|
|
|
|
it('should render a simple sequence diagram', () => {
|
2019-09-18 18:25:06 +02:00
|
|
|
imgSnapshotTest(
|
|
|
|
`
|
2019-09-11 18:53:05 +02:00
|
|
|
sequenceDiagram
|
|
|
|
participant Alice
|
|
|
|
participant Bob
|
|
|
|
participant John as John<br/>Second Line
|
|
|
|
Alice ->> Bob: Hello Bob, how are you?
|
|
|
|
Bob-->>John: How about you John?
|
|
|
|
Bob--x Alice: I am good thanks!
|
|
|
|
Bob-x John: I am good thanks!
|
|
|
|
Note right of John: Bob thinks a long<br/>long time, so long<br/>that the text does<br/>not fit on a row.
|
|
|
|
Bob-->Alice: Checking with John...
|
|
|
|
alt either this
|
|
|
|
Alice->>John: Yes
|
|
|
|
else or this
|
|
|
|
Alice->>John: No
|
|
|
|
else or this will happen
|
|
|
|
Alice->John: Maybe
|
|
|
|
end
|
|
|
|
par this happens in parallel
|
|
|
|
Alice -->> Bob: Parallel message 1
|
|
|
|
and
|
|
|
|
Alice -->> John: Parallel message 2
|
|
|
|
end
|
2019-09-18 18:25:06 +02:00
|
|
|
`,
|
|
|
|
{}
|
|
|
|
);
|
|
|
|
});
|
2019-12-21 20:39:32 +01:00
|
|
|
it('should handle different line breaks', () => {
|
|
|
|
imgSnapshotTest(
|
|
|
|
`
|
|
|
|
sequenceDiagram
|
|
|
|
participant 1 as multiline<br>using #lt;br#gt;
|
|
|
|
participant 2 as multiline<br/>using #lt;br/#gt;
|
|
|
|
participant 3 as multiline<br />using #lt;br /#gt;
|
2019-12-23 08:52:15 -08:00
|
|
|
participant 4 as multiline<br \t/>using #lt;br \t/#gt;
|
2019-12-21 20:39:32 +01:00
|
|
|
1->>2: multiline<br>using #lt;br#gt;
|
|
|
|
note right of 2: multiline<br>using #lt;br#gt;
|
|
|
|
2->>3: multiline<br/>using #lt;br/#gt;
|
|
|
|
note right of 3: multiline<br/>using #lt;br/#gt;
|
2019-12-23 08:52:15 -08:00
|
|
|
3->>4: multiline<br />using #lt;br /#gt;
|
|
|
|
note right of 4: multiline<br />using #lt;br /#gt;
|
|
|
|
4->>1: multiline<br />using #lt;br /#gt;
|
|
|
|
note right of 1: multiline<br \t/>using #lt;br \t/#gt;
|
2019-12-21 20:39:32 +01:00
|
|
|
`,
|
|
|
|
{}
|
|
|
|
);
|
|
|
|
});
|
2019-09-11 18:53:05 +02:00
|
|
|
context('background rects', () => {
|
|
|
|
it('should render a single and nested rects', () => {
|
2019-09-18 18:25:06 +02:00
|
|
|
imgSnapshotTest(
|
|
|
|
`
|
2019-09-11 18:53:05 +02:00
|
|
|
sequenceDiagram
|
|
|
|
participant A
|
|
|
|
participant B
|
|
|
|
participant C
|
|
|
|
participant D
|
|
|
|
participant E
|
|
|
|
participant G
|
|
|
|
|
|
|
|
A ->>+ B: Task 1
|
|
|
|
rect rgb(178, 102, 255)
|
|
|
|
B ->>+ C: Task 2
|
|
|
|
C -->>- B: Return
|
|
|
|
end
|
|
|
|
|
|
|
|
A ->> D: Task 3
|
|
|
|
rect rgb(0, 128, 255)
|
|
|
|
D ->>+ E: Task 4
|
|
|
|
rect rgb(0, 204, 0)
|
|
|
|
E ->>+ G: Task 5
|
|
|
|
G -->>- E: Return
|
|
|
|
end
|
|
|
|
E ->> E: Task 6
|
|
|
|
end
|
|
|
|
D -->> A: Complete
|
2019-09-18 18:25:06 +02:00
|
|
|
`,
|
|
|
|
{}
|
|
|
|
);
|
|
|
|
});
|
2019-09-11 18:53:05 +02:00
|
|
|
it('should render rect around and inside loops', () => {
|
2019-09-18 18:25:06 +02:00
|
|
|
imgSnapshotTest(
|
|
|
|
`
|
2019-09-11 18:53:05 +02:00
|
|
|
sequenceDiagram
|
|
|
|
A ->> B: 1
|
|
|
|
rect rgb(204, 0, 102)
|
|
|
|
loop check C
|
|
|
|
C ->> C: Every 10 seconds
|
|
|
|
end
|
|
|
|
end
|
|
|
|
A ->> B: 2
|
|
|
|
loop check D
|
|
|
|
C ->> D: 3
|
|
|
|
rect rgb(153, 153, 255)
|
|
|
|
D -->> D: 5
|
|
|
|
D --> C: 4
|
|
|
|
end
|
|
|
|
end
|
2019-09-18 18:25:06 +02:00
|
|
|
`,
|
|
|
|
{}
|
|
|
|
);
|
|
|
|
});
|
2019-09-11 18:53:05 +02:00
|
|
|
it('should render rect around and inside alts', () => {
|
2019-09-18 18:25:06 +02:00
|
|
|
imgSnapshotTest(
|
|
|
|
`
|
2019-09-11 18:53:05 +02:00
|
|
|
sequenceDiagram
|
|
|
|
A ->> B: 1
|
|
|
|
rect rgb(204, 0, 102)
|
|
|
|
alt yes
|
|
|
|
C ->> C: 1
|
|
|
|
else no
|
|
|
|
rect rgb(0, 204, 204)
|
|
|
|
C ->> C: 0
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
B ->> A: Return
|
2019-09-18 18:25:06 +02:00
|
|
|
`,
|
|
|
|
{}
|
|
|
|
);
|
|
|
|
});
|
2019-09-11 18:53:05 +02:00
|
|
|
it('should render rect around and inside opts', () => {
|
2019-09-18 18:25:06 +02:00
|
|
|
imgSnapshotTest(
|
|
|
|
`
|
2019-09-11 18:53:05 +02:00
|
|
|
sequenceDiagram
|
|
|
|
A ->> B: 1
|
|
|
|
rect rgb(204, 0, 102)
|
|
|
|
opt maybe
|
|
|
|
C -->> D: Do something
|
|
|
|
rect rgb(0, 204, 204)
|
|
|
|
C ->> C: 0
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
opt possibly
|
|
|
|
rect rgb(0, 204, 204)
|
|
|
|
C ->> C: 0
|
|
|
|
end
|
|
|
|
end
|
|
|
|
B ->> A: Return
|
2019-09-18 18:25:06 +02:00
|
|
|
`,
|
|
|
|
{}
|
|
|
|
);
|
|
|
|
});
|
2020-02-16 15:26:08 +01:00
|
|
|
it('should render autonumber when configured with such', () => {
|
|
|
|
imgSnapshotTest(
|
|
|
|
`
|
|
|
|
sequenceDiagram
|
|
|
|
Alice->>John: Hello John, how are you?
|
|
|
|
loop Healthcheck
|
|
|
|
John->>John: Fight against hypochondria
|
|
|
|
end
|
|
|
|
Note right of John: Rational thoughts!
|
|
|
|
John-->>Alice: Great!
|
|
|
|
John->>Bob: How about you?
|
|
|
|
Bob-->>John: Jolly good!
|
|
|
|
`,
|
|
|
|
{sequence: { actorMargin: 50, showSequenceNumbers: true }}
|
|
|
|
);
|
|
|
|
});
|
|
|
|
it('should render autonumber when autonumber keyword is used', () => {
|
|
|
|
imgSnapshotTest(
|
|
|
|
`
|
|
|
|
sequenceDiagram
|
|
|
|
autonumber
|
|
|
|
Alice->>John: Hello John, how are you?
|
|
|
|
loop Healthcheck
|
|
|
|
John->>John: Fight against hypochondria
|
|
|
|
end
|
|
|
|
Note right of John: Rational thoughts!
|
|
|
|
John-->>Alice: Great!
|
|
|
|
John->>Bob: How about you?
|
|
|
|
Bob-->>John: Jolly good!
|
|
|
|
`,
|
|
|
|
{}
|
|
|
|
);
|
|
|
|
});
|
2019-09-18 18:25:06 +02:00
|
|
|
});
|
|
|
|
});
|