collab/mermaid/cypress/integration/rendering/stateDiagram-v2.spec.jsblame
View source
6dd74de1import { imgSnapshotTest, renderGraph } from '../../helpers/util.ts';
6dd74de2
6dd74de3describe('State diagram', () => {
6dd74de4 it('v2 should render a simple info', () => {
6dd74de5 imgSnapshotTest(
6dd74de6 `
6dd74de7 info
6dd74de8 `,
6dd74de9 { logLevel: 1, fontFamily: 'courier' }
6dd74de10 );
6dd74de11 });
6dd74de12 it('v2 should render a simple state diagrams', () => {
6dd74de13 imgSnapshotTest(
6dd74de14 `
6dd74de15 stateDiagram-v2
6dd74de16
6dd74de17 [*] --> State1
6dd74de18 State1 --> [*]
6dd74de19 `,
6dd74de20 { logLevel: 0, fontFamily: 'courier' }
6dd74de21 );
6dd74de22 });
6dd74de23 it('v2 should render a long descriptions instead of id when available', () => {
6dd74de24 imgSnapshotTest(
6dd74de25 `
6dd74de26 stateDiagram-v2
6dd74de27
6dd74de28 [*] --> S1
6dd74de29 state "Some long name" as S1
6dd74de30 `,
6dd74de31 { logLevel: 0, fontFamily: 'courier' }
6dd74de32 );
6dd74de33 });
6dd74de34 it('v2 should render a long descriptions with additional descriptions', () => {
6dd74de35 imgSnapshotTest(
6dd74de36 `
6dd74de37 stateDiagram-v2
6dd74de38
6dd74de39 [*] --> S1
6dd74de40 state "Some long name" as S1: The description
6dd74de41 `,
6dd74de42 { logLevel: 0, fontFamily: 'courier' }
6dd74de43 );
6dd74de44 });
6dd74de45 it('v2 should render a single state with short descriptions', () => {
6dd74de46 imgSnapshotTest(
6dd74de47 `
6dd74de48 stateDiagram-v2
6dd74de49 state "A long long name" as long1
6dd74de50 state "A" as longlonglongid
6dd74de51 `,
6dd74de52 { logLevel: 0, fontFamily: 'courier' }
6dd74de53 );
6dd74de54 });
6dd74de55 it('v2 should render a transition descriptions with new lines', () => {
6dd74de56 imgSnapshotTest(
6dd74de57 `
6dd74de58 stateDiagram-v2
6dd74de59
6dd74de60 [*] --> S1
6dd74de61 S1 --> S2: long line using<br/>should work
6dd74de62 S1 --> S3: long line using <br>should work
6dd74de63 S1 --> S4: long line using \\nshould work
6dd74de64 `,
6dd74de65 { logLevel: 0, fontFamily: 'courier' }
6dd74de66 );
6dd74de67 });
6dd74de68 it('v2 should render a state with a note', () => {
6dd74de69 imgSnapshotTest(
6dd74de70 `
6dd74de71 stateDiagram-v2
6dd74de72 State1: The state with a note
6dd74de73 note right of State1
6dd74de74 Important information! You can write
6dd74de75 notes.
6dd74de76 end note
6dd74de77 `,
6dd74de78 { logLevel: 0, fontFamily: 'courier' }
6dd74de79 );
6dd74de80 });
6dd74de81 it('v2 should render a state with on the left side when so specified', () => {
6dd74de82 imgSnapshotTest(
6dd74de83 `
6dd74de84 stateDiagram-v2
6dd74de85 State1: The state with a note with minus - and plus + in it
6dd74de86 note left of State1
6dd74de87 Important information! You can write
6dd74de88 notes with . and in them.
6dd74de89 end note
6dd74de90 `,
6dd74de91 { logLevel: 0, fontFamily: 'courier' }
6dd74de92 );
6dd74de93 });
6dd74de94 it('v2 should render a state with a note together with another state', () => {
6dd74de95 imgSnapshotTest(
6dd74de96 `
6dd74de97 stateDiagram-v2
6dd74de98 State1: The state with a note +,-
6dd74de99 note right of State1
6dd74de100 Important information! You can write +,-
6dd74de101 notes.
6dd74de102 end note
6dd74de103 State1 --> State2 : With +,-
6dd74de104 note left of State2 : This is the note +,-<br/>
6dd74de105 `,
6dd74de106 { logLevel: 0, fontFamily: 'courier' }
6dd74de107 );
6dd74de108 });
6dd74de109 it('v2 should render a note with multiple lines in it', () => {
6dd74de110 imgSnapshotTest(
6dd74de111 `
6dd74de112 stateDiagram-v2
6dd74de113 State1: The state with a note
6dd74de114 note right of State1
6dd74de115 Important information! You\ncan write
6dd74de116 notes with multiple lines...
6dd74de117 Here is another line...
6dd74de118 And another line...
6dd74de119 end note
6dd74de120 `,
6dd74de121 { logLevel: 0, fontFamily: 'courier' }
6dd74de122 );
6dd74de123 });
6dd74de124 it('v2 should handle multiline notes with different line breaks', () => {
6dd74de125 imgSnapshotTest(
6dd74de126 `
6dd74de127 stateDiagram-v2
6dd74de128 State1
6dd74de129 note right of State1
6dd74de130 Line1<br>Line2<br/>Line3<br />Line4<br />Line5
6dd74de131 end note
6dd74de132 `,
6dd74de133 { logLevel: 0, fontFamily: 'courier' }
6dd74de134 );
6dd74de135 });
6dd74de136
6dd74de137 it('v2 should render a states with descriptions including multi-line descriptions', () => {
6dd74de138 imgSnapshotTest(
6dd74de139 `
6dd74de140 stateDiagram-v2
6dd74de141 State1: This a single line description
6dd74de142 State2: This a multi line description
6dd74de143 State2: here comes the multi part
6dd74de144 [*] --> State1
6dd74de145 State1 --> State2
6dd74de146 State2 --> [*]
6dd74de147 `,
6dd74de148 { logLevel: 0, fontFamily: 'courier' }
6dd74de149 );
6dd74de150 });
6dd74de151 it('v2 should render a simple state diagrams 2', () => {
6dd74de152 imgSnapshotTest(
6dd74de153 `
6dd74de154 stateDiagram-v2
6dd74de155 [*] --> State1
6dd74de156 State1 --> State2
6dd74de157 State1 --> State3
6dd74de158 State1 --> [*]
6dd74de159 `,
6dd74de160 { logLevel: 0, fontFamily: 'courier' }
6dd74de161 );
6dd74de162 });
6dd74de163 it('v2 should render a simple state diagrams with labels', () => {
6dd74de164 imgSnapshotTest(
6dd74de165 `
6dd74de166 stateDiagram-v2
6dd74de167 [*] --> State1
6dd74de168 State1 --> State2 : Transition 1
6dd74de169 State1 --> State3 : Transition 2
6dd74de170 State1 --> State4 : Transition 3
6dd74de171 State1 --> State5 : Transition 4
6dd74de172 State2 --> State3 : Transition 5
6dd74de173 State1 --> [*]
6dd74de174 `,
6dd74de175 { logLevel: 0, fontFamily: 'courier' }
6dd74de176 );
6dd74de177 });
6dd74de178 it('v2 should render state descriptions', () => {
6dd74de179 imgSnapshotTest(
6dd74de180 `
6dd74de181 stateDiagram-v2
6dd74de182 state "Long state description" as XState1
6dd74de183 state "Another Long state description" as XState2
6dd74de184 XState2 : New line
6dd74de185 XState1 --> XState2
6dd74de186 `,
6dd74de187 { logLevel: 0, fontFamily: 'courier' }
6dd74de188 );
6dd74de189 });
6dd74de190 it('v2 should render composite states', () => {
6dd74de191 imgSnapshotTest(
6dd74de192 `
6dd74de193 stateDiagram-v2
6dd74de194 [*] --> NotShooting: Pacifist
6dd74de195 NotShooting --> A
6dd74de196 NotShooting --> B
6dd74de197 NotShooting --> C
6dd74de198
6dd74de199 state NotShooting {
6dd74de200 [*] --> Idle: Yet another long long öong öong öong label
6dd74de201 Idle --> Configuring : EvConfig
6dd74de202 Configuring --> Idle : EvConfig EvConfig EvConfig EvConfig EvConfig
6dd74de203 }
6dd74de204 `,
6dd74de205 { logLevel: 0, fontFamily: 'courier' }
6dd74de206 );
6dd74de207 });
6dd74de208 it('v2 should render multiple composite states', () => {
6dd74de209 imgSnapshotTest(
6dd74de210 `
6dd74de211 stateDiagram-v2
6dd74de212 [*]-->TV
6dd74de213
6dd74de214 state TV {
6dd74de215 [*] --> Off: Off to start with
6dd74de216 On --> Off : Turn off
6dd74de217 Off --> On : Turn on
6dd74de218 }
6dd74de219
6dd74de220 TV--> Console
6dd74de221
6dd74de222 state Console {
6dd74de223 [*] --> Off2: Off to start with
6dd74de224 On2--> Off2 : Turn off
6dd74de225 Off2 --> On2 : Turn on
6dd74de226 On2-->Playing
6dd74de227
6dd74de228 state Playing {
6dd74de229 Alive --> Dead
6dd74de230 Dead-->Alive
6dd74de231 }
6dd74de232 }
6dd74de233 `,
6dd74de234 { logLevel: 0, fontFamily: 'courier' }
6dd74de235 );
6dd74de236 });
6dd74de237 it('v2 should render forks in composite states', () => {
6dd74de238 imgSnapshotTest(
6dd74de239 `
6dd74de240 stateDiagram-v2
6dd74de241 [*]-->TV
6dd74de242
6dd74de243 state TV {
6dd74de244 state fork_state &lt;&lt;fork&gt;&gt;
6dd74de245 [*] --> fork_state
6dd74de246 fork_state --> State2
6dd74de247 fork_state --> State3
6dd74de248
6dd74de249 state join_state &lt;&lt;join&gt;&gt;
6dd74de250 State2 --> join_state
6dd74de251 State3 --> join_state
6dd74de252 join_state --> State4
6dd74de253 State4 --> [*]
6dd74de254 }
6dd74de255 `,
6dd74de256 { logLevel: 0, fontFamily: 'courier' }
6dd74de257 );
6dd74de258 });
6dd74de259 it('v2 should render forks and joins', () => {
6dd74de260 imgSnapshotTest(
6dd74de261 `
6dd74de262 stateDiagram-v2
6dd74de263 state fork_state &lt;&lt;fork&gt;&gt;
6dd74de264 [*] --> fork_state
6dd74de265 fork_state --> State2
6dd74de266 fork_state --> State3
6dd74de267
6dd74de268 state join_state &lt;&lt;join&gt;&gt;
6dd74de269 State2 --> join_state
6dd74de270 State3 --> join_state
6dd74de271 join_state --> State4
6dd74de272 State4 --> [*]
6dd74de273 `,
6dd74de274 { logLevel: 0, fontFamily: 'courier' }
6dd74de275 );
6dd74de276 });
6dd74de277 it('v2 should render concurrency states', () => {
6dd74de278 imgSnapshotTest(
6dd74de279 `
6dd74de280 stateDiagram-v2
6dd74de281 [*] --> Active
6dd74de282
6dd74de283 state Active {
6dd74de284 [*] --> NumLockOff
6dd74de285 NumLockOff --> NumLockOn : EvNumLockPressed
6dd74de286 NumLockOn --> NumLockOff : EvNumLockPressed
6dd74de287 --
6dd74de288 [*] --> CapsLockOff
6dd74de289 CapsLockOff --> CapsLockOn : EvCapsLockPressed
6dd74de290 CapsLockOn --> CapsLockOff : EvCapsLockPressed
6dd74de291 --
6dd74de292 [*] --> ScrollLockOff
6dd74de293 ScrollLockOff --> ScrollLockOn : EvCapsLockPressed
6dd74de294 ScrollLockOn --> ScrollLockOff : EvCapsLockPressed
6dd74de295 }
6dd74de296 `,
6dd74de297 { logLevel: 0, fontFamily: 'courier' }
6dd74de298 );
6dd74de299 });
6dd74de300 it('v2 should render a state with states in it', () => {
6dd74de301 imgSnapshotTest(
6dd74de302 `
6dd74de303 stateDiagram-v2
6dd74de304 state PilotCockpit {
6dd74de305 state Parent {
6dd74de306 C
6dd74de307 }
6dd74de308 }
6dd74de309 `,
6dd74de310 {
6dd74de311 logLevel: 0,
6dd74de312 }
6dd74de313 );
6dd74de314 });
6dd74de315 it('v2 it should be possible to use a choice', () => {
6dd74de316 imgSnapshotTest(
6dd74de317 `
6dd74de318 stateDiagram-v2
6dd74de319 [*] --> Off
6dd74de320 Off --> On
6dd74de321 state MyChoice [[choice]]
6dd74de322 On --> MyChoice
6dd74de323 MyChoice --> Washing
6dd74de324 MyChoice --> Drying
6dd74de325 Washing --> Finished
6dd74de326 Finished --> [*]
6dd74de327 `,
6dd74de328 {
6dd74de329 logLevel: 0,
6dd74de330 }
6dd74de331 );
6dd74de332 });
6dd74de333 it('v2 A compound state should be able to link to itself', () => {
6dd74de334 imgSnapshotTest(
6dd74de335 `
6dd74de336stateDiagram
6dd74de337 state Active {
6dd74de338 Idle
6dd74de339 }
6dd74de340 Inactive --> Idle: ACT
6dd74de341 Active --> Active: LOG
6dd74de342 `,
6dd74de343 {
6dd74de344 logLevel: 0,
6dd74de345 }
6dd74de346 );
6dd74de347 });
6dd74de348 it('v2 width of compound state should grow with title if title is wider', () => {
6dd74de349 imgSnapshotTest(
6dd74de350 `
6dd74de351stateDiagram-v2
6dd74de352 state "Long state name 2" as NotShooting {
6dd74de353 a-->b
6dd74de354 }
6dd74de355 `,
6dd74de356 {
6dd74de357 logLevel: 0,
6dd74de358 }
6dd74de359 );
6dd74de360 });
6dd74de361 it('v2 state label with names in it', () => {
6dd74de362 imgSnapshotTest(
6dd74de363 `
6dd74de364 stateDiagram-v2
6dd74de365 Yswsii: Your state with spaces in it
6dd74de366 [*] --> Yswsii
6dd74de367 `,
6dd74de368 {
6dd74de369 logLevel: 0,
6dd74de370 }
6dd74de371 );
6dd74de372 });
6dd74de373 it('v2 Simplest composite state', () => {
6dd74de374 imgSnapshotTest(
6dd74de375 `
6dd74de376 stateDiagram-v2
6dd74de377 state Parent {
6dd74de378 C
6dd74de379 }
6dd74de380 `,
6dd74de381 {
6dd74de382 logLevel: 0,
6dd74de383 fontFamily: 'courier',
6dd74de384 }
6dd74de385 );
6dd74de386 });
6dd74de387 it('v2 should handle multiple arrows from one node to another', () => {
6dd74de388 imgSnapshotTest(
6dd74de389 `
6dd74de390 stateDiagram-v2
6dd74de391 a --> b: Start
6dd74de392 a --> b: Stop
6dd74de393 `,
6dd74de394 {
6dd74de395 logLevel: 0,
6dd74de396 fontFamily: 'courier',
6dd74de397 }
6dd74de398 );
6dd74de399 });
6dd74de400 it('v2 should handle multiple notes added to one state', () => {
6dd74de401 imgSnapshotTest(
6dd74de402 `
6dd74de403stateDiagram-v2
6dd74de404 MyState
6dd74de405 note left of MyState : I am a lefty
6dd74de406 note right of MyState : I am a righty
6dd74de407 `,
6dd74de408 {
6dd74de409 logLevel: 0,
6dd74de410 fontFamily: 'courier',
6dd74de411 }
6dd74de412 );
6dd74de413 });
6dd74de414 it('v2 should handle different rendering directions in composite states', () => {
6dd74de415 imgSnapshotTest(
6dd74de416 `
6dd74de417stateDiagram-v2
6dd74de418 direction LR
6dd74de419 state A {
6dd74de420 direction BT
6dd74de421 a --> b
6dd74de422 }
6dd74de423 state C {
6dd74de424 direction RL
6dd74de425 c --> d
6dd74de426 }
6dd74de427 A --> C
6dd74de428 `,
6dd74de429 {
6dd74de430 logLevel: 0,
6dd74de431 fontFamily: 'courier',
6dd74de432 }
6dd74de433 );
6dd74de434 });
6dd74de435 it('v2 handle transition from one state in a composite state to a composite state', () => {
6dd74de436 imgSnapshotTest(
6dd74de437 `
6dd74de438stateDiagram-v2
6dd74de439 state S1 {
6dd74de440 sub1 -->sub2
6dd74de441 }
6dd74de442
6dd74de443 state S2 {
6dd74de444 sub4
6dd74de445 }
6dd74de446 S1 --> S2
6dd74de447 sub1 --> sub4
6dd74de448 `,
6dd74de449 {
6dd74de450 logLevel: 0,
6dd74de451 fontFamily: 'courier',
6dd74de452 }
6dd74de453 );
6dd74de454 });
6dd74de455 it('v2 should render a state diagram when useMaxWidth is true (default)', () => {
6dd74de456 renderGraph(
6dd74de457 `
6dd74de458 stateDiagram-v2
6dd74de459
6dd74de460 [*] --> State1
6dd74de461 State1 --> [*]
6dd74de462 `,
6dd74de463 { state: { useMaxWidth: true } }
6dd74de464 );
6dd74de465 cy.get('svg').should((svg) => {
6dd74de466 expect(svg).to.have.attr('width', '100%');
6dd74de467 // expect(svg).to.have.attr('height');
6dd74de468 // const height = parseFloat(svg.attr('height'));
6dd74de469 // expect(height).to.be.within(177, 178);
6dd74de470 const style = svg.attr('style');
6dd74de471 expect(style).to.match(/^max-width: [\d.]+px;$/);
6dd74de472 const maxWidthValue = parseFloat(style.match(/[\d.]+/g).join(''));
6dd74de473 // use within because the absolute value can be slightly different depending on the environment ±5%
6dd74de474 expect(maxWidthValue).to.be.within(65, 85);
6dd74de475 });
6dd74de476 });
6dd74de477 it('v2 should render a state diagram when useMaxWidth is false', () => {
6dd74de478 renderGraph(
6dd74de479 `
6dd74de480 stateDiagram-v2
6dd74de481
6dd74de482 [*] --> State1
6dd74de483 State1 --> [*]
6dd74de484 `,
6dd74de485 { state: { useMaxWidth: false } }
6dd74de486 );
6dd74de487 cy.get('svg').should((svg) => {
6dd74de488 // const height = parseFloat(svg.attr('height'));
6dd74de489 const width = parseFloat(svg.attr('width'));
6dd74de490 // expect(height).to.be.within(177, 178);
6dd74de491 // use within because the absolute value can be slightly different depending on the environment ±5%
6dd74de492 expect(width).to.be.within(65, 85);
6dd74de493 expect(svg).to.not.have.attr('style');
6dd74de494 });
6dd74de495 });
6dd74de496
6dd74de497 it('v2 should render a state diagram and set the correct length of the labels', () => {
6dd74de498 imgSnapshotTest(
6dd74de499 `
6dd74de500 stateDiagram-v2
6dd74de501 [*] --> 1
6dd74de502 1 --> 2: test({ foo#colon; 'far' })
6dd74de503 2 --> [*]
6dd74de504 `,
6dd74de505 { logLevel: 0, fontFamily: 'courier' }
6dd74de506 );
6dd74de507 });
6dd74de508
6dd74de509 describe('classDefs and applying classes', () => {
6dd74de510 it('v2 states can have a class applied', () => {
6dd74de511 imgSnapshotTest(
6dd74de512 `
6dd74de513 stateDiagram-v2
6dd74de514 [*] --> A
6dd74de515 A --> B: test({ foo#colon; 'far' })
6dd74de516 B --> [*]
6dd74de517 classDef badBadEvent fill:#f00,color:white,font-weight:bold
6dd74de518 class B badBadEvent
6dd74de519 `,
6dd74de520 { logLevel: 0, fontFamily: 'courier' }
6dd74de521 );
6dd74de522 });
6dd74de523 it('v2 can have multiple classes applied to multiple states', () => {
6dd74de524 imgSnapshotTest(
6dd74de525 `
6dd74de526 stateDiagram-v2
6dd74de527 classDef notMoving fill:white
6dd74de528 classDef movement font-style:italic;
6dd74de529 classDef badBadEvent fill:#f00,color:white,font-weight:bold
6dd74de530
6dd74de531 [*] --> Still
6dd74de532 Still --> [*]
6dd74de533 Still --> Moving
6dd74de534 Moving --> Still
6dd74de535 Moving --> Crash
6dd74de536 Crash --> [*]
6dd74de537
6dd74de538 class Still notMoving
6dd74de539 class Moving, Crash movement
6dd74de540 class Crash badBadEvent
6dd74de541 `,
6dd74de542 { logLevel: 0, fontFamily: 'courier' }
6dd74de543 );
6dd74de544 });
6dd74de545 it(' can have styles applied ', () => {
6dd74de546 imgSnapshotTest(
6dd74de547 `
6dd74de548stateDiagram-v2
6dd74de549AState
6dd74de550style AState fill:#636,border:1px solid red,color:white;
6dd74de551 `,
6dd74de552 { logLevel: 0, fontFamily: 'courier' }
6dd74de553 );
6dd74de554 });
6dd74de555 it(' should let styles take precedence over classes', () => {
6dd74de556 imgSnapshotTest(
6dd74de557 `
6dd74de558stateDiagram-v2
6dd74de559AState: Should NOT be white
6dd74de560BState
6dd74de561classDef exampleStyleClass fill:#fff,color: blue;
6dd74de562class AState,BState exampleStyleClass
6dd74de563style AState fill:#636,border:1px solid red,color:white;
6dd74de564 `,
6dd74de565 { logLevel: 0, fontFamily: 'courier' }
6dd74de566 );
6dd74de567 });
6dd74de568 it(' should allow styles to take effect in subgraphs', () => {
6dd74de569 imgSnapshotTest(
6dd74de570 `
6dd74de571 stateDiagram
6dd74de572 state roundWithTitle {
6dd74de573 C: Black with white text
6dd74de574 }
6dd74de575 D: Black with white text
6dd74de576
6dd74de577 style C,D stroke:#00f, fill:black, color:white
6dd74de578 `,
6dd74de579 { logLevel: 0, fontFamily: 'courier' }
6dd74de580 );
6dd74de581 });
6dd74de582 });
6dd74de583 it('1433: should render a simple state diagram with a title', () => {
6dd74de584 imgSnapshotTest(
6dd74de585 `---
6dd74de586title: simple state diagram
6dd74de587---
6dd74de588stateDiagram-v2
6dd74de589[*] --> State1
6dd74de590State1 --> [*]
6dd74de591`,
6dd74de592 {}
6dd74de593 );
6dd74de594 });
6dd74de595 it('should align dividers correctly', () => {
6dd74de596 imgSnapshotTest(
6dd74de597 `stateDiagram-v2
6dd74de598 state s2 {
6dd74de599 s3
6dd74de600 --
6dd74de601 s4
6dd74de602 --
6dd74de603 55
6dd74de604 }
6dd74de605`,
6dd74de606 {}
6dd74de607 );
6dd74de608 });
6dd74de609 it('should render edge labels correctly', () => {
6dd74de610 imgSnapshotTest(
6dd74de611 `---
6dd74de612title: On The Way To Something Something DarkSide
6dd74de613config:
6dd74de614 look: default
6dd74de615 theme: default
6dd74de616---
6dd74de617
6dd74de618stateDiagram-v2
6dd74de619
6dd74de620 state State1_____________
6dd74de621 {
6dd74de622 c0
6dd74de623 }
6dd74de624
6dd74de625 state State2_____________
6dd74de626 {
6dd74de627 c1
6dd74de628 }
6dd74de629
6dd74de630 state State3_____________
6dd74de631 {
6dd74de632 c7
6dd74de633 }
6dd74de634
6dd74de635 state State4_____________
6dd74de636 {
6dd74de637 c2
6dd74de638 }
6dd74de639
6dd74de640 state State5_____________
6dd74de641 {
6dd74de642 c3
6dd74de643 }
6dd74de644
6dd74de645 state State6_____________
6dd74de646 {
6dd74de647 c4
6dd74de648 }
6dd74de649
6dd74de650 state State7_____________
6dd74de651 {
6dd74de652 c5
6dd74de653 }
6dd74de654
6dd74de655 state State8_____________
6dd74de656 {
6dd74de657 c6
6dd74de658 }
6dd74de659
6dd74de660
6dd74de661[*] --> State1_____________
6dd74de662State1_____________ --> State2_____________ : Transition1_____
6dd74de663State2_____________ --> State4_____________ : Transition2_____
6dd74de664State2_____________ --> State3_____________ : Transition3_____
6dd74de665State3_____________ --> State2_____________
6dd74de666State4_____________ --> State2_____________ : Transition5_____
6dd74de667State4_____________ --> State5_____________ : Transition6_____
6dd74de668State5_____________ --> State6_____________ : Transition7_____
6dd74de669State6_____________ --> State4_____________ : Transition8_____
6dd74de670State2_____________ --> State7_____________ : Transition4_____
6dd74de671State4_____________ --> State7_____________ : Transition4_____
6dd74de672State5_____________ --> State7_____________ : Transition4_____
6dd74de673State6_____________ --> State7_____________ : Transition4_____
6dd74de674State7_____________ --> State1_____________ : Transition9_____
6dd74de675State5_____________ --> State8_____________ : Transition10____
6dd74de676State8_____________ --> State5_____________ : Transition11____
6dd74de677`,
6dd74de678 {}
6dd74de679 );
6dd74de680 });
6dd74de681 it('should render edge labels correctly with multiple transitions', () => {
6dd74de682 imgSnapshotTest(
6dd74de683 `---
6dd74de684title: Multiple Transitions
6dd74de685config:
6dd74de686 look: default
6dd74de687 theme: default
6dd74de688---
6dd74de689
6dd74de690stateDiagram-v2
6dd74de691
6dd74de692 state State1_____________
6dd74de693 {
6dd74de694 c0
6dd74de695 }
6dd74de696
6dd74de697 state State2_____________
6dd74de698 {
6dd74de699 c1
6dd74de700 }
6dd74de701
6dd74de702 state State3_____________
6dd74de703 {
6dd74de704 c7
6dd74de705 }
6dd74de706
6dd74de707 state State4_____________
6dd74de708 {
6dd74de709 c2
6dd74de710 }
6dd74de711
6dd74de712 state State5_____________
6dd74de713 {
6dd74de714 c3
6dd74de715 }
6dd74de716
6dd74de717 state State6_____________
6dd74de718 {
6dd74de719 c4
6dd74de720 }
6dd74de721
6dd74de722 state State7_____________
6dd74de723 {
6dd74de724 c5
6dd74de725 }
6dd74de726
6dd74de727 state State8_____________
6dd74de728 {
6dd74de729 c6
6dd74de730 }
6dd74de731
6dd74de732 state State9_____________
6dd74de733 {
6dd74de734 c9
6dd74de735 }
6dd74de736
6dd74de737[*] --> State1_____________
6dd74de738State1_____________ --> State2_____________ : Transition1_____
6dd74de739State2_____________ --> State4_____________ : Transition2_____
6dd74de740State2_____________ --> State3_____________ : Transition3_____
6dd74de741State3_____________ --> State2_____________
6dd74de742State4_____________ --> State2_____________ : Transition5_____
6dd74de743State4_____________ --> State5_____________ : Transition6_____
6dd74de744State5_____________ --> State6_____________ : Transition7_____
6dd74de745State6_____________ --> State4_____________ : Transition8_____
6dd74de746State2_____________ --> State7_____________ : Transition4_____
6dd74de747State4_____________ --> State7_____________ : Transition4_____
6dd74de748State5_____________ --> State7_____________ : Transition4_____
6dd74de749State6_____________ --> State7_____________ : Transition4_____
6dd74de750State7_____________ --> State1_____________ : Transition9_____
6dd74de751State5_____________ --> State8_____________ : Transition10____
6dd74de752State8_____________ --> State5_____________ : Transition11____
6dd74de753State9_____________ --> State8_____________ : Transition12____
6dd74de754`,
6dd74de755 {}
6dd74de756 );
6dd74de757 });
6dd74de758
6dd74de759 it('should render edge labels correctly with multiple states', () => {
6dd74de760 imgSnapshotTest(
6dd74de761 `---
6dd74de762title: Multiple States
6dd74de763config:
6dd74de764 look: default
6dd74de765 theme: default
6dd74de766---
6dd74de767
6dd74de768stateDiagram-v2
6dd74de769
6dd74de770 state State1_____________
6dd74de771 {
6dd74de772 c0
6dd74de773 }
6dd74de774
6dd74de775 state State2_____________
6dd74de776 {
6dd74de777 c1
6dd74de778 }
6dd74de779
6dd74de780 state State3_____________
6dd74de781 {
6dd74de782 c7
6dd74de783 }
6dd74de784
6dd74de785 state State4_____________
6dd74de786 {
6dd74de787 c2
6dd74de788 }
6dd74de789
6dd74de790 state State5_____________
6dd74de791 {
6dd74de792 c3
6dd74de793 }
6dd74de794
6dd74de795 state State6_____________
6dd74de796 {
6dd74de797 c4
6dd74de798 }
6dd74de799
6dd74de800 state State7_____________
6dd74de801 {
6dd74de802 c5
6dd74de803 }
6dd74de804
6dd74de805 state State8_____________
6dd74de806 {
6dd74de807 c6
6dd74de808 }
6dd74de809
6dd74de810 state State9_____________
6dd74de811 {
6dd74de812 c9
6dd74de813 }
6dd74de814
6dd74de815 state State10_____________
6dd74de816 {
6dd74de817 c10
6dd74de818 }
6dd74de819
6dd74de820[*] --> State1_____________
6dd74de821State1_____________ --> State2_____________ : Transition1_____
6dd74de822State2_____________ --> State3_____________ : Transition2_____
6dd74de823State3_____________ --> State4_____________ : Transition3_____
6dd74de824State4_____________ --> State5_____________ : Transition4_____
6dd74de825State5_____________ --> State6_____________ : Transition5_____
6dd74de826State6_____________ --> State7_____________ : Transition6_____
6dd74de827State7_____________ --> State8_____________ : Transition7_____
6dd74de828State8_____________ --> State9_____________ : Transition8_____
6dd74de829State9_____________ --> State10_____________ : Transition9_____
6dd74de830`,
6dd74de831 {}
6dd74de832 );
6dd74de833 });
6dd74de834});