collab/mermaid/cypress/integration/rendering/classDiagram-handDrawn-v3.spec.jsblame
View source
6dd74de1import { imgSnapshotTest } from '../../helpers/util.ts';
6dd74de2describe('Class diagram V3 HD', () => {
6dd74de3 it('HD-0: should render a simple class diagram', () => {
6dd74de4 imgSnapshotTest(
6dd74de5 `
6dd74de6 classDiagram
6dd74de7
6dd74de8 classA -- classB : Inheritance
6dd74de9 classA -- classC : link
6dd74de10 classC -- classD : link
6dd74de11 classB -- classD
6dd74de12
6dd74de13 `,
6dd74de14 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de15 );
6dd74de16 });
6dd74de17
6dd74de18 it('HD-1: should render a simple class diagram', () => {
6dd74de19 imgSnapshotTest(
6dd74de20 `
6dd74de21 classDiagram
6dd74de22 Class01 <|-- AveryLongClass : Cool
6dd74de23 &lt;&lt;interface&gt;&gt; Class01
6dd74de24 Class03 *-- Class04
6dd74de25 Class05 o-- Class06
6dd74de26 Class07 .. Class08
6dd74de27 Class09 --> C2 : Where am i?
6dd74de28 Class09 --* C3
6dd74de29 Class09 --|> Class07
6dd74de30 Class12 <|.. Class08
6dd74de31 Class11 ..>Class12
6dd74de32 Class07 : equals()
6dd74de33 Class07 : Object[] elementData
6dd74de34 Class01 : size()
6dd74de35 Class01 : int chimp
6dd74de36 Class01 : int gorilla
6dd74de37 Class01 : -int privateChimp
6dd74de38 Class01 : +int publicGorilla
6dd74de39 Class01 : #int protectedMarmoset
6dd74de40 Class08 <--> C2: Cool label
6dd74de41 class Class10 {
6dd74de42 &lt;&lt;service&gt;&gt;
6dd74de43 int id
6dd74de44 test()
6dd74de45 }
6dd74de46 `,
6dd74de47 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de48 );
6dd74de49 });
6dd74de50
6dd74de51 it('HD-1.1: should render a simple class diagram without htmlLabels', () => {
6dd74de52 imgSnapshotTest(
6dd74de53 `
6dd74de54 classDiagram
6dd74de55 Class01 <|-- AveryLongClass : Cool
6dd74de56 &lt;&lt;interface&gt;&gt; Class01
6dd74de57 Class03 *-- Class04
6dd74de58 Class05 o-- Class06
6dd74de59 Class07 .. Class08
6dd74de60 Class09 --> C2 : Where am i?
6dd74de61 Class09 --* C3
6dd74de62 Class09 --|> Class07
6dd74de63 Class12 <|.. Class08
6dd74de64 Class11 ..>Class12
6dd74de65 Class07 : equals()
6dd74de66 Class07 : Object[] elementData
6dd74de67 Class01 : size()
6dd74de68 Class01 : int chimp
6dd74de69 Class01 : int gorilla
6dd74de70 Class01 : -int privateChimp
6dd74de71 Class01 : +int publicGorilla
6dd74de72 Class01 : #int protectedMarmoset
6dd74de73 Class08 <--> C2: Cool label
6dd74de74 class Class10 {
6dd74de75 &lt;&lt;service&gt;&gt;
6dd74de76 int id
6dd74de77 test()
6dd74de78 }
6dd74de79 `,
6dd74de80 { logLevel: 1, htmlLabels: false, look: 'handDrawn' }
6dd74de81 );
6dd74de82 });
6dd74de83
6dd74de84 it('HD-2: should render a simple class diagrams with cardinality', () => {
6dd74de85 imgSnapshotTest(
6dd74de86 `
6dd74de87 classDiagram
6dd74de88 Class01 "1" <|--|> "*" AveryLongClass : Cool
6dd74de89 &lt;&lt;interface&gt;&gt; Class01
6dd74de90 Class03 "1" *-- "*" Class04
6dd74de91 Class05 "1" o-- "many" Class06
6dd74de92 Class07 "1" .. "*" Class08
6dd74de93 Class09 "1" --> "*" C2 : Where am i?
6dd74de94 Class09 "*" --* "*" C3
6dd74de95 Class09 "1" --|> "1" Class07
6dd74de96 Class07 : equals()
6dd74de97 Class07 : Object[] elementData
6dd74de98 Class01 : size()
6dd74de99 Class01 : int chimp
6dd74de100 Class01 : int gorilla
6dd74de101 Class08 "1" <--> "*" C2: Cool label
6dd74de102 class Class10 {
6dd74de103 &lt;&lt;service&gt;&gt;
6dd74de104 int id
6dd74de105 test()
6dd74de106 }
6dd74de107 `,
6dd74de108 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de109 );
6dd74de110 });
6dd74de111
6dd74de112 it('HD-2.1: should render a simple class diagrams with cardinality without htmlLabels', () => {
6dd74de113 imgSnapshotTest(
6dd74de114 `
6dd74de115 classDiagram
6dd74de116 Class01 "1" <|--|> "*" AveryLongClass : Cool
6dd74de117 &lt;&lt;interface&gt;&gt; Class01
6dd74de118 Class03 "1" *-- "*" Class04
6dd74de119 Class05 "1" o-- "many" Class06
6dd74de120 Class07 "1" .. "*" Class08
6dd74de121 Class09 "1" --> "*" C2 : Where am i?
6dd74de122 Class09 "*" --* "*" C3
6dd74de123 Class09 "1" --|> "1" Class07
6dd74de124 Class07 : equals()
6dd74de125 Class07 : Object[] elementData
6dd74de126 Class01 : size()
6dd74de127 Class01 : int chimp
6dd74de128 Class01 : int gorilla
6dd74de129 Class08 "1" <--> "*" C2: Cool label
6dd74de130 class Class10 {
6dd74de131 &lt;&lt;service&gt;&gt;
6dd74de132 int id
6dd74de133 test()
6dd74de134 }
6dd74de135 `,
6dd74de136 { logLevel: 1, htmlLabels: false, look: 'handDrawn' }
6dd74de137 );
6dd74de138 });
6dd74de139
6dd74de140 it('HD-2.2 should render a simple class diagram with different visibilities', () => {
6dd74de141 imgSnapshotTest(
6dd74de142 `
6dd74de143 classDiagram
6dd74de144 Class01 <|-- AveryLongClass : Cool
6dd74de145 &lt;&lt;interface&gt;&gt; Class01
6dd74de146 Class01 : -privateMethod()
6dd74de147 Class01 : +publicMethod()
6dd74de148 Class01 : #protectedMethod()
6dd74de149 Class01 : -int privateChimp
6dd74de150 Class01 : +int publicGorilla
6dd74de151 Class01 : #int protectedMarmoset
6dd74de152 `,
6dd74de153 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de154 );
6dd74de155 });
6dd74de156 it('HD-2.3 should render a simple class diagram with different visibilities without htmlLabels', () => {
6dd74de157 imgSnapshotTest(
6dd74de158 `
6dd74de159 classDiagram
6dd74de160 Class01 <|-- AveryLongClass : Cool
6dd74de161 &lt;&lt;interface&gt;&gt; Class01
6dd74de162 Class01 : -privateMethod()
6dd74de163 Class01 : +publicMethod()
6dd74de164 Class01 : #protectedMethod()
6dd74de165 Class01 : -int privateChimp
6dd74de166 Class01 : +int publicGorilla
6dd74de167 Class01 : #int protectedMarmoset
6dd74de168 `,
6dd74de169 { logLevel: 1, htmlLabels: false, look: 'handDrawn' }
6dd74de170 );
6dd74de171 });
6dd74de172
6dd74de173 it('HD-3: should render multiple class diagrams', () => {
6dd74de174 imgSnapshotTest(
6dd74de175 [
6dd74de176 `
6dd74de177 classDiagram
6dd74de178 Class01 "1" <|--|> "*" AveryLongClass : Cool
6dd74de179 &lt;&lt;interface&gt;&gt; Class01
6dd74de180 Class03 "1" *-- "*" Class04
6dd74de181 Class05 "1" o-- "many" Class06
6dd74de182 Class07 "1" .. "*" Class08
6dd74de183 Class09 "1" --> "*" C2 : Where am i?
6dd74de184 Class09 "*" --* "*" C3
6dd74de185 Class09 "1" --|> "1" Class07
6dd74de186 Class07 : equals()
6dd74de187 Class07 : Object[] elementData
6dd74de188 Class01 : size()
6dd74de189 Class01 : int chimp
6dd74de190 Class01 : int gorilla
6dd74de191 Class08 "1" <--> "*" C2: Cool label
6dd74de192 class Class10 {
6dd74de193 &lt;&lt;service&gt;&gt;
6dd74de194 int id
6dd74de195 test()
6dd74de196 }
6dd74de197 `,
6dd74de198 `
6dd74de199 classDiagram
6dd74de200 Class01 "1" <|--|> "*" AveryLongClass : Cool
6dd74de201 &lt;&lt;interface&gt;&gt; Class01
6dd74de202 Class03 "1" *-- "*" Class04
6dd74de203 Class05 "1" o-- "many" Class06
6dd74de204 Class07 "1" .. "*" Class08
6dd74de205 Class09 "1" --> "*" C2 : Where am i?
6dd74de206 Class09 "*" --* "*" C3
6dd74de207 Class09 "1" --|> "1" Class07
6dd74de208 Class07 : equals()
6dd74de209 Class07 : Object[] elementData
6dd74de210 Class01 : size()
6dd74de211 Class01 : int chimp
6dd74de212 Class01 : int gorilla
6dd74de213 Class08 "1" <--> "*" C2: Cool label
6dd74de214 class Class10 {
6dd74de215 &lt;&lt;service&gt;&gt;
6dd74de216 int id
6dd74de217 test()
6dd74de218 }
6dd74de219 `,
6dd74de220 ],
6dd74de221 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de222 );
6dd74de223 });
6dd74de224
6dd74de225 it('HD-4: should render a simple class diagram with comments', () => {
6dd74de226 imgSnapshotTest(
6dd74de227 `
6dd74de228 classDiagram
6dd74de229 %% this is a comment
6dd74de230 Class01 <|-- AveryLongClass : Cool
6dd74de231 &lt;&lt;interface&gt;&gt; Class01
6dd74de232 Class03 *-- Class04
6dd74de233 Class05 o-- Class06
6dd74de234 Class07 .. Class08
6dd74de235 Class09 --> C2 : Where am i?
6dd74de236 Class09 --* C3
6dd74de237 Class09 --|> Class07
6dd74de238 Class07 : equals()
6dd74de239 Class07 : Object[] elementData
6dd74de240 Class01 : size()
6dd74de241 Class01 : int chimp
6dd74de242 Class01 : int gorilla
6dd74de243 Class08 <--> C2: Cool label
6dd74de244 class Class10 {
6dd74de245 &lt;&lt;service&gt;&gt;
6dd74de246 int id
6dd74de247 test()
6dd74de248 }
6dd74de249 `,
6dd74de250 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de251 );
6dd74de252 });
6dd74de253
6dd74de254 it('HD-5: should render a simple class diagram with abstract method', () => {
6dd74de255 imgSnapshotTest(
6dd74de256 `
6dd74de257 classDiagram
6dd74de258 Class01 <|-- AveryLongClass : Cool
6dd74de259 Class01 : someMethod()*
6dd74de260 `,
6dd74de261 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de262 );
6dd74de263 });
6dd74de264
6dd74de265 it('HD-5.1: should render a simple class diagram with abstract method without htmlLabels', () => {
6dd74de266 imgSnapshotTest(
6dd74de267 `
6dd74de268 classDiagram
6dd74de269 Class01 <|-- AveryLongClass : Cool
6dd74de270 Class01 : someMethod()*
6dd74de271 `,
6dd74de272 { logLevel: 1, htmlLabels: false, look: 'handDrawn' }
6dd74de273 );
6dd74de274 });
6dd74de275
6dd74de276 it('HD-6: should render a simple class diagram with static method', () => {
6dd74de277 imgSnapshotTest(
6dd74de278 `
6dd74de279 classDiagram
6dd74de280 Class01 <|-- AveryLongClass : Cool
6dd74de281 Class01 : someMethod()$
6dd74de282 `,
6dd74de283 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de284 );
6dd74de285 });
6dd74de286
6dd74de287 it('HD-6.1: should render a simple class diagram with static method without htmlLabels', () => {
6dd74de288 imgSnapshotTest(
6dd74de289 `
6dd74de290 classDiagram
6dd74de291 Class01 <|-- AveryLongClass : Cool
6dd74de292 Class01 : someMethod()$
6dd74de293 `,
6dd74de294 { logLevel: 1, htmlLabels: false, look: 'handDrawn' }
6dd74de295 );
6dd74de296 });
6dd74de297
6dd74de298 it('HD-7: should render a simple class diagram with Generic class', () => {
6dd74de299 imgSnapshotTest(
6dd74de300 `
6dd74de301 classDiagram
6dd74de302 class Class01~T~
6dd74de303 Class01 : size()
6dd74de304 Class01 : int chimp
6dd74de305 Class01 : int gorilla
6dd74de306 Class08 <--> C2: Cool label
6dd74de307 class Class10~T~ {
6dd74de308 &lt;&lt;service&gt;&gt;
6dd74de309 int id
6dd74de310 test()
6dd74de311 }
6dd74de312 `,
6dd74de313 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de314 );
6dd74de315 });
6dd74de316
6dd74de317 it('HD-7.1: should render a simple class diagram with Generic class without htmlLabels', () => {
6dd74de318 imgSnapshotTest(
6dd74de319 `
6dd74de320 classDiagram
6dd74de321 class Class01~T~
6dd74de322 Class01 : size()
6dd74de323 Class01 : int chimp
6dd74de324 Class01 : int gorilla
6dd74de325 Class08 <--> C2: Cool label
6dd74de326 class Class10~T~ {
6dd74de327 &lt;&lt;service&gt;&gt;
6dd74de328 int id
6dd74de329 test()
6dd74de330 }
6dd74de331 `,
6dd74de332 { logLevel: 1, htmlLabels: false, look: 'handDrawn' }
6dd74de333 );
6dd74de334 });
6dd74de335
6dd74de336 it('HD-8: should render a simple class diagram with Generic class and relations', () => {
6dd74de337 imgSnapshotTest(
6dd74de338 `
6dd74de339 classDiagram
6dd74de340 Class01~T~ <|-- AveryLongClass : Cool
6dd74de341 Class03~T~ *-- Class04~T~
6dd74de342 Class01 : size()
6dd74de343 Class01 : int chimp
6dd74de344 Class01 : int gorilla
6dd74de345 Class08 <--> C2: Cool label
6dd74de346 class Class10~T~ {
6dd74de347 &lt;&lt;service&gt;&gt;
6dd74de348 int id
6dd74de349 test()
6dd74de350 }
6dd74de351 `,
6dd74de352 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de353 );
6dd74de354 });
6dd74de355
6dd74de356 it('HD-9: should render a simple class diagram with clickable link', () => {
6dd74de357 imgSnapshotTest(
6dd74de358 `
6dd74de359 classDiagram
6dd74de360 Class01~T~ <|-- AveryLongClass : Cool
6dd74de361 Class03~T~ *-- Class04~T~
6dd74de362 Class01 : size()
6dd74de363 Class01 : int chimp
6dd74de364 Class01 : int gorilla
6dd74de365 Class08 <--> C2: Cool label
6dd74de366 class Class10~T~ {
6dd74de367 &lt;&lt;service&gt;&gt;
6dd74de368 int id
6dd74de369 test()
6dd74de370 }
6dd74de371 link Class01 "google.com" "A Tooltip"
6dd74de372 `,
6dd74de373 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de374 );
6dd74de375 });
6dd74de376
6dd74de377 it('HD-10: should render a simple class diagram with clickable callback', () => {
6dd74de378 imgSnapshotTest(
6dd74de379 `
6dd74de380 classDiagram
6dd74de381 Class01~T~ <|-- AveryLongClass : Cool
6dd74de382 Class03~T~ *-- Class04~T~
6dd74de383 Class01 : size()
6dd74de384 Class01 : int chimp
6dd74de385 Class01 : int gorilla
6dd74de386 Class08 <--> C2: Cool label
6dd74de387 class Class10~T~ {
6dd74de388 &lt;&lt;service&gt;&gt;
6dd74de389 int id
6dd74de390 test()
6dd74de391 }
6dd74de392 callback Class01 "functionCall" "A Tooltip"
6dd74de393 `,
6dd74de394 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de395 );
6dd74de396 });
6dd74de397
6dd74de398 it('HD-11: should render a simple class diagram with return type on method', () => {
6dd74de399 imgSnapshotTest(
6dd74de400 `
6dd74de401 classDiagram
6dd74de402 class Class10~T~ {
6dd74de403 int[] id
6dd74de404 test(int[] ids) bool
6dd74de405 testArray() bool[]
6dd74de406 }
6dd74de407 `,
6dd74de408 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de409 );
6dd74de410 });
6dd74de411
6dd74de412 it('HD-11.1: should render a simple class diagram with return type on method without htmlLabels', () => {
6dd74de413 imgSnapshotTest(
6dd74de414 `
6dd74de415 classDiagram
6dd74de416 class Class10~T~ {
6dd74de417 int[] id
6dd74de418 test(int[] ids) bool
6dd74de419 testArray() bool[]
6dd74de420 }
6dd74de421 `,
6dd74de422 { logLevel: 1, htmlLabels: false, look: 'handDrawn' }
6dd74de423 );
6dd74de424 });
6dd74de425
6dd74de426 it('HD-12: should render a simple class diagram with generic types', () => {
6dd74de427 imgSnapshotTest(
6dd74de428 `
6dd74de429 classDiagram
6dd74de430 class Class10~T~ {
6dd74de431 int[] id
6dd74de432 List~int~ ids
6dd74de433 test(List~int~ ids) List~bool~
6dd74de434 testArray() bool[]
6dd74de435 }
6dd74de436 `,
6dd74de437 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de438 );
6dd74de439 });
6dd74de440
6dd74de441 it('HD-12.1: should render a simple class diagram with generic types without htmlLabels', () => {
6dd74de442 imgSnapshotTest(
6dd74de443 `
6dd74de444 classDiagram
6dd74de445 class Class10~T~ {
6dd74de446 int[] id
6dd74de447 List~int~ ids
6dd74de448 test(List~int~ ids) List~bool~
6dd74de449 testArray() bool[]
6dd74de450 }
6dd74de451 `,
6dd74de452 { logLevel: 1, htmlLabels: false, look: 'handDrawn' }
6dd74de453 );
6dd74de454 });
6dd74de455
6dd74de456 it('HD-13: should render a simple class diagram with css classes applied', () => {
6dd74de457 imgSnapshotTest(
6dd74de458 `
6dd74de459 classDiagram
6dd74de460 class Class10 {
6dd74de461 int[] id
6dd74de462 List~int~ ids
6dd74de463 test(List~int~ ids) List~bool~
6dd74de464 testArray() bool[]
6dd74de465 }
6dd74de466
6dd74de467 cssClass "Class10" exClass2
6dd74de468 `,
6dd74de469 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de470 );
6dd74de471 });
6dd74de472
6dd74de473 it('HD-14: should render a simple class diagram with css classes applied directly', () => {
6dd74de474 imgSnapshotTest(
6dd74de475 `
6dd74de476 classDiagram
6dd74de477 class Class10:::exClass2 {
6dd74de478 int[] id
6dd74de479 List~int~ ids
6dd74de480 test(List~int~ ids) List~bool~
6dd74de481 testArray() bool[]
6dd74de482 }
6dd74de483 `,
6dd74de484 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de485 );
6dd74de486 });
6dd74de487
6dd74de488 it('HD-15: should render a simple class diagram with css classes applied two multiple classes', () => {
6dd74de489 imgSnapshotTest(
6dd74de490 `
6dd74de491 classDiagram
6dd74de492 class Class10
6dd74de493 class Class20
6dd74de494
6dd74de495 cssClass "Class10, class20" exClass2
6dd74de496 `,
6dd74de497 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de498 );
6dd74de499 });
6dd74de500
6dd74de501 it('HD-16a: should render a simple class diagram with static field', () => {
6dd74de502 imgSnapshotTest(
6dd74de503 `
6dd74de504 classDiagram
6dd74de505 class Foo {
6dd74de506 +String bar$
6dd74de507 }
6dd74de508 `,
6dd74de509 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de510 );
6dd74de511 });
6dd74de512
6dd74de513 it('HD-16b: should handle the direction statement with TB', () => {
6dd74de514 imgSnapshotTest(
6dd74de515 `
6dd74de516 classDiagram
6dd74de517 direction TB
6dd74de518 class Student {
6dd74de519 -idCard : IdCard
6dd74de520 }
6dd74de521 class IdCard{
6dd74de522 -id : int
6dd74de523 -name : string
6dd74de524 }
6dd74de525 class Bike{
6dd74de526 -id : int
6dd74de527 -name : string
6dd74de528 }
6dd74de529 Student "1" --o "1" IdCard : carries
6dd74de530 Student "1" --o "1" Bike : rides
6dd74de531
6dd74de532 `,
6dd74de533 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de534 );
6dd74de535 });
6dd74de536 it('HD-17a: should handle the direction statement with BT', () => {
6dd74de537 imgSnapshotTest(
6dd74de538 `
6dd74de539 classDiagram
6dd74de540 direction BT
6dd74de541 class Student {
6dd74de542 -idCard : IdCard
6dd74de543 }
6dd74de544 class IdCard{
6dd74de545 -id : int
6dd74de546 -name : string
6dd74de547 }
6dd74de548 class Bike{
6dd74de549 -id : int
6dd74de550 -name : string
6dd74de551 }
6dd74de552 Student "1" --o "1" IdCard : carries
6dd74de553 Student "1" --o "1" Bike : rides
6dd74de554
6dd74de555 `,
6dd74de556 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de557 );
6dd74de558 });
6dd74de559 it('HD-17b: should handle the direction statement with RL', () => {
6dd74de560 imgSnapshotTest(
6dd74de561 `
6dd74de562 classDiagram
6dd74de563 direction RL
6dd74de564 class Student {
6dd74de565 -idCard : IdCard
6dd74de566 }
6dd74de567 class IdCard{
6dd74de568 -id : int
6dd74de569 -name : string
6dd74de570 }
6dd74de571 class Bike{
6dd74de572 -id : int
6dd74de573 -name : string
6dd74de574 }
6dd74de575 Student "1" --o "1" IdCard : carries
6dd74de576 Student "1" --o "1" Bike : rides
6dd74de577
6dd74de578 `,
6dd74de579 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de580 );
6dd74de581 });
6dd74de582
6dd74de583 it('HD-18a: should handle the direction statement with LR', () => {
6dd74de584 imgSnapshotTest(
6dd74de585 `
6dd74de586 classDiagram
6dd74de587 direction LR
6dd74de588 class Student {
6dd74de589 -idCard : IdCard
6dd74de590 }
6dd74de591 class IdCard{
6dd74de592 -id : int
6dd74de593 -name : string
6dd74de594 }
6dd74de595 class Bike{
6dd74de596 -id : int
6dd74de597 -name : string
6dd74de598 }
6dd74de599 Student "1" --o "1" IdCard : carries
6dd74de600 Student "1" --o "1" Bike : rides
6dd74de601
6dd74de602 `,
6dd74de603 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de604 );
6dd74de605 });
6dd74de606
6dd74de607 it('HD-18b: should render a simple class diagram with notes', () => {
6dd74de608 imgSnapshotTest(
6dd74de609 `
6dd74de610 classDiagram
6dd74de611 note "I love this diagram!\nDo you love it?"
6dd74de612 class Class10 {
6dd74de613 int id
6dd74de614 size()
6dd74de615 }
6dd74de616 note for Class10 "Cool class\nI said it's very cool class!"
6dd74de617
6dd74de618 `,
6dd74de619 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de620 );
6dd74de621 });
6dd74de622
6dd74de623 it('HD-1433: should render a simple class with a title', () => {
6dd74de624 imgSnapshotTest(
6dd74de625 `---
6dd74de626title: simple class diagram
6dd74de627---
6dd74de628classDiagram
6dd74de629class Class10
6dd74de630`,
6dd74de631 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de632 );
6dd74de633 });
6dd74de634
6dd74de635 it('HD: should render a class with text label', () => {
6dd74de636 imgSnapshotTest(
6dd74de637 `classDiagram
6dd74de638 class C1["Class 1 with text label"]
6dd74de639 C1 --> C2`,
6dd74de640 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de641 );
6dd74de642 });
6dd74de643
6dd74de644 it('HD: should render two classes with text labels', () => {
6dd74de645 imgSnapshotTest(
6dd74de646 `classDiagram
6dd74de647 class C1["Class 1 with text label"]
6dd74de648 class C2["Class 2 with chars @?"]
6dd74de649 C1 --> C2`,
6dd74de650 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de651 );
6dd74de652 });
6dd74de653 it('HD: should render a class with a text label, members and annotation', () => {
6dd74de654 imgSnapshotTest(
6dd74de655 `classDiagram
6dd74de656 class C1["Class 1 with text label"] {
6dd74de657 &lt;&lt;interface&gt;&gt;
6dd74de658 +member1
6dd74de659 }
6dd74de660 C1 --> C2`,
6dd74de661 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de662 );
6dd74de663 });
6dd74de664 it('HD: should render multiple classes with same text labels', () => {
6dd74de665 imgSnapshotTest(
6dd74de666 `classDiagram
6dd74de667class C1["Class with text label"]
6dd74de668class C2["Class with text label"]
6dd74de669class C3["Class with text label"]
6dd74de670C1 --> C2
6dd74de671C3 ..> C2
6dd74de672 `,
6dd74de673 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de674 );
6dd74de675 });
6dd74de676 it('HD: should render classes with different text labels', () => {
6dd74de677 imgSnapshotTest(
6dd74de678 `classDiagram
6dd74de679class C1["OneWord"]
6dd74de680class C2["With, Comma"]
6dd74de681class C3["With (Brackets)"]
6dd74de682class C4["With [Brackets]"]
6dd74de683class C5["With {Brackets}"]
6dd74de684class C7["With 1 number"]
6dd74de685class C8["With . period..."]
6dd74de686class C9["With - dash"]
6dd74de687class C10["With _ underscore"]
6dd74de688class C11["With ' single quote"]
6dd74de689class C12["With ~!@#$%^&*()_+=-/?"]
6dd74de690class C13["With Città foreign language"]
6dd74de691 `,
6dd74de692 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de693 );
6dd74de694 });
6dd74de695
6dd74de696 it('HD: should render classLabel if class has already been defined earlier', () => {
6dd74de697 imgSnapshotTest(
6dd74de698 `classDiagram
6dd74de699 Animal <|-- Duck
6dd74de700 class Duck["Duck with text label"]
6dd74de701`,
6dd74de702 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de703 );
6dd74de704 });
6dd74de705 it('HD: should add classes namespaces', function () {
6dd74de706 imgSnapshotTest(
6dd74de707 `
6dd74de708 classDiagram
6dd74de709 namespace Namespace1 {
6dd74de710 class C1
6dd74de711 class C2
6dd74de712 }
6dd74de713 C1 --> C2
6dd74de714 class C3
6dd74de715 class C4
6dd74de716 `,
6dd74de717 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de718 );
6dd74de719 });
6dd74de720 it('HD: should render a simple class diagram with no members', () => {
6dd74de721 imgSnapshotTest(
6dd74de722 `
6dd74de723 classDiagram
6dd74de724 class Class10
6dd74de725 `,
6dd74de726 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de727 );
6dd74de728 });
6dd74de729 it('HD: should render a simple class diagram with no members if hideEmptyMembersBox is enabled', () => {
6dd74de730 imgSnapshotTest(
6dd74de731 `
6dd74de732 classDiagram
6dd74de733 class Class10
6dd74de734 `,
6dd74de735 { logLevel: 1, class: { htmlLabels: true, hideEmptyMembersBox: true }, look: 'handDrawn' }
6dd74de736 );
6dd74de737 });
6dd74de738 it('HD: should render a simple class diagram with no attributes, only methods', () => {
6dd74de739 imgSnapshotTest(
6dd74de740 `
6dd74de741 classDiagram
6dd74de742 class Duck {
6dd74de743 +swim()
6dd74de744 +quack()
6dd74de745 }
6dd74de746 `,
6dd74de747 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de748 );
6dd74de749 });
6dd74de750 it('HD: should render a simple class diagram with no methods, only attributes', () => {
6dd74de751 imgSnapshotTest(
6dd74de752 `
6dd74de753 classDiagram
6dd74de754 class Duck {
6dd74de755 +String beakColor
6dd74de756 +int age
6dd74de757 +float weight
6dd74de758 }
6dd74de759 `,
6dd74de760 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de761 );
6dd74de762 });
6dd74de763 it('HD: should render a simple class diagram with style definition', () => {
6dd74de764 imgSnapshotTest(
6dd74de765 `
6dd74de766 classDiagram
6dd74de767 class Class10
6dd74de768 style Class10 fill:#f9f,stroke:#333,stroke-width:4px
6dd74de769 `,
6dd74de770 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de771 );
6dd74de772 });
6dd74de773 it('HD: should render a simple class diagram with style definition without htmlLabels', () => {
6dd74de774 imgSnapshotTest(
6dd74de775 `
6dd74de776 classDiagram
6dd74de777 class Class10
6dd74de778 style Class10 fill:#f9f,stroke:#333,stroke-width:4px
6dd74de779 `,
6dd74de780 { logLevel: 1, htmlLabels: false, look: 'handDrawn' }
6dd74de781 );
6dd74de782 });
6dd74de783 it('HD: should render a simple class diagram with classDef definitions', () => {
6dd74de784 imgSnapshotTest(
6dd74de785 `
6dd74de786 classDiagram
6dd74de787 class Class10
6dd74de788 classDef pink fill:#f9f
6dd74de789 classDef bold stroke:#333,stroke-width:6px,color:#fff
6dd74de790 `,
6dd74de791 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de792 );
6dd74de793 });
6dd74de794 it('HD: should render a simple class diagram with classDefs being applied', () => {
6dd74de795 imgSnapshotTest(
6dd74de796 `
6dd74de797 classDiagram
6dd74de798 class Class10:::pink
6dd74de799 cssClass "Class10" bold
6dd74de800 classDef pink fill:#f9f
6dd74de801 classDef bold stroke:#333,stroke-width:6px,color:#fff
6dd74de802 `,
6dd74de803 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de804 );
6dd74de805 });
6dd74de806 it('HD: should render a simple class diagram with classDefs being applied without htmlLabels', () => {
6dd74de807 imgSnapshotTest(
6dd74de808 `
6dd74de809 classDiagram
6dd74de810 class Class10:::pink
6dd74de811 cssClass "Class10" bold
6dd74de812 classDef pink fill:#f9f
6dd74de813 classDef bold stroke:#333,stroke-width:6px,color:#fff
6dd74de814 `,
6dd74de815 { logLevel: 1, htmlLabels: false, look: 'handDrawn' }
6dd74de816 );
6dd74de817 });
6dd74de818 it('HD: should render a simple class diagram with markdown styling', () => {
6dd74de819 imgSnapshotTest(
6dd74de820 `
6dd74de821 classDiagram
6dd74de822 class Class10 {
6dd74de823 +attribute *italic**
6dd74de824 ~attribute **bold***
6dd74de825 _italicmethod_()
6dd74de826 __boldmethod__()
6dd74de827 _+_swim_()a_
6dd74de828 __+quack() test__
6dd74de829 }
6dd74de830 `,
6dd74de831 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de832 );
6dd74de833 });
6dd74de834 it('HD: should render a simple class diagram with markdown styling without htmlLabels', () => {
6dd74de835 imgSnapshotTest(
6dd74de836 `
6dd74de837 classDiagram
6dd74de838 class Class10 {
6dd74de839 +attribute *italic**
6dd74de840 ~attribute **bold***
6dd74de841 _italicmethod_()
6dd74de842 __boldmethod__()
6dd74de843 _+_swim_()a_
6dd74de844 __+quack() test__
6dd74de845 }
6dd74de846 `,
6dd74de847 { logLevel: 1, htmlLabels: false, look: 'handDrawn' }
6dd74de848 );
6dd74de849 });
6dd74de850 it('HD: should render a simple class diagram with the handDrawn look', () => {
6dd74de851 imgSnapshotTest(
6dd74de852 `
6dd74de853 classDiagram
6dd74de854 class Class10
6dd74de855 `,
6dd74de856 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de857 );
6dd74de858 });
6dd74de859 it('HD: should render a simple class diagram with styles and the handDrawn look', () => {
6dd74de860 imgSnapshotTest(
6dd74de861 `
6dd74de862 classDiagram
6dd74de863 class Class10
6dd74de864 style Class10 fill:#f9f,stroke:#333,stroke-width:4px,color:white
6dd74de865 `,
6dd74de866 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de867 );
6dd74de868 });
6dd74de869 it('HD: should render a simple class diagram with styles and the handDrawn look without htmlLabels', () => {
6dd74de870 imgSnapshotTest(
6dd74de871 `
6dd74de872 classDiagram
6dd74de873 class Class10
6dd74de874 style Class10 fill:#f9f,stroke:#333,stroke-width:4px,color:white
6dd74de875 `,
6dd74de876 { logLevel: 1, htmlLabels: false, look: 'handDrawn' }
6dd74de877 );
6dd74de878 });
6dd74de879 it('HD: should render a full class diagram with the handDrawn look', () => {
6dd74de880 imgSnapshotTest(
6dd74de881 `
6dd74de882 classDiagram
6dd74de883 note "I love this diagram!\nDo you love it?"
6dd74de884 Class01 <|-- AveryLongClass : Cool
6dd74de885 &lt;&lt;interface&gt;&gt; Class01
6dd74de886 Class03 "1" *-- "*" Class04
6dd74de887 Class05 "1" o-- "many" Class06
6dd74de888 Class07 "1" .. "*" Class08
6dd74de889 Class09 "1" --> "*" C2 : Where am i?
6dd74de890 Class09 "*" --* "*" C3
6dd74de891 Class09 "1" --|> "1" Class07
6dd74de892 Class12 <|.. Class08
6dd74de893 Class11 ..>Class12
6dd74de894 Class07 : equals()
6dd74de895 Class07 : Object[] elementData
6dd74de896 Class01 : size()
6dd74de897 Class01 : int chimp
6dd74de898 Class01 : int gorilla
6dd74de899 Class01 : -int privateChimp
6dd74de900 Class01 : +int publicGorilla
6dd74de901 Class01 : #int protectedMarmoset
6dd74de902 Class08 <--> C2: Cool label
6dd74de903 class Class10 {
6dd74de904 &lt;&lt;service&gt;&gt;
6dd74de905 int id
6dd74de906 test()
6dd74de907 }
6dd74de908 note for Class10 "Cool class\nI said it's very cool class!"
6dd74de909 `,
6dd74de910 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de911 );
6dd74de912 });
6dd74de913 it('HD: should render a simple class diagram with a custom theme', () => {
6dd74de914 imgSnapshotTest(
6dd74de915 `
6dd74de916 %%{
6dd74de917 init: {
6dd74de918 'theme': 'base',
6dd74de919 'themeVariables': {
6dd74de920 'primaryColor': '#BB2528',
6dd74de921 'primaryTextColor': '#fff',
6dd74de922 'primaryBorderColor': '#7C0000',
6dd74de923 'lineColor': '#F83d29',
6dd74de924 'secondaryColor': '#006100',
6dd74de925 'tertiaryColor': '#fff'
6dd74de926 }
6dd74de927 }
6dd74de928 }%%
6dd74de929 classDiagram
6dd74de930 Class01 <|-- AveryLongClass : Cool
6dd74de931 &lt;&lt;interface&gt;&gt; Class01
6dd74de932 Class03 *-- Class04
6dd74de933 Class05 o-- Class06
6dd74de934 Class07 .. Class08
6dd74de935 Class09 --> C2 : Where am i?
6dd74de936 Class09 --* C3
6dd74de937 Class09 --|> Class07
6dd74de938 Class12 <|.. Class08
6dd74de939 Class11 ..>Class12
6dd74de940 Class07 : equals()
6dd74de941 Class07 : Object[] elementData
6dd74de942 Class01 : size()
6dd74de943 Class01 : int chimp
6dd74de944 Class01 : int gorilla
6dd74de945 Class01 : -int privateChimp
6dd74de946 Class01 : +int publicGorilla
6dd74de947 Class01 : #int protectedMarmoset
6dd74de948 Class08 <--> C2: Cool label
6dd74de949 class Class10 {
6dd74de950 &lt;&lt;service&gt;&gt;
6dd74de951 int id
6dd74de952 test()
6dd74de953 }
6dd74de954 `,
6dd74de955 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de956 );
6dd74de957 });
6dd74de958 it('HD: should render a simple class diagram with a custom theme and the handDrawn look', () => {
6dd74de959 imgSnapshotTest(
6dd74de960 `
6dd74de961 %%{
6dd74de962 init: {
6dd74de963 'theme': 'base',
6dd74de964 'themeVariables': {
6dd74de965 'primaryColor': '#BB2528',
6dd74de966 'primaryTextColor': '#fff',
6dd74de967 'primaryBorderColor': '#7C0000',
6dd74de968 'lineColor': '#F83d29',
6dd74de969 'secondaryColor': '#006100',
6dd74de970 'tertiaryColor': '#fff'
6dd74de971 }
6dd74de972 }
6dd74de973 }%%
6dd74de974 classDiagram
6dd74de975 Class01 <|-- AveryLongClass : Cool
6dd74de976 &lt;&lt;interface&gt;&gt; Class01
6dd74de977 Class03 *-- Class04
6dd74de978 Class05 o-- Class06
6dd74de979 Class07 .. Class08
6dd74de980 Class09 --> C2 : Where am i?
6dd74de981 Class09 --* C3
6dd74de982 Class09 --|> Class07
6dd74de983 Class12 <|.. Class08
6dd74de984 Class11 ..>Class12
6dd74de985 Class07 : equals()
6dd74de986 Class07 : Object[] elementData
6dd74de987 Class01 : size()
6dd74de988 Class01 : int chimp
6dd74de989 Class01 : int gorilla
6dd74de990 Class01 : -int privateChimp
6dd74de991 Class01 : +int publicGorilla
6dd74de992 Class01 : #int protectedMarmoset
6dd74de993 Class08 <--> C2: Cool label
6dd74de994 class Class10 {
6dd74de995 &lt;&lt;service&gt;&gt;
6dd74de996 int id
6dd74de997 test()
6dd74de998 }
6dd74de999 `,
6dd74de1000 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de1001 );
6dd74de1002 });
6dd74de1003 it('HD: should render a full class diagram using elk', () => {
6dd74de1004 imgSnapshotTest(
6dd74de1005 `
6dd74de1006---
6dd74de1007 config:
6dd74de1008 layout: elk
6dd74de1009---
6dd74de1010 classDiagram
6dd74de1011 note "I love this diagram!\nDo you love it?"
6dd74de1012 Class01 <|-- AveryLongClass : Cool
6dd74de1013 &lt;&lt;interface&gt;&gt; Class01
6dd74de1014 Class03 "1" *-- "*" Class04
6dd74de1015 Class05 "1" o-- "many" Class06
6dd74de1016 Class07 "1" .. "*" Class08
6dd74de1017 Class09 "1" --> "*" C2 : Where am i?
6dd74de1018 Class09 "*" --* "*" C3
6dd74de1019 Class09 "1" --|> "1" Class07
6dd74de1020 Class12 <|.. Class08
6dd74de1021 Class11 ..>Class12
6dd74de1022 Class07 : equals()
6dd74de1023 Class07 : Object[] elementData
6dd74de1024 Class01 : size()
6dd74de1025 Class01 : int chimp
6dd74de1026 Class01 : int gorilla
6dd74de1027 Class01 : -int privateChimp
6dd74de1028 Class01 : +int publicGorilla
6dd74de1029 Class01 : #int protectedMarmoset
6dd74de1030 Class08 <--> C2: Cool label
6dd74de1031 class Class10 {
6dd74de1032 &lt;&lt;service&gt;&gt;
6dd74de1033 int id
6dd74de1034 test()
6dd74de1035 }
6dd74de1036 note for Class10 "Cool class\nI said it's very cool class!"
6dd74de1037 `,
6dd74de1038 { logLevel: 1, htmlLabels: true, look: 'handDrawn' }
6dd74de1039 );
6dd74de1040 });
6dd74de1041});