| 6dd74de | | | 1 | import { imgSnapshotTest } from '../../helpers/util'; |
| 6dd74de | | | 2 | /* eslint-disable no-useless-escape */ |
| 6dd74de | | | 3 | describe('Block diagram', () => { |
| 6dd74de | | | 4 | it('BL1: should calculate the block widths', () => { |
| 6dd74de | | | 5 | imgSnapshotTest( |
| 6dd74de | | | 6 | `block-beta |
| 6dd74de | | | 7 | columns 2 |
| 6dd74de | | | 8 | block |
| 6dd74de | | | 9 | id2["I am a wide one"] |
| 6dd74de | | | 10 | id1 |
| 6dd74de | | | 11 | end |
| 6dd74de | | | 12 | id["Next row"] |
| 6dd74de | | | 13 | ` |
| 6dd74de | | | 14 | ); |
| 6dd74de | | | 15 | }); |
| 6dd74de | | | 16 | |
| 6dd74de | | | 17 | it('BL2: should handle columns statement in sub-blocks', () => { |
| 6dd74de | | | 18 | imgSnapshotTest( |
| 6dd74de | | | 19 | `block |
| 6dd74de | | | 20 | id1["Hello"] |
| 6dd74de | | | 21 | block |
| 6dd74de | | | 22 | columns 3 |
| 6dd74de | | | 23 | id2["to"] |
| 6dd74de | | | 24 | id3["the"] |
| 6dd74de | | | 25 | id4["World"] |
| 6dd74de | | | 26 | id5["World"] |
| 6dd74de | | | 27 | end |
| 6dd74de | | | 28 | `, |
| 6dd74de | | | 29 | {} |
| 6dd74de | | | 30 | ); |
| 6dd74de | | | 31 | }); |
| 6dd74de | | | 32 | |
| 6dd74de | | | 33 | it('BL3: should align block widths and handle columns statement in sub-blocks', () => { |
| 6dd74de | | | 34 | imgSnapshotTest( |
| 6dd74de | | | 35 | `block |
| 6dd74de | | | 36 | block |
| 6dd74de | | | 37 | columns 1 |
| 6dd74de | | | 38 | id1 |
| 6dd74de | | | 39 | id2 |
| 6dd74de | | | 40 | id2.1 |
| 6dd74de | | | 41 | end |
| 6dd74de | | | 42 | id3 |
| 6dd74de | | | 43 | id4 |
| 6dd74de | | | 44 | `, |
| 6dd74de | | | 45 | {} |
| 6dd74de | | | 46 | ); |
| 6dd74de | | | 47 | }); |
| 6dd74de | | | 48 | |
| 6dd74de | | | 49 | it('BL4: should align block widths and handle columns statements in deeper sub-blocks then 1 level', () => { |
| 6dd74de | | | 50 | imgSnapshotTest( |
| 6dd74de | | | 51 | `block |
| 6dd74de | | | 52 | columns 1 |
| 6dd74de | | | 53 | block |
| 6dd74de | | | 54 | columns 1 |
| 6dd74de | | | 55 | block |
| 6dd74de | | | 56 | columns 3 |
| 6dd74de | | | 57 | id1 |
| 6dd74de | | | 58 | id2 |
| 6dd74de | | | 59 | id2.1(("XYZ")) |
| 6dd74de | | | 60 | end |
| 6dd74de | | | 61 | id48 |
| 6dd74de | | | 62 | end |
| 6dd74de | | | 63 | id3 |
| 6dd74de | | | 64 | `, |
| 6dd74de | | | 65 | {} |
| 6dd74de | | | 66 | ); |
| 6dd74de | | | 67 | }); |
| 6dd74de | | | 68 | |
| 6dd74de | | | 69 | it('BL5: should align block widths and handle columns statements in deeper sub-blocks then 1 level (alt)', () => { |
| 6dd74de | | | 70 | imgSnapshotTest( |
| 6dd74de | | | 71 | `block |
| 6dd74de | | | 72 | columns 1 |
| 6dd74de | | | 73 | block |
| 6dd74de | | | 74 | id1 |
| 6dd74de | | | 75 | id2 |
| 6dd74de | | | 76 | block |
| 6dd74de | | | 77 | columns 1 |
| 6dd74de | | | 78 | id3("Wider then") |
| 6dd74de | | | 79 | id5(("id5")) |
| 6dd74de | | | 80 | end |
| 6dd74de | | | 81 | end |
| 6dd74de | | | 82 | id4 |
| 6dd74de | | | 83 | `, |
| 6dd74de | | | 84 | {} |
| 6dd74de | | | 85 | ); |
| 6dd74de | | | 86 | }); |
| 6dd74de | | | 87 | |
| 6dd74de | | | 88 | it('BL6: should handle block arrows and spece statements', () => { |
| 6dd74de | | | 89 | imgSnapshotTest( |
| 6dd74de | | | 90 | `block |
| 6dd74de | | | 91 | columns 3 |
| 6dd74de | | | 92 | space:3 |
| 6dd74de | | | 93 | ida idb idc |
| 6dd74de | | | 94 | id1 id2 |
| 6dd74de | | | 95 | blockArrowId<["Label"]>(right) |
| 6dd74de | | | 96 | blockArrowId2<["Label"]>(left) |
| 6dd74de | | | 97 | blockArrowId3<["Label"]>(up) |
| 6dd74de | | | 98 | blockArrowId4<["Label"]>(down) |
| 6dd74de | | | 99 | blockArrowId5<["Label"]>(x) |
| 6dd74de | | | 100 | blockArrowId6<["Label"]>(y) |
| 6dd74de | | | 101 | blockArrowId6<["Label"]>(x, down) |
| 6dd74de | | | 102 | `, |
| 6dd74de | | | 103 | {} |
| 6dd74de | | | 104 | ); |
| 6dd74de | | | 105 | }); |
| 6dd74de | | | 106 | |
| 6dd74de | | | 107 | it('BL7: should handle different types of edges', () => { |
| 6dd74de | | | 108 | imgSnapshotTest( |
| 6dd74de | | | 109 | `block |
| 6dd74de | | | 110 | columns 3 |
| 6dd74de | | | 111 | A space:5 |
| 6dd74de | | | 112 | A --o B |
| 6dd74de | | | 113 | A --> C |
| 6dd74de | | | 114 | A --x D |
| 6dd74de | | | 115 | `, |
| 6dd74de | | | 116 | {} |
| 6dd74de | | | 117 | ); |
| 6dd74de | | | 118 | }); |
| 6dd74de | | | 119 | |
| 6dd74de | | | 120 | it('BL8: should handle sub-blocks without columns statements', () => { |
| 6dd74de | | | 121 | imgSnapshotTest( |
| 6dd74de | | | 122 | `block |
| 6dd74de | | | 123 | columns 2 |
| 6dd74de | | | 124 | C A B |
| 6dd74de | | | 125 | block |
| 6dd74de | | | 126 | D |
| 6dd74de | | | 127 | E |
| 6dd74de | | | 128 | end |
| 6dd74de | | | 129 | `, |
| 6dd74de | | | 130 | {} |
| 6dd74de | | | 131 | ); |
| 6dd74de | | | 132 | }); |
| 6dd74de | | | 133 | |
| 6dd74de | | | 134 | it('BL9: should handle edges from blocks in sub blocks to other blocks', () => { |
| 6dd74de | | | 135 | imgSnapshotTest( |
| 6dd74de | | | 136 | `block |
| 6dd74de | | | 137 | columns 3 |
| 6dd74de | | | 138 | B space |
| 6dd74de | | | 139 | block |
| 6dd74de | | | 140 | D |
| 6dd74de | | | 141 | end |
| 6dd74de | | | 142 | D --> B |
| 6dd74de | | | 143 | `, |
| 6dd74de | | | 144 | {} |
| 6dd74de | | | 145 | ); |
| 6dd74de | | | 146 | }); |
| 6dd74de | | | 147 | |
| 6dd74de | | | 148 | it('BL10: should handle edges from composite blocks', () => { |
| 6dd74de | | | 149 | imgSnapshotTest( |
| 6dd74de | | | 150 | `block |
| 6dd74de | | | 151 | columns 3 |
| 6dd74de | | | 152 | B space |
| 6dd74de | | | 153 | block BL |
| 6dd74de | | | 154 | D |
| 6dd74de | | | 155 | end |
| 6dd74de | | | 156 | BL --> B |
| 6dd74de | | | 157 | `, |
| 6dd74de | | | 158 | {} |
| 6dd74de | | | 159 | ); |
| 6dd74de | | | 160 | }); |
| 6dd74de | | | 161 | |
| 6dd74de | | | 162 | it('BL11: should handle edges to composite blocks', () => { |
| 6dd74de | | | 163 | imgSnapshotTest( |
| 6dd74de | | | 164 | `block |
| 6dd74de | | | 165 | columns 3 |
| 6dd74de | | | 166 | B space |
| 6dd74de | | | 167 | block BL |
| 6dd74de | | | 168 | D |
| 6dd74de | | | 169 | end |
| 6dd74de | | | 170 | B --> BL |
| 6dd74de | | | 171 | `, |
| 6dd74de | | | 172 | {} |
| 6dd74de | | | 173 | ); |
| 6dd74de | | | 174 | }); |
| 6dd74de | | | 175 | |
| 6dd74de | | | 176 | it('BL12: edges should handle labels', () => { |
| 6dd74de | | | 177 | imgSnapshotTest( |
| 6dd74de | | | 178 | `block |
| 6dd74de | | | 179 | A |
| 6dd74de | | | 180 | space |
| 6dd74de | | | 181 | A -- "apa" --> E |
| 6dd74de | | | 182 | `, |
| 6dd74de | | | 183 | {} |
| 6dd74de | | | 184 | ); |
| 6dd74de | | | 185 | }); |
| 6dd74de | | | 186 | |
| 6dd74de | | | 187 | it('BL13: should handle block arrows in different directions', () => { |
| 6dd74de | | | 188 | imgSnapshotTest( |
| 6dd74de | | | 189 | `block |
| 6dd74de | | | 190 | columns 3 |
| 6dd74de | | | 191 | space blockArrowId1<["down"]>(down) space |
| 6dd74de | | | 192 | blockArrowId2<["right"]>(right) blockArrowId3<["Sync"]>(x, y) blockArrowId4<["left"]>(left) |
| 6dd74de | | | 193 | space blockArrowId5<["up"]>(up) space |
| 6dd74de | | | 194 | blockArrowId6<["x"]>(x) space blockArrowId7<["y"]>(y) |
| 6dd74de | | | 195 | `, |
| 6dd74de | | | 196 | {} |
| 6dd74de | | | 197 | ); |
| 6dd74de | | | 198 | }); |
| 6dd74de | | | 199 | |
| 6dd74de | | | 200 | it('BL14: should style statements and class statements', () => { |
| 6dd74de | | | 201 | imgSnapshotTest( |
| 6dd74de | | | 202 | `block |
| 6dd74de | | | 203 | A |
| 6dd74de | | | 204 | B |
| 6dd74de | | | 205 | classDef blue fill:#66f,stroke:#333,stroke-width:2px; |
| 6dd74de | | | 206 | class A blue |
| 6dd74de | | | 207 | style B fill:#f9F,stroke:#333,stroke-width:4px |
| 6dd74de | | | 208 | `, |
| 6dd74de | | | 209 | {} |
| 6dd74de | | | 210 | ); |
| 6dd74de | | | 211 | }); |
| 6dd74de | | | 212 | |
| 6dd74de | | | 213 | it('BL15: width alignment - D and E should share available space', () => { |
| 6dd74de | | | 214 | imgSnapshotTest( |
| 6dd74de | | | 215 | `block |
| 6dd74de | | | 216 | block |
| 6dd74de | | | 217 | D |
| 6dd74de | | | 218 | E |
| 6dd74de | | | 219 | end |
| 6dd74de | | | 220 | db("This is the text in the box") |
| 6dd74de | | | 221 | `, |
| 6dd74de | | | 222 | {} |
| 6dd74de | | | 223 | ); |
| 6dd74de | | | 224 | }); |
| 6dd74de | | | 225 | |
| 6dd74de | | | 226 | it('BL16: width alignment - C should be as wide as the composite block', () => { |
| 6dd74de | | | 227 | imgSnapshotTest( |
| 6dd74de | | | 228 | `block |
| 6dd74de | | | 229 | block |
| 6dd74de | | | 230 | A("This is the text") |
| 6dd74de | | | 231 | B |
| 6dd74de | | | 232 | end |
| 6dd74de | | | 233 | C |
| 6dd74de | | | 234 | `, |
| 6dd74de | | | 235 | {} |
| 6dd74de | | | 236 | ); |
| 6dd74de | | | 237 | }); |
| 6dd74de | | | 238 | |
| 6dd74de | | | 239 | it('BL17: width alignment - blocks should be equal in width', () => { |
| 6dd74de | | | 240 | imgSnapshotTest( |
| 6dd74de | | | 241 | `block |
| 6dd74de | | | 242 | A("This is the text") |
| 6dd74de | | | 243 | B |
| 6dd74de | | | 244 | C |
| 6dd74de | | | 245 | `, |
| 6dd74de | | | 246 | {} |
| 6dd74de | | | 247 | ); |
| 6dd74de | | | 248 | }); |
| 6dd74de | | | 249 | |
| 6dd74de | | | 250 | it('BL18: block types 1 - square, rounded and circle', () => { |
| 6dd74de | | | 251 | imgSnapshotTest( |
| 6dd74de | | | 252 | `block |
| 6dd74de | | | 253 | A["square"] |
| 6dd74de | | | 254 | B("rounded") |
| 6dd74de | | | 255 | C(("circle")) |
| 6dd74de | | | 256 | `, |
| 6dd74de | | | 257 | {} |
| 6dd74de | | | 258 | ); |
| 6dd74de | | | 259 | }); |
| 6dd74de | | | 260 | |
| 6dd74de | | | 261 | it('BL19: block types 2 - odd, diamond and hexagon', () => { |
| 6dd74de | | | 262 | imgSnapshotTest( |
| 6dd74de | | | 263 | `block |
| 6dd74de | | | 264 | A>"rect_left_inv_arrow"] |
| 6dd74de | | | 265 | B{"diamond"} |
| 6dd74de | | | 266 | C{{"hexagon"}} |
| 6dd74de | | | 267 | `, |
| 6dd74de | | | 268 | {} |
| 6dd74de | | | 269 | ); |
| 6dd74de | | | 270 | }); |
| 6dd74de | | | 271 | |
| 6dd74de | | | 272 | it('BL20: block types 3 - stadium', () => { |
| 6dd74de | | | 273 | imgSnapshotTest( |
| 6dd74de | | | 274 | `block |
| 6dd74de | | | 275 | A(["stadium"]) |
| 6dd74de | | | 276 | `, |
| 6dd74de | | | 277 | {} |
| 6dd74de | | | 278 | ); |
| 6dd74de | | | 279 | }); |
| 6dd74de | | | 280 | |
| 6dd74de | | | 281 | it('BL21: block types 4 - lean right, lean left, trapezoid and inv trapezoid', () => { |
| 6dd74de | | | 282 | imgSnapshotTest( |
| 6dd74de | | | 283 | `block |
| 6dd74de | | | 284 | A[/"lean right"/] |
| 6dd74de | | | 285 | B[\"lean left"\] |
| 6dd74de | | | 286 | C[/"trapezoid"\] |
| 6dd74de | | | 287 | D[\"trapezoid alt"/] |
| 6dd74de | | | 288 | `, |
| 6dd74de | | | 289 | {} |
| 6dd74de | | | 290 | ); |
| 6dd74de | | | 291 | }); |
| 6dd74de | | | 292 | |
| 6dd74de | | | 293 | it('BL22: block types 1 - square, rounded and circle', () => { |
| 6dd74de | | | 294 | imgSnapshotTest( |
| 6dd74de | | | 295 | `block |
| 6dd74de | | | 296 | A["square"] |
| 6dd74de | | | 297 | B("rounded") |
| 6dd74de | | | 298 | C(("circle")) |
| 6dd74de | | | 299 | `, |
| 6dd74de | | | 300 | {} |
| 6dd74de | | | 301 | ); |
| 6dd74de | | | 302 | }); |
| 6dd74de | | | 303 | |
| 6dd74de | | | 304 | it('BL23: sizing - it should be possible to make a block wider', () => { |
| 6dd74de | | | 305 | imgSnapshotTest( |
| 6dd74de | | | 306 | `block |
| 6dd74de | | | 307 | A("rounded"):2 |
| 6dd74de | | | 308 | B:2 |
| 6dd74de | | | 309 | C |
| 6dd74de | | | 310 | `, |
| 6dd74de | | | 311 | {} |
| 6dd74de | | | 312 | ); |
| 6dd74de | | | 313 | }); |
| 6dd74de | | | 314 | |
| 6dd74de | | | 315 | it('BL24: sizing - it should be possible to make a composite block wider', () => { |
| 6dd74de | | | 316 | imgSnapshotTest( |
| 6dd74de | | | 317 | `block |
| 6dd74de | | | 318 | block:2 |
| 6dd74de | | | 319 | A |
| 6dd74de | | | 320 | end |
| 6dd74de | | | 321 | B |
| 6dd74de | | | 322 | `, |
| 6dd74de | | | 323 | {} |
| 6dd74de | | | 324 | ); |
| 6dd74de | | | 325 | }); |
| 6dd74de | | | 326 | |
| 6dd74de | | | 327 | it('BL25: block in the middle with space on each side', () => { |
| 6dd74de | | | 328 | imgSnapshotTest( |
| 6dd74de | | | 329 | `block |
| 6dd74de | | | 330 | columns 3 |
| 6dd74de | | | 331 | space |
| 6dd74de | | | 332 | middle["In the middle"] |
| 6dd74de | | | 333 | space |
| 6dd74de | | | 334 | `, |
| 6dd74de | | | 335 | {} |
| 6dd74de | | | 336 | ); |
| 6dd74de | | | 337 | }); |
| 6dd74de | | | 338 | it('BL26: space and an edge', () => { |
| 6dd74de | | | 339 | imgSnapshotTest( |
| 6dd74de | | | 340 | `block |
| 6dd74de | | | 341 | columns 5 |
| 6dd74de | | | 342 | A space B |
| 6dd74de | | | 343 | A --x B |
| 6dd74de | | | 344 | `, |
| 6dd74de | | | 345 | {} |
| 6dd74de | | | 346 | ); |
| 6dd74de | | | 347 | }); |
| 6dd74de | | | 348 | it('BL27: block sizes for regular blocks', () => { |
| 6dd74de | | | 349 | imgSnapshotTest( |
| 6dd74de | | | 350 | `block |
| 6dd74de | | | 351 | columns 3 |
| 6dd74de | | | 352 | a["A wide one"] b:2 c:2 d |
| 6dd74de | | | 353 | `, |
| 6dd74de | | | 354 | {} |
| 6dd74de | | | 355 | ); |
| 6dd74de | | | 356 | }); |
| 6dd74de | | | 357 | it('BL28: composite block with a set width - f should use the available space', () => { |
| 6dd74de | | | 358 | imgSnapshotTest( |
| 6dd74de | | | 359 | `block |
| 6dd74de | | | 360 | columns 3 |
| 6dd74de | | | 361 | a:3 |
| 6dd74de | | | 362 | block:e:3 |
| 6dd74de | | | 363 | f |
| 6dd74de | | | 364 | end |
| 6dd74de | | | 365 | g |
| 6dd74de | | | 366 | `, |
| 6dd74de | | | 367 | {} |
| 6dd74de | | | 368 | ); |
| 6dd74de | | | 369 | }); |
| 6dd74de | | | 370 | |
| 6dd74de | | | 371 | it('BL29: composite block with a set width - f and g should split the available space', () => { |
| 6dd74de | | | 372 | imgSnapshotTest( |
| 6dd74de | | | 373 | `block |
| 6dd74de | | | 374 | columns 3 |
| 6dd74de | | | 375 | a:3 |
| 6dd74de | | | 376 | block:e:3 |
| 6dd74de | | | 377 | f |
| 6dd74de | | | 378 | g |
| 6dd74de | | | 379 | end |
| 6dd74de | | | 380 | h |
| 6dd74de | | | 381 | i |
| 6dd74de | | | 382 | j |
| 6dd74de | | | 383 | `, |
| 6dd74de | | | 384 | {} |
| 6dd74de | | | 385 | ); |
| 6dd74de | | | 386 | }); |
| 6dd74de | | | 387 | |
| 6dd74de | | | 388 | it('BL30: block should overflow if too wide for columns', () => { |
| 6dd74de | | | 389 | imgSnapshotTest( |
| 6dd74de | | | 390 | `block-beta |
| 6dd74de | | | 391 | columns 2 |
| 6dd74de | | | 392 | fit:2 |
| 6dd74de | | | 393 | overflow:3 |
| 6dd74de | | | 394 | short:1 |
| 6dd74de | | | 395 | also_overflow:2 |
| 6dd74de | | | 396 | `, |
| 6dd74de | | | 397 | {} |
| 6dd74de | | | 398 | ); |
| 6dd74de | | | 399 | }); |
| 6dd74de | | | 400 | |
| 6dd74de | | | 401 | it('BL31: edge without arrow syntax should render with no arrowheads', () => { |
| 6dd74de | | | 402 | imgSnapshotTest( |
| 6dd74de | | | 403 | `block-beta |
| 6dd74de | | | 404 | a |
| 6dd74de | | | 405 | b |
| 6dd74de | | | 406 | a --- b |
| 6dd74de | | | 407 | `, |
| 6dd74de | | | 408 | {} |
| 6dd74de | | | 409 | ); |
| 6dd74de | | | 410 | }); |
| 6dd74de | | | 411 | }); |