collab/mermaid/cypress/integration/rendering/block.spec.jsblame
View source
6dd74de1import { imgSnapshotTest } from '../../helpers/util';
6dd74de2/* eslint-disable no-useless-escape */
6dd74de3describe('Block diagram', () => {
6dd74de4 it('BL1: should calculate the block widths', () => {
6dd74de5 imgSnapshotTest(
6dd74de6 `block-beta
6dd74de7 columns 2
6dd74de8 block
6dd74de9 id2["I am a wide one"]
6dd74de10 id1
6dd74de11 end
6dd74de12 id["Next row"]
6dd74de13 `
6dd74de14 );
6dd74de15 });
6dd74de16
6dd74de17 it('BL2: should handle columns statement in sub-blocks', () => {
6dd74de18 imgSnapshotTest(
6dd74de19 `block
6dd74de20 id1["Hello"]
6dd74de21 block
6dd74de22 columns 3
6dd74de23 id2["to"]
6dd74de24 id3["the"]
6dd74de25 id4["World"]
6dd74de26 id5["World"]
6dd74de27 end
6dd74de28 `,
6dd74de29 {}
6dd74de30 );
6dd74de31 });
6dd74de32
6dd74de33 it('BL3: should align block widths and handle columns statement in sub-blocks', () => {
6dd74de34 imgSnapshotTest(
6dd74de35 `block
6dd74de36 block
6dd74de37 columns 1
6dd74de38 id1
6dd74de39 id2
6dd74de40 id2.1
6dd74de41 end
6dd74de42 id3
6dd74de43 id4
6dd74de44 `,
6dd74de45 {}
6dd74de46 );
6dd74de47 });
6dd74de48
6dd74de49 it('BL4: should align block widths and handle columns statements in deeper sub-blocks then 1 level', () => {
6dd74de50 imgSnapshotTest(
6dd74de51 `block
6dd74de52 columns 1
6dd74de53 block
6dd74de54 columns 1
6dd74de55 block
6dd74de56 columns 3
6dd74de57 id1
6dd74de58 id2
6dd74de59 id2.1(("XYZ"))
6dd74de60 end
6dd74de61 id48
6dd74de62 end
6dd74de63 id3
6dd74de64 `,
6dd74de65 {}
6dd74de66 );
6dd74de67 });
6dd74de68
6dd74de69 it('BL5: should align block widths and handle columns statements in deeper sub-blocks then 1 level (alt)', () => {
6dd74de70 imgSnapshotTest(
6dd74de71 `block
6dd74de72 columns 1
6dd74de73 block
6dd74de74 id1
6dd74de75 id2
6dd74de76 block
6dd74de77 columns 1
6dd74de78 id3("Wider then")
6dd74de79 id5(("id5"))
6dd74de80 end
6dd74de81 end
6dd74de82 id4
6dd74de83 `,
6dd74de84 {}
6dd74de85 );
6dd74de86 });
6dd74de87
6dd74de88 it('BL6: should handle block arrows and spece statements', () => {
6dd74de89 imgSnapshotTest(
6dd74de90 `block
6dd74de91 columns 3
6dd74de92 space:3
6dd74de93 ida idb idc
6dd74de94 id1 id2
6dd74de95 blockArrowId<["Label"]>(right)
6dd74de96 blockArrowId2<["Label"]>(left)
6dd74de97 blockArrowId3<["Label"]>(up)
6dd74de98 blockArrowId4<["Label"]>(down)
6dd74de99 blockArrowId5<["Label"]>(x)
6dd74de100 blockArrowId6<["Label"]>(y)
6dd74de101 blockArrowId6<["Label"]>(x, down)
6dd74de102 `,
6dd74de103 {}
6dd74de104 );
6dd74de105 });
6dd74de106
6dd74de107 it('BL7: should handle different types of edges', () => {
6dd74de108 imgSnapshotTest(
6dd74de109 `block
6dd74de110 columns 3
6dd74de111 A space:5
6dd74de112 A --o B
6dd74de113 A --> C
6dd74de114 A --x D
6dd74de115 `,
6dd74de116 {}
6dd74de117 );
6dd74de118 });
6dd74de119
6dd74de120 it('BL8: should handle sub-blocks without columns statements', () => {
6dd74de121 imgSnapshotTest(
6dd74de122 `block
6dd74de123 columns 2
6dd74de124 C A B
6dd74de125 block
6dd74de126 D
6dd74de127 E
6dd74de128 end
6dd74de129 `,
6dd74de130 {}
6dd74de131 );
6dd74de132 });
6dd74de133
6dd74de134 it('BL9: should handle edges from blocks in sub blocks to other blocks', () => {
6dd74de135 imgSnapshotTest(
6dd74de136 `block
6dd74de137 columns 3
6dd74de138 B space
6dd74de139 block
6dd74de140 D
6dd74de141 end
6dd74de142 D --> B
6dd74de143 `,
6dd74de144 {}
6dd74de145 );
6dd74de146 });
6dd74de147
6dd74de148 it('BL10: should handle edges from composite blocks', () => {
6dd74de149 imgSnapshotTest(
6dd74de150 `block
6dd74de151 columns 3
6dd74de152 B space
6dd74de153 block BL
6dd74de154 D
6dd74de155 end
6dd74de156 BL --> B
6dd74de157 `,
6dd74de158 {}
6dd74de159 );
6dd74de160 });
6dd74de161
6dd74de162 it('BL11: should handle edges to composite blocks', () => {
6dd74de163 imgSnapshotTest(
6dd74de164 `block
6dd74de165 columns 3
6dd74de166 B space
6dd74de167 block BL
6dd74de168 D
6dd74de169 end
6dd74de170 B --> BL
6dd74de171 `,
6dd74de172 {}
6dd74de173 );
6dd74de174 });
6dd74de175
6dd74de176 it('BL12: edges should handle labels', () => {
6dd74de177 imgSnapshotTest(
6dd74de178 `block
6dd74de179 A
6dd74de180 space
6dd74de181 A -- "apa" --> E
6dd74de182 `,
6dd74de183 {}
6dd74de184 );
6dd74de185 });
6dd74de186
6dd74de187 it('BL13: should handle block arrows in different directions', () => {
6dd74de188 imgSnapshotTest(
6dd74de189 `block
6dd74de190 columns 3
6dd74de191 space blockArrowId1<["down"]>(down) space
6dd74de192 blockArrowId2<["right"]>(right) blockArrowId3<["Sync"]>(x, y) blockArrowId4<["left"]>(left)
6dd74de193 space blockArrowId5<["up"]>(up) space
6dd74de194 blockArrowId6<["x"]>(x) space blockArrowId7<["y"]>(y)
6dd74de195 `,
6dd74de196 {}
6dd74de197 );
6dd74de198 });
6dd74de199
6dd74de200 it('BL14: should style statements and class statements', () => {
6dd74de201 imgSnapshotTest(
6dd74de202 `block
6dd74de203 A
6dd74de204 B
6dd74de205 classDef blue fill:#66f,stroke:#333,stroke-width:2px;
6dd74de206 class A blue
6dd74de207 style B fill:#f9F,stroke:#333,stroke-width:4px
6dd74de208 `,
6dd74de209 {}
6dd74de210 );
6dd74de211 });
6dd74de212
6dd74de213 it('BL15: width alignment - D and E should share available space', () => {
6dd74de214 imgSnapshotTest(
6dd74de215 `block
6dd74de216 block
6dd74de217 D
6dd74de218 E
6dd74de219 end
6dd74de220 db("This is the text in the box")
6dd74de221 `,
6dd74de222 {}
6dd74de223 );
6dd74de224 });
6dd74de225
6dd74de226 it('BL16: width alignment - C should be as wide as the composite block', () => {
6dd74de227 imgSnapshotTest(
6dd74de228 `block
6dd74de229 block
6dd74de230 A("This is the text")
6dd74de231 B
6dd74de232 end
6dd74de233 C
6dd74de234 `,
6dd74de235 {}
6dd74de236 );
6dd74de237 });
6dd74de238
6dd74de239 it('BL17: width alignment - blocks should be equal in width', () => {
6dd74de240 imgSnapshotTest(
6dd74de241 `block
6dd74de242 A("This is the text")
6dd74de243 B
6dd74de244 C
6dd74de245 `,
6dd74de246 {}
6dd74de247 );
6dd74de248 });
6dd74de249
6dd74de250 it('BL18: block types 1 - square, rounded and circle', () => {
6dd74de251 imgSnapshotTest(
6dd74de252 `block
6dd74de253 A["square"]
6dd74de254 B("rounded")
6dd74de255 C(("circle"))
6dd74de256 `,
6dd74de257 {}
6dd74de258 );
6dd74de259 });
6dd74de260
6dd74de261 it('BL19: block types 2 - odd, diamond and hexagon', () => {
6dd74de262 imgSnapshotTest(
6dd74de263 `block
6dd74de264 A>"rect_left_inv_arrow"]
6dd74de265 B{"diamond"}
6dd74de266 C{{"hexagon"}}
6dd74de267 `,
6dd74de268 {}
6dd74de269 );
6dd74de270 });
6dd74de271
6dd74de272 it('BL20: block types 3 - stadium', () => {
6dd74de273 imgSnapshotTest(
6dd74de274 `block
6dd74de275 A(["stadium"])
6dd74de276 `,
6dd74de277 {}
6dd74de278 );
6dd74de279 });
6dd74de280
6dd74de281 it('BL21: block types 4 - lean right, lean left, trapezoid and inv trapezoid', () => {
6dd74de282 imgSnapshotTest(
6dd74de283 `block
6dd74de284 A[/"lean right"/]
6dd74de285 B[\"lean left"\]
6dd74de286 C[/"trapezoid"\]
6dd74de287 D[\"trapezoid alt"/]
6dd74de288 `,
6dd74de289 {}
6dd74de290 );
6dd74de291 });
6dd74de292
6dd74de293 it('BL22: block types 1 - square, rounded and circle', () => {
6dd74de294 imgSnapshotTest(
6dd74de295 `block
6dd74de296 A["square"]
6dd74de297 B("rounded")
6dd74de298 C(("circle"))
6dd74de299 `,
6dd74de300 {}
6dd74de301 );
6dd74de302 });
6dd74de303
6dd74de304 it('BL23: sizing - it should be possible to make a block wider', () => {
6dd74de305 imgSnapshotTest(
6dd74de306 `block
6dd74de307 A("rounded"):2
6dd74de308 B:2
6dd74de309 C
6dd74de310 `,
6dd74de311 {}
6dd74de312 );
6dd74de313 });
6dd74de314
6dd74de315 it('BL24: sizing - it should be possible to make a composite block wider', () => {
6dd74de316 imgSnapshotTest(
6dd74de317 `block
6dd74de318 block:2
6dd74de319 A
6dd74de320 end
6dd74de321 B
6dd74de322 `,
6dd74de323 {}
6dd74de324 );
6dd74de325 });
6dd74de326
6dd74de327 it('BL25: block in the middle with space on each side', () => {
6dd74de328 imgSnapshotTest(
6dd74de329 `block
6dd74de330 columns 3
6dd74de331 space
6dd74de332 middle["In the middle"]
6dd74de333 space
6dd74de334 `,
6dd74de335 {}
6dd74de336 );
6dd74de337 });
6dd74de338 it('BL26: space and an edge', () => {
6dd74de339 imgSnapshotTest(
6dd74de340 `block
6dd74de341 columns 5
6dd74de342 A space B
6dd74de343 A --x B
6dd74de344 `,
6dd74de345 {}
6dd74de346 );
6dd74de347 });
6dd74de348 it('BL27: block sizes for regular blocks', () => {
6dd74de349 imgSnapshotTest(
6dd74de350 `block
6dd74de351 columns 3
6dd74de352 a["A wide one"] b:2 c:2 d
6dd74de353 `,
6dd74de354 {}
6dd74de355 );
6dd74de356 });
6dd74de357 it('BL28: composite block with a set width - f should use the available space', () => {
6dd74de358 imgSnapshotTest(
6dd74de359 `block
6dd74de360 columns 3
6dd74de361 a:3
6dd74de362 block:e:3
6dd74de363 f
6dd74de364 end
6dd74de365 g
6dd74de366 `,
6dd74de367 {}
6dd74de368 );
6dd74de369 });
6dd74de370
6dd74de371 it('BL29: composite block with a set width - f and g should split the available space', () => {
6dd74de372 imgSnapshotTest(
6dd74de373 `block
6dd74de374 columns 3
6dd74de375 a:3
6dd74de376 block:e:3
6dd74de377 f
6dd74de378 g
6dd74de379 end
6dd74de380 h
6dd74de381 i
6dd74de382 j
6dd74de383 `,
6dd74de384 {}
6dd74de385 );
6dd74de386 });
6dd74de387
6dd74de388 it('BL30: block should overflow if too wide for columns', () => {
6dd74de389 imgSnapshotTest(
6dd74de390 `block-beta
6dd74de391 columns 2
6dd74de392 fit:2
6dd74de393 overflow:3
6dd74de394 short:1
6dd74de395 also_overflow:2
6dd74de396`,
6dd74de397 {}
6dd74de398 );
6dd74de399 });
6dd74de400
6dd74de401 it('BL31: edge without arrow syntax should render with no arrowheads', () => {
6dd74de402 imgSnapshotTest(
6dd74de403 `block-beta
6dd74de404 a
6dd74de405 b
6dd74de406 a --- b
6dd74de407`,
6dd74de408 {}
6dd74de409 );
6dd74de410 });
6dd74de411});