2023-07-07 17:21:18 +05:30
import { imgSnapshotTest , renderGraph } from '../../helpers/util.ts' ;
2023-01-12 18:26:08 +05:30
2023-02-20 00:36:13 +05:30
describe . skip ( 'Flowchart ELK' , ( ) => {
2023-01-12 18:26:08 +05:30
it ( '1-elk: should render a simple flowchart' , ( ) => {
imgSnapshotTest (
` flowchart-elk TD
A [ Christmas ] -- > | Get money | B ( Go shopping )
B -- > C { Let me think }
C -- > | One | D [ Laptop ]
C -- > | Two | E [ iPhone ]
C -- > | Three | F [ fa : fa - car Car ]
` ,
{ }
) ;
imgSnapshotTest (
` flowchart TD
A [ Christmas ] -- > | Get money | B ( Go shopping )
B -- > C { Let me think }
C -- > | One | D [ Laptop ]
C -- > | Two | E [ iPhone ]
C -- > | Three | F [ fa : fa - car Car ]
` ,
{ flowchart : { defaultRenderer : 'elk' } }
) ;
} ) ;
it ( '2-elk: should render a simple flowchart with diagramPadding set to 0' , ( ) => {
imgSnapshotTest (
` flowchart-elk TD
A [ Christmas ] -- > | Get money | B ( Go shopping )
B -- > C { Let me think }
% % this is a comment
C -- > | One | D [ Laptop ]
C -- > | Two | E [ iPhone ]
C -- > | Three | F [ fa : fa - car Car ]
` ,
{ flowchart : { diagramPadding : 0 } }
) ;
} ) ;
it ( '3-elk: a link with correct arrowhead to a subgraph' , ( ) => {
imgSnapshotTest (
` flowchart-elk TD
P1
P1 -- > P1 . 5
subgraph P1 . 5
P2
P2 . 5 ( ( A ) )
P3
end
P2 -- > P4
P3 -- > P6
P1 . 5 -- > P5
` ,
{ }
) ;
} ) ;
it ( '4-elk: Length of edges' , ( ) => {
imgSnapshotTest (
` flowchart-elk TD
L1 -- - L2
L2 -- - C
M1 -- - > C
R1 . - > R2
R2 < . - > C
C -- > | Label 1 | E1
C < -- Label 2 -- - > E2
C -- -- > E3
C < - ... - > E4
C === === > E5
` ,
{ }
) ;
} ) ;
it ( '5-elk: should render escaped without html labels' , ( ) => {
imgSnapshotTest (
` flowchart-elk TD
a [ "<strong>Haiya</strong>" ] -- -- > b
` ,
{ htmlLabels : false , flowchart : { htmlLabels : false } }
) ;
} ) ;
it ( '6-elk: should render non-escaped with html labels' , ( ) => {
imgSnapshotTest (
` flowchart-elk TD
a [ "<strong>Haiya</strong>" ] === > b
` ,
{ htmlLabels : true , flowchart : { htmlLabels : true } , securityLevel : 'loose' }
) ;
} ) ;
it ( '7-elk: should render a flowchart when useMaxWidth is true (default)' , ( ) => {
renderGraph (
` flowchart-elk TD
A [ Christmas ] -- > | Get money | B ( Go shopping )
B -- > C { Let me think }
C -- > | One | D [ Laptop ]
C -- > | Two | E [ iPhone ]
C -- > | Three | F [ fa : fa - car Car ]
` ,
{ flowchart : { useMaxWidth : true } }
) ;
cy . get ( 'svg' ) . should ( ( svg ) => {
expect ( svg ) . to . have . attr ( 'width' , '100%' ) ;
// expect(svg).to.have.attr('height');
// use within because the absolute value can be slightly different depending on the environment ±5%
// const height = parseFloat(svg.attr('height'));
// expect(height).to.be.within(446 * 0.95, 446 * 1.05);
const style = svg . attr ( 'style' ) ;
expect ( style ) . to . match ( /^max-width: [\d.]+px;$/ ) ;
const maxWidthValue = parseFloat ( style . match ( /[\d.]+/g ) . join ( '' ) ) ;
2023-01-12 19:47:39 +05:30
expect ( maxWidthValue ) . to . be . within ( 230 * 0.95 , 230 * 1.05 ) ;
2023-01-12 18:26:08 +05:30
} ) ;
} ) ;
it ( '8-elk: should render a flowchart when useMaxWidth is false' , ( ) => {
renderGraph (
` flowchart-elk TD
A [ Christmas ] -- > | Get money | B ( Go shopping )
B -- > C { Let me think }
C -- > | One | D [ Laptop ]
C -- > | Two | E [ iPhone ]
C -- > | Three | F [ fa : fa - car Car ]
` ,
{ flowchart : { useMaxWidth : false } }
) ;
cy . get ( 'svg' ) . should ( ( svg ) => {
// const height = parseFloat(svg.attr('height'));
const width = parseFloat ( svg . attr ( 'width' ) ) ;
// use within because the absolute value can be slightly different depending on the environment ±5%
// expect(height).to.be.within(446 * 0.95, 446 * 1.05);
2023-01-12 19:47:39 +05:30
expect ( width ) . to . be . within ( 230 * 0.95 , 230 * 1.05 ) ;
2023-01-12 18:26:08 +05:30
expect ( svg ) . to . not . have . attr ( 'style' ) ;
} ) ;
} ) ;
2023-02-20 00:30:27 +05:30
it ( 'V2 elk - 16: Render Stadium shape' , ( ) => {
2023-01-12 18:26:08 +05:30
imgSnapshotTest (
` flowchart-elk TD
A ( [ stadium shape test ] )
A -- > | Get money | B ( [ Go shopping ] )
B -- > C ( [ Let me think ... < br / > Do I want something for work , < br / > something to spend every free second with , < br / > or something to get around ? ] )
C -- > | One | D ( [ Laptop ] )
C -- > | Two | E ( [ iPhone ] )
C -- > | Three | F ( [ Car < br / > wroom wroom ] )
click A "index.html#link-clicked" "link test"
click B testClick "click test"
classDef someclass fill : # f96 ;
class A someclass ;
class C someclass ;
` ,
{ flowchart : { htmlLabels : false } , fontFamily : 'courier' }
) ;
} ) ;
it ( '50-elk: handle nested subgraphs in reverse order' , ( ) => {
imgSnapshotTest (
` flowchart-elk LR
a -- > b
subgraph A
B
end
subgraph B
b
end
` ,
{ htmlLabels : true , flowchart : { htmlLabels : true } , securityLevel : 'loose' }
) ;
} ) ;
it ( '51-elk: handle nested subgraphs in reverse order' , ( ) => {
imgSnapshotTest (
` flowchart-elk LR
a -- > b
subgraph A
B
end
subgraph B
b
end
` ,
{ htmlLabels : true , flowchart : { htmlLabels : true } , securityLevel : 'loose' }
) ;
} ) ;
it ( '52-elk: handle nested subgraphs in several levels' , ( ) => {
imgSnapshotTest (
` flowchart-elk TB
b -- > B
a -- > c
subgraph O
A
end
subgraph B
c
end
subgraph A
a
b
B
end
` ,
{ htmlLabels : true , flowchart : { htmlLabels : true } , securityLevel : 'loose' }
) ;
} ) ;
it ( '53-elk: handle nested subgraphs with edges in and out' , ( ) => {
imgSnapshotTest (
` flowchart-elk TB
internet
nat
routeur
lb1
lb2
compute1
compute2
subgraph project
routeur
nat
subgraph subnet1
compute1
lb1
end
subgraph subnet2
compute2
lb2
end
end
internet -- > routeur
routeur -- > subnet1 & subnet2
subnet1 & subnet2 -- > nat -- > internet
` ,
{ htmlLabels : true , flowchart : { htmlLabels : true } , securityLevel : 'loose' }
) ;
} ) ;
it ( '54-elk: handle nested subgraphs with outgoing links' , ( ) => {
imgSnapshotTest (
` flowchart-elk TD
subgraph main
subgraph subcontainer
subcontainer - child
end
subcontainer - child -- > subcontainer - sibling
end
` ,
{ htmlLabels : true , flowchart : { htmlLabels : true } , securityLevel : 'loose' }
) ;
} ) ;
it ( '55-elk: handle nested subgraphs with outgoing links 2' , ( ) => {
imgSnapshotTest (
` flowchart-elk TD
subgraph one [ One ]
subgraph sub _one [ Sub One ]
_sub _one
end
subgraph sub _two [ Sub Two ]
_sub _two
end
_one
end
% % here , either the first or the second one
sub _one -- > sub _two
_one -- > b
` ,
{ htmlLabels : true , flowchart : { htmlLabels : true } , securityLevel : 'loose' }
) ;
} ) ;
it ( '56-elk: handle nested subgraphs with outgoing links 3' , ( ) => {
imgSnapshotTest (
` flowchart-elk TB
subgraph container _Beta
process _C -- > Process _D
end
subgraph container _Alpha
process _A -- > process _B
process _A -- > | messages | process _C
end
process _B -- > | via _AWSBatch | container _Beta
` ,
{ htmlLabels : true , flowchart : { htmlLabels : true } , securityLevel : 'loose' }
) ;
} ) ;
2023-02-20 00:30:27 +05:30
it ( '57-elk: handle nested subgraphs with outgoing links 4' , ( ) => {
2023-01-12 18:26:08 +05:30
imgSnapshotTest (
` flowchart-elk LR
subgraph A
a -- > b
end
subgraph B
b
end
` ,
{ htmlLabels : true , flowchart : { htmlLabels : true } , securityLevel : 'loose' }
) ;
} ) ;
it ( '57-elk: handle nested subgraphs with outgoing links 2' , ( ) => {
imgSnapshotTest (
` flowchart-elk TB
c1 -- > a2
subgraph one
a1 -- > a2
end
subgraph two
b1 -- > b2
end
subgraph three
c1 -- > c2
end
one -- > two
three -- > two
two -- > c2
` ,
{ htmlLabels : true , flowchart : { htmlLabels : true } , securityLevel : 'loose' }
) ;
} ) ;
it ( '57.x: handle nested subgraphs with outgoing links 5' , ( ) => {
imgSnapshotTest (
` %% this does not produce the desired result
flowchart - elk TB
subgraph container _Beta
process _C -- > Process _D
end
subgraph container _Alpha
process _A -- > process _B
process _B -- > | via _AWSBatch | container _Beta
process _A -- > | messages | process _C
end
` ,
{ htmlLabels : true , flowchart : { htmlLabels : true } , securityLevel : 'loose' }
) ;
} ) ;
it ( '58-elk: handle styling with style expressions' , ( ) => {
imgSnapshotTest (
`
flowchart - elk LR
id1 ( Start ) -- > id2 ( Stop )
style id1 fill : # f9f , stroke : # 333 , stroke - width : 4 px
style id2 fill : # bbf , stroke : # f66 , stroke - width : 2 px , color : # fff , stroke - dasharray : 5 5
` ,
{ htmlLabels : true , flowchart : { htmlLabels : true } , securityLevel : 'loose' }
) ;
} ) ;
it ( '59-elk: handle styling of subgraphs and links' , ( ) => {
imgSnapshotTest (
`
flowchart - elk TD
A [ Christmas ] == > D
A [ Christmas ] -- > | Get money | B ( Go shopping )
A [ Christmas ] == > C
subgraph T [ "Test" ]
A
B
C
end
classDef Test fill : # F84E68 , stroke : # 333 , color : white ;
class A , T Test
classDef TestSub fill : green ;
class T TestSub
linkStyle 0 , 1 color : orange , stroke : orange ;
` ,
{ htmlLabels : true , flowchart : { htmlLabels : true } , securityLevel : 'loose' }
) ;
} ) ;
it ( '60-elk: handle styling for all node shapes - v2' , ( ) => {
imgSnapshotTest (
`
flowchart - elk LR
A [ red text ] -- > | default style | B ( blue text )
C ( [ red text ] ) -- > | default style | D [ [ blue text ] ]
E [ ( red text ) ] -- > | default style | F ( ( blue text ) )
G > red text ] -- > | default style | H { blue text }
I { { red text } } -- > | default style | J [ /blue text/ ]
K [ \ \ red text \ \ ] -- > | default style | L [ / b l u e t e x t \ \ ]
M [ \ \ red text / ] -- > | default style | N [ blue text ] ;
O ( ( ( red text ) ) ) -- > | default style | P ( ( ( blue text ) ) ) ;
linkStyle default color : Sienna ;
style A stroke : # ff0000 , fill : # ffcccc , color : # ff0000 ;
style B stroke : # 0000 ff , fill : # ccccff , color : # 0000 ff ;
style C stroke : # ff0000 , fill : # ffcccc , color : # ff0000 ;
style D stroke : # 0000 ff , fill : # ccccff , color : # 0000 ff ;
style E stroke : # ff0000 , fill : # ffcccc , color : # ff0000 ;
style F stroke : # 0000 ff , fill : # ccccff , color : # 0000 ff ;
style G stroke : # ff0000 , fill : # ffcccc , color : # ff0000 ;
style H stroke : # 0000 ff , fill : # ccccff , color : # 0000 ff ;
style I stroke : # ff0000 , fill : # ffcccc , color : # ff0000 ;
style J stroke : # 0000 ff , fill : # ccccff , color : # 0000 ff ;
style K stroke : # ff0000 , fill : # ffcccc , color : # ff0000 ;
style L stroke : # 0000 ff , fill : # ccccff , color : # 0000 ff ;
style M stroke : # ff0000 , fill : # ffcccc , color : # ff0000 ;
style N stroke : # 0000 ff , fill : # ccccff , color : # 0000 ff ;
style O stroke : # ff0000 , fill : # ffcccc , color : # ff0000 ;
style P stroke : # 0000 ff , fill : # ccccff , color : # 0000 ff ;
` ,
{ htmlLabels : true , flowchart : { htmlLabels : true } , securityLevel : 'loose' , logLevel : 2 }
) ;
} ) ;
it ( '61-elk: fontawesome icons in edge labels' , ( ) => {
imgSnapshotTest (
`
flowchart - elk TD
C -- > | fa : fa - car Car | F [ fa : fa - car Car ]
` ,
{ htmlLabels : true , flowchart : { htmlLabels : true } , securityLevel : 'loose' }
) ;
} ) ;
it ( '62-elk: should render styled subgraphs' , ( ) => {
imgSnapshotTest (
`
flowchart - elk TB
A
B
subgraph foo [ Foo SubGraph ]
C
D
end
subgraph bar [ Bar SubGraph ]
E
F
end
G
A -- > B
B -- > C
C -- > D
B -- > D
D -- > E
E -- > A
E -- > F
F -- > D
F -- > G
B -- > G
G -- > D
style foo fill : # F99 , stroke - width : 2 px , stroke : # F0F , color : darkred
style bar fill : # 999 , stroke - width : 10 px , stroke : # 0 F0 , color : blue
` ,
{ htmlLabels : true , flowchart : { htmlLabels : true } , securityLevel : 'loose' }
) ;
} ) ;
it ( '63-elk: title on subgraphs should be themable' , ( ) => {
imgSnapshotTest (
`
% % { init : { "theme" : "base" , "themeVariables" : { "primaryColor" : "#411d4e" , "titleColor" : "white" , "darkMode" : true } } } % %
flowchart - elk LR
subgraph A
a -- > b
end
subgraph B
i -- > f
end
A -- > B
` ,
{ htmlLabels : true , flowchart : { htmlLabels : true } , securityLevel : 'loose' }
) ;
} ) ;
it ( '65-elk: text-color from classes' , ( ) => {
imgSnapshotTest (
`
flowchart - elk LR
classDef dark fill : # 000 , stroke : # 000 , stroke - width : 4 px , color : # fff
Lorem -- > Ipsum -- > Dolor
class Lorem , Dolor dark
` ,
{ htmlLabels : true , flowchart : { htmlLabels : true } , securityLevel : 'loose' }
) ;
} ) ;
it ( '66-elk: More nested subgraph cases (TB)' , ( ) => {
imgSnapshotTest (
`
flowchart - elk TB
subgraph two
b1
end
subgraph three
c2
end
three -- > two
two -- > c2
` ,
{ htmlLabels : true , flowchart : { htmlLabels : true } , securityLevel : 'loose' }
) ;
} ) ;
it ( '67-elk: More nested subgraph cases (RL)' , ( ) => {
imgSnapshotTest (
`
flowchart - elk RL
subgraph two
b1
end
subgraph three
c2
end
three -- > two
two -- > c2
` ,
{ htmlLabels : true , flowchart : { htmlLabels : true } , securityLevel : 'loose' }
) ;
} ) ;
it ( '68-elk: More nested subgraph cases (BT)' , ( ) => {
imgSnapshotTest (
`
flowchart - elk BT
subgraph two
b1
end
subgraph three
c2
end
three -- > two
two -- > c2
` ,
{ htmlLabels : true , flowchart : { htmlLabels : true } , securityLevel : 'loose' }
) ;
} ) ;
it ( '69-elk: More nested subgraph cases (LR)' , ( ) => {
imgSnapshotTest (
`
flowchart - elk LR
subgraph two
b1
end
subgraph three
c2
end
three -- > two
two -- > c2
` ,
{ htmlLabels : true , flowchart : { htmlLabels : true } , securityLevel : 'loose' }
) ;
} ) ;
it ( '70-elk: Handle nested subgraph cases (TB) link out and link between subgraphs' , ( ) => {
imgSnapshotTest (
`
flowchart - elk TB
subgraph S1
sub1 -- > sub2
end
subgraph S2
sub4
end
S1 -- > S2
sub1 -- > sub4
` ,
{ htmlLabels : true , flowchart : { htmlLabels : true } , securityLevel : 'loose' }
) ;
} ) ;
it ( '71-elk: Handle nested subgraph cases (RL) link out and link between subgraphs' , ( ) => {
imgSnapshotTest (
`
flowchart - elk RL
subgraph S1
sub1 -- > sub2
end
subgraph S2
sub4
end
S1 -- > S2
sub1 -- > sub4
` ,
{ htmlLabels : true , flowchart : { htmlLabels : true } , securityLevel : 'loose' }
) ;
} ) ;
it ( '72-elk: Handle nested subgraph cases (BT) link out and link between subgraphs' , ( ) => {
imgSnapshotTest (
`
flowchart - elk BT
subgraph S1
sub1 -- > sub2
end
subgraph S2
sub4
end
S1 -- > S2
sub1 -- > sub4
` ,
{ htmlLabels : true , flowchart : { htmlLabels : true } , securityLevel : 'loose' }
) ;
} ) ;
it ( '74-elk: Handle nested subgraph cases (RL) link out and link between subgraphs' , ( ) => {
imgSnapshotTest (
`
flowchart - elk RL
subgraph S1
sub1 -- > sub2
end
subgraph S2
sub4
end
S1 -- > S2
sub1 -- > sub4
` ,
{ htmlLabels : true , flowchart : { htmlLabels : true } , securityLevel : 'loose' }
) ;
} ) ;
it ( '74-elk: Handle labels for multiple edges from and to the same couple of nodes' , ( ) => {
imgSnapshotTest (
`
flowchart - elk RL
subgraph one
a1 -- l1 -- > a2
a1 -- l2 -- > a2
end
` ,
{ htmlLabels : true , flowchart : { htmlLabels : true } , securityLevel : 'loose' }
) ;
} ) ;
it ( '76-elk: handle unicode encoded character with HTML labels true' , ( ) => {
imgSnapshotTest (
` flowchart-elk TB
a { { "Lorem 'ipsum' dolor 'sit' amet, 'consectetur' adipiscing 'elit'." } }
-- > b { { "Lorem #quot;ipsum#quot; dolor #quot;sit#quot; amet,#quot;consectetur#quot; adipiscing #quot;elit#quot;." } }
` ,
{ htmlLabels : true , flowchart : { htmlLabels : true } , securityLevel : 'loose' }
) ;
} ) ;
it ( '2050-elk: handling of different rendering direction in subgraphs' , ( ) => {
imgSnapshotTest (
`
flowchart - elk LR
subgraph TOP
direction TB
subgraph B1
direction RL
i1 -- > f1
end
subgraph B2
direction BT
i2 -- > f2
end
end
A -- > TOP -- > B
B1 -- > B2
` ,
{ htmlLabels : true , flowchart : { htmlLabels : true } , securityLevel : 'loose' }
) ;
} ) ;
it ( '2388-elk: handling default in the node name' , ( ) => {
imgSnapshotTest (
`
flowchart - elk LR
default - index . js -- > dot . template . js
index . js -- > module - utl . js
` ,
{ htmlLabels : true , flowchart : { htmlLabels : true } , securityLevel : 'loose' }
) ;
} ) ;
it ( '2824-elk: Clipping of edges' , ( ) => {
imgSnapshotTest (
`
flowchart - elk TD
A -- > B
A -- > C
B -- > C
` ,
{ htmlLabels : true , flowchart : { htmlLabels : true } , securityLevel : 'loose' }
) ;
} ) ;
it ( '1433-elk: should render a titled flowchart with titleTopMargin set to 0' , ( ) => {
imgSnapshotTest (
` ---
title : Simple flowchart
-- -
flowchart - elk TD
A -- > B
` ,
2023-06-27 20:58:39 +03:00
{ flowchart : { titleTopMargin : 0 } }
2023-01-12 18:26:08 +05:30
) ;
} ) ;
2023-06-02 22:10:39 +03:00
it ( 'elk: should include classes on the edges' , ( ) => {
renderGraph (
` flowchart-elk TD
A -- > B -- > C -- > D
` ,
{ }
) ;
cy . get ( 'svg' ) . should ( ( svg ) => {
const edges = svg . querySelectorAll ( '.edges > path' ) ;
edges . forEach ( ( edge ) => {
expect ( edge ) . to . have . class ( 'flowchart-link' ) ;
} ) ;
} ) ;
} ) ;
2023-04-03 12:12:51 +02:00
describe ( 'Markdown strings flowchart-elk (#4220)' , ( ) => {
describe ( 'html labels' , ( ) => {
it ( 'With styling and classes' , ( ) => {
imgSnapshotTest (
` %%{init: {"flowchart": {"htmlLabels": true}} }%%
flowchart - elk LR
A : : : someclass -- > B [ "\`The **cat** in the hat\`" ] : : : someclass
id1 ( Start ) -- > id2 ( Stop )
style id1 fill : # f9f , stroke : # 333 , stroke - width : 4 px
style id2 fill : # bbf , stroke : # f66 , stroke - width : 2 px , color : # fff , stroke - dasharray : 5 5
classDef someclass fill : # f96
` ,
2023-06-27 20:58:39 +03:00
{ flowchart : { titleTopMargin : 0 } }
2023-04-03 12:12:51 +02:00
) ;
} ) ;
it ( 'With formatting in a node' , ( ) => {
imgSnapshotTest (
` %%{init: {"flowchart": {"htmlLabels": true}} }%%
flowchart - elk LR
a { "\`The **cat** in the hat\`" } -- 1 o -- > b
a -- 2 o -- > c
a -- 3 o -- > d
g -- 2 i -- > a
d -- 1 i -- > a
h -- 3 i -- > a
b -- > d ( The dog in the hog )
c -- > d
` ,
2023-06-27 20:58:39 +03:00
{ flowchart : { titleTopMargin : 0 } }
2023-04-03 12:12:51 +02:00
) ;
} ) ;
it ( 'New line in node and formatted edge label' , ( ) => {
imgSnapshotTest (
` %%{init: {"flowchart": {"htmlLabels": true}} }%%
flowchart - elk LR
b ( " \ ` The dog in **the** hog.(1)
NL \ ` ") --" \` 1o **bold** \` "--> c
` ,
2023-06-27 20:58:39 +03:00
{ flowchart : { titleTopMargin : 0 } }
2023-04-03 12:12:51 +02:00
) ;
} ) ;
it ( 'Wrapping long text with a new line' , ( ) => {
imgSnapshotTest (
` %%{init: {"flowchart": {"htmlLabels": true}} }%%
flowchart - elk LR
b ( \ ` The dog in **the** hog.(1).. a a a a *very long text* about it
Word !
Another line with many , many words . Another line with many , many words . Another line with many , many words . Another line with many , many words . Another line with many , many words . Another line with many , many words . Another line with many , many words . Another line with many , many words . \ ` ) --> c
` ,
2023-06-27 20:58:39 +03:00
{ flowchart : { titleTopMargin : 0 } }
2023-04-03 12:12:51 +02:00
) ;
} ) ;
it ( 'Sub graphs and markdown strings' , ( ) => {
imgSnapshotTest (
` %%{init: {"flowchart": {"htmlLabels": true}} }%%
flowchart - elk LR
subgraph "One"
a ( " \ ` The **cat**
in the hat \ ` ") -- "1o" --> b{{" \` The **dog** in the hog \` "}}
end
subgraph "\`**Two**\`"
c ( " \ ` The **cat**
in the hat \ ` ") -- " \` 1o **ipa** \` " --> d("The dog in the hog")
end
` ,
2023-06-27 20:58:39 +03:00
{ flowchart : { titleTopMargin : 0 } }
2023-04-03 12:12:51 +02:00
) ;
} ) ;
} ) ;
describe ( 'svg text labels' , ( ) => {
it ( 'With styling and classes' , ( ) => {
imgSnapshotTest (
` %%{init: {"flowchart": {"htmlLabels": false}} }%%
flowchart - elk LR
A : : : someclass -- > B [ "\`The **cat** in the hat\`" ] : : : someclass
id1 ( Start ) -- > id2 ( Stop )
style id1 fill : # f9f , stroke : # 333 , stroke - width : 4 px
style id2 fill : # bbf , stroke : # f66 , stroke - width : 2 px , color : # fff , stroke - dasharray : 5 5
classDef someclass fill : # f96
` ,
2023-06-27 20:58:39 +03:00
{ flowchart : { titleTopMargin : 0 } }
2023-04-03 12:12:51 +02:00
) ;
} ) ;
it ( 'With formatting in a node' , ( ) => {
imgSnapshotTest (
` %%{init: {"flowchart": {"htmlLabels": false}} }%%
flowchart - elk LR
a { "\`The **cat** in the hat\`" } -- 1 o -- > b
a -- 2 o -- > c
a -- 3 o -- > d
g -- 2 i -- > a
d -- 1 i -- > a
h -- 3 i -- > a
b -- > d ( The dog in the hog )
c -- > d
` ,
2023-06-27 20:58:39 +03:00
{ flowchart : { titleTopMargin : 0 } }
2023-04-03 12:12:51 +02:00
) ;
} ) ;
it ( 'New line in node and formatted edge label' , ( ) => {
imgSnapshotTest (
` %%{init: {"flowchart": {"htmlLabels": false}} }%%
flowchart - elk LR
b ( " \ ` The dog in **the** hog.(1)
NL \ ` ") --" \` 1o **bold** \` "--> c
` ,
2023-06-27 20:58:39 +03:00
{ flowchart : { titleTopMargin : 0 } }
2023-04-03 12:12:51 +02:00
) ;
} ) ;
it ( 'Wrapping long text with a new line' , ( ) => {
imgSnapshotTest (
` %%{init: {"flowchart": {"htmlLabels": false}} }%%
flowchart - elk LR
b ( " \ ` The dog in **the** hog.(1).. a a a a *very long text* about it
Word !
Another line with many , many words . Another line with many , many words . Another line with many , many words . Another line with many , many words . Another line with many , many words . Another line with many , many words . Another line with many , many words . Another line with many , many words . \ ` ") --> c
` ,
2023-06-27 20:58:39 +03:00
{ flowchart : { titleTopMargin : 0 } }
2023-04-03 12:12:51 +02:00
) ;
} ) ;
it ( 'Sub graphs and markdown strings' , ( ) => {
imgSnapshotTest (
` %%{init: {"flowchart": {"htmlLabels": false}} }%%
flowchart - elk LR
subgraph "One"
a ( " \ ` The **cat**
in the hat \ ` ") -- "1o" --> b{{" \` The **dog** in the hog \` "}}
end
subgraph "\`**Two**\`"
c ( " \ ` The **cat**
in the hat \ ` ") -- " \` 1o **ipa** \` " --> d("The dog in the hog")
end
` ,
2023-06-27 20:58:39 +03:00
{ flowchart : { titleTopMargin : 0 } }
2023-04-03 12:12:51 +02:00
) ;
} ) ;
} ) ;
} ) ;
2023-01-12 18:26:08 +05:30
} ) ;