knsv/mermaid

View on GitHub
cypress/integration/rendering/flowchart.spec.js

Summary

Maintainability
F
4 days
Test Coverage

File flowchart.spec.js has 864 lines of code (exceeds 250 allowed). Consider refactoring.
Open

import { imgSnapshotTest, renderGraph } from '../../helpers/util.ts';

describe('Graph', () => {
  it('1: should render a simple flowchart no htmlLabels', () => {
    imgSnapshotTest(
Severity: Major
Found in cypress/integration/rendering/flowchart.spec.js - About 2 days to fix

    Similar blocks of code found in 2 locations. Consider refactoring.
    Open

      it('38: should render a flowchart when useMaxWidth is true (default)', () => {
        renderGraph(
          `graph TD
          A[Christmas] -->|Get money| B(Go shopping)
          B --> C{Let me think}
    Severity: Major
    Found in cypress/integration/rendering/flowchart.spec.js and 1 other location - About 7 hrs to fix
    cypress/integration/rendering/flowchart-elk.spec.js on lines 92..114

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 190.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 3 locations. Consider refactoring.
    Open

      it('39: should render a flowchart when useMaxWidth is false', () => {
        renderGraph(
          `graph TD
          A[Christmas] -->|Get money| B(Go shopping)
          B --> C{Let me think}
    Severity: Major
    Found in cypress/integration/rendering/flowchart.spec.js and 2 other locations - About 5 hrs to fix
    cypress/integration/rendering/flowchart-elk.spec.js on lines 115..134
    cypress/integration/rendering/sequencediagram.spec.js on lines 943..979

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 149.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 72 locations. Consider refactoring.
    Open

      it('62: fontawesome icons in edge labels', () => {
        imgSnapshotTest(
          `
        graph TB
          subgraph bar[Bar]
    Severity: Major
    Found in cypress/integration/rendering/flowchart.spec.js and 71 other locations - About 40 mins to fix
    cypress/integration/rendering/flowchart-elk.spec.js on lines 84..91
    cypress/integration/rendering/flowchart-elk.spec.js on lines 155..168
    cypress/integration/rendering/flowchart-elk.spec.js on lines 170..183
    cypress/integration/rendering/flowchart-elk.spec.js on lines 185..204
    cypress/integration/rendering/flowchart-elk.spec.js on lines 206..234
    cypress/integration/rendering/flowchart-elk.spec.js on lines 236..248
    cypress/integration/rendering/flowchart-elk.spec.js on lines 250..270
    cypress/integration/rendering/flowchart-elk.spec.js on lines 272..286
    cypress/integration/rendering/flowchart-elk.spec.js on lines 287..299
    cypress/integration/rendering/flowchart-elk.spec.js on lines 301..320
    cypress/integration/rendering/flowchart-elk.spec.js on lines 321..336
    cypress/integration/rendering/flowchart-elk.spec.js on lines 337..347
    cypress/integration/rendering/flowchart-elk.spec.js on lines 348..369
    cypress/integration/rendering/flowchart-elk.spec.js on lines 403..411
    cypress/integration/rendering/flowchart-elk.spec.js on lines 412..445
    cypress/integration/rendering/flowchart-elk.spec.js on lines 446..461
    cypress/integration/rendering/flowchart-elk.spec.js on lines 462..472
    cypress/integration/rendering/flowchart-elk.spec.js on lines 473..490
    cypress/integration/rendering/flowchart-elk.spec.js on lines 491..508
    cypress/integration/rendering/flowchart-elk.spec.js on lines 509..526
    cypress/integration/rendering/flowchart-elk.spec.js on lines 527..544
    cypress/integration/rendering/flowchart-elk.spec.js on lines 545..560
    cypress/integration/rendering/flowchart-elk.spec.js on lines 561..576
    cypress/integration/rendering/flowchart-elk.spec.js on lines 577..592
    cypress/integration/rendering/flowchart-elk.spec.js on lines 593..608
    cypress/integration/rendering/flowchart-elk.spec.js on lines 609..620
    cypress/integration/rendering/flowchart-elk.spec.js on lines 622..630
    cypress/integration/rendering/flowchart-elk.spec.js on lines 632..653
    cypress/integration/rendering/flowchart-elk.spec.js on lines 655..664
    cypress/integration/rendering/flowchart-elk.spec.js on lines 665..675
    cypress/integration/rendering/flowchart-v2.spec.js on lines 74..81
    cypress/integration/rendering/flowchart-v2.spec.js on lines 145..158
    cypress/integration/rendering/flowchart-v2.spec.js on lines 160..173
    cypress/integration/rendering/flowchart-v2.spec.js on lines 175..194
    cypress/integration/rendering/flowchart-v2.spec.js on lines 196..224
    cypress/integration/rendering/flowchart-v2.spec.js on lines 226..238
    cypress/integration/rendering/flowchart-v2.spec.js on lines 240..260
    cypress/integration/rendering/flowchart-v2.spec.js on lines 262..276
    cypress/integration/rendering/flowchart-v2.spec.js on lines 277..289
    cypress/integration/rendering/flowchart-v2.spec.js on lines 291..310
    cypress/integration/rendering/flowchart-v2.spec.js on lines 311..326
    cypress/integration/rendering/flowchart-v2.spec.js on lines 327..337
    cypress/integration/rendering/flowchart-v2.spec.js on lines 338..359
    cypress/integration/rendering/flowchart-v2.spec.js on lines 393..401
    cypress/integration/rendering/flowchart-v2.spec.js on lines 402..435
    cypress/integration/rendering/flowchart-v2.spec.js on lines 436..451
    cypress/integration/rendering/flowchart-v2.spec.js on lines 452..462
    cypress/integration/rendering/flowchart-v2.spec.js on lines 463..472
    cypress/integration/rendering/flowchart-v2.spec.js on lines 473..487
    cypress/integration/rendering/flowchart-v2.spec.js on lines 488..505
    cypress/integration/rendering/flowchart-v2.spec.js on lines 506..523
    cypress/integration/rendering/flowchart-v2.spec.js on lines 524..541
    cypress/integration/rendering/flowchart-v2.spec.js on lines 542..559
    cypress/integration/rendering/flowchart-v2.spec.js on lines 560..575
    cypress/integration/rendering/flowchart-v2.spec.js on lines 576..591
    cypress/integration/rendering/flowchart-v2.spec.js on lines 592..607
    cypress/integration/rendering/flowchart-v2.spec.js on lines 608..623
    cypress/integration/rendering/flowchart-v2.spec.js on lines 624..635
    cypress/integration/rendering/flowchart-v2.spec.js on lines 637..645
    cypress/integration/rendering/flowchart-v2.spec.js on lines 647..668
    cypress/integration/rendering/flowchart-v2.spec.js on lines 670..679
    cypress/integration/rendering/flowchart-v2.spec.js on lines 680..690
    cypress/integration/rendering/flowchart.spec.js on lines 726..733
    cypress/integration/rendering/flowchart.spec.js on lines 777..787
    cypress/integration/rendering/flowchart.spec.js on lines 788..811
    cypress/integration/rendering/flowchart.spec.js on lines 812..820
    cypress/integration/rendering/flowchart.spec.js on lines 833..866
    cypress/integration/rendering/flowchart.spec.js on lines 867..882
    cypress/integration/rendering/flowchart.spec.js on lines 883..893
    cypress/integration/rendering/flowchart.spec.js on lines 894..903
    cypress/integration/rendering/flowchart.spec.js on lines 905..916

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 48.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 72 locations. Consider refactoring.
    Open

      it('37: should render non-escaped with html labels', () => {
        imgSnapshotTest(
          `graph TD
            a["<strong>Haiya</strong>"]-->b
          `,
    Severity: Major
    Found in cypress/integration/rendering/flowchart.spec.js and 71 other locations - About 40 mins to fix
    cypress/integration/rendering/flowchart-elk.spec.js on lines 84..91
    cypress/integration/rendering/flowchart-elk.spec.js on lines 155..168
    cypress/integration/rendering/flowchart-elk.spec.js on lines 170..183
    cypress/integration/rendering/flowchart-elk.spec.js on lines 185..204
    cypress/integration/rendering/flowchart-elk.spec.js on lines 206..234
    cypress/integration/rendering/flowchart-elk.spec.js on lines 236..248
    cypress/integration/rendering/flowchart-elk.spec.js on lines 250..270
    cypress/integration/rendering/flowchart-elk.spec.js on lines 272..286
    cypress/integration/rendering/flowchart-elk.spec.js on lines 287..299
    cypress/integration/rendering/flowchart-elk.spec.js on lines 301..320
    cypress/integration/rendering/flowchart-elk.spec.js on lines 321..336
    cypress/integration/rendering/flowchart-elk.spec.js on lines 337..347
    cypress/integration/rendering/flowchart-elk.spec.js on lines 348..369
    cypress/integration/rendering/flowchart-elk.spec.js on lines 403..411
    cypress/integration/rendering/flowchart-elk.spec.js on lines 412..445
    cypress/integration/rendering/flowchart-elk.spec.js on lines 446..461
    cypress/integration/rendering/flowchart-elk.spec.js on lines 462..472
    cypress/integration/rendering/flowchart-elk.spec.js on lines 473..490
    cypress/integration/rendering/flowchart-elk.spec.js on lines 491..508
    cypress/integration/rendering/flowchart-elk.spec.js on lines 509..526
    cypress/integration/rendering/flowchart-elk.spec.js on lines 527..544
    cypress/integration/rendering/flowchart-elk.spec.js on lines 545..560
    cypress/integration/rendering/flowchart-elk.spec.js on lines 561..576
    cypress/integration/rendering/flowchart-elk.spec.js on lines 577..592
    cypress/integration/rendering/flowchart-elk.spec.js on lines 593..608
    cypress/integration/rendering/flowchart-elk.spec.js on lines 609..620
    cypress/integration/rendering/flowchart-elk.spec.js on lines 622..630
    cypress/integration/rendering/flowchart-elk.spec.js on lines 632..653
    cypress/integration/rendering/flowchart-elk.spec.js on lines 655..664
    cypress/integration/rendering/flowchart-elk.spec.js on lines 665..675
    cypress/integration/rendering/flowchart-v2.spec.js on lines 74..81
    cypress/integration/rendering/flowchart-v2.spec.js on lines 145..158
    cypress/integration/rendering/flowchart-v2.spec.js on lines 160..173
    cypress/integration/rendering/flowchart-v2.spec.js on lines 175..194
    cypress/integration/rendering/flowchart-v2.spec.js on lines 196..224
    cypress/integration/rendering/flowchart-v2.spec.js on lines 226..238
    cypress/integration/rendering/flowchart-v2.spec.js on lines 240..260
    cypress/integration/rendering/flowchart-v2.spec.js on lines 262..276
    cypress/integration/rendering/flowchart-v2.spec.js on lines 277..289
    cypress/integration/rendering/flowchart-v2.spec.js on lines 291..310
    cypress/integration/rendering/flowchart-v2.spec.js on lines 311..326
    cypress/integration/rendering/flowchart-v2.spec.js on lines 327..337
    cypress/integration/rendering/flowchart-v2.spec.js on lines 338..359
    cypress/integration/rendering/flowchart-v2.spec.js on lines 393..401
    cypress/integration/rendering/flowchart-v2.spec.js on lines 402..435
    cypress/integration/rendering/flowchart-v2.spec.js on lines 436..451
    cypress/integration/rendering/flowchart-v2.spec.js on lines 452..462
    cypress/integration/rendering/flowchart-v2.spec.js on lines 463..472
    cypress/integration/rendering/flowchart-v2.spec.js on lines 473..487
    cypress/integration/rendering/flowchart-v2.spec.js on lines 488..505
    cypress/integration/rendering/flowchart-v2.spec.js on lines 506..523
    cypress/integration/rendering/flowchart-v2.spec.js on lines 524..541
    cypress/integration/rendering/flowchart-v2.spec.js on lines 542..559
    cypress/integration/rendering/flowchart-v2.spec.js on lines 560..575
    cypress/integration/rendering/flowchart-v2.spec.js on lines 576..591
    cypress/integration/rendering/flowchart-v2.spec.js on lines 592..607
    cypress/integration/rendering/flowchart-v2.spec.js on lines 608..623
    cypress/integration/rendering/flowchart-v2.spec.js on lines 624..635
    cypress/integration/rendering/flowchart-v2.spec.js on lines 637..645
    cypress/integration/rendering/flowchart-v2.spec.js on lines 647..668
    cypress/integration/rendering/flowchart-v2.spec.js on lines 670..679
    cypress/integration/rendering/flowchart-v2.spec.js on lines 680..690
    cypress/integration/rendering/flowchart.spec.js on lines 777..787
    cypress/integration/rendering/flowchart.spec.js on lines 788..811
    cypress/integration/rendering/flowchart.spec.js on lines 812..820
    cypress/integration/rendering/flowchart.spec.js on lines 821..832
    cypress/integration/rendering/flowchart.spec.js on lines 833..866
    cypress/integration/rendering/flowchart.spec.js on lines 867..882
    cypress/integration/rendering/flowchart.spec.js on lines 883..893
    cypress/integration/rendering/flowchart.spec.js on lines 894..903
    cypress/integration/rendering/flowchart.spec.js on lines 905..916

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 48.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 72 locations. Consider refactoring.
    Open

      it('58: handle styling with style expressions', () => {
        imgSnapshotTest(
          `
        graph LR
        id1(Start)-->id2(Stop)
    Severity: Major
    Found in cypress/integration/rendering/flowchart.spec.js and 71 other locations - About 40 mins to fix
    cypress/integration/rendering/flowchart-elk.spec.js on lines 84..91
    cypress/integration/rendering/flowchart-elk.spec.js on lines 155..168
    cypress/integration/rendering/flowchart-elk.spec.js on lines 170..183
    cypress/integration/rendering/flowchart-elk.spec.js on lines 185..204
    cypress/integration/rendering/flowchart-elk.spec.js on lines 206..234
    cypress/integration/rendering/flowchart-elk.spec.js on lines 236..248
    cypress/integration/rendering/flowchart-elk.spec.js on lines 250..270
    cypress/integration/rendering/flowchart-elk.spec.js on lines 272..286
    cypress/integration/rendering/flowchart-elk.spec.js on lines 287..299
    cypress/integration/rendering/flowchart-elk.spec.js on lines 301..320
    cypress/integration/rendering/flowchart-elk.spec.js on lines 321..336
    cypress/integration/rendering/flowchart-elk.spec.js on lines 337..347
    cypress/integration/rendering/flowchart-elk.spec.js on lines 348..369
    cypress/integration/rendering/flowchart-elk.spec.js on lines 403..411
    cypress/integration/rendering/flowchart-elk.spec.js on lines 412..445
    cypress/integration/rendering/flowchart-elk.spec.js on lines 446..461
    cypress/integration/rendering/flowchart-elk.spec.js on lines 462..472
    cypress/integration/rendering/flowchart-elk.spec.js on lines 473..490
    cypress/integration/rendering/flowchart-elk.spec.js on lines 491..508
    cypress/integration/rendering/flowchart-elk.spec.js on lines 509..526
    cypress/integration/rendering/flowchart-elk.spec.js on lines 527..544
    cypress/integration/rendering/flowchart-elk.spec.js on lines 545..560
    cypress/integration/rendering/flowchart-elk.spec.js on lines 561..576
    cypress/integration/rendering/flowchart-elk.spec.js on lines 577..592
    cypress/integration/rendering/flowchart-elk.spec.js on lines 593..608
    cypress/integration/rendering/flowchart-elk.spec.js on lines 609..620
    cypress/integration/rendering/flowchart-elk.spec.js on lines 622..630
    cypress/integration/rendering/flowchart-elk.spec.js on lines 632..653
    cypress/integration/rendering/flowchart-elk.spec.js on lines 655..664
    cypress/integration/rendering/flowchart-elk.spec.js on lines 665..675
    cypress/integration/rendering/flowchart-v2.spec.js on lines 74..81
    cypress/integration/rendering/flowchart-v2.spec.js on lines 145..158
    cypress/integration/rendering/flowchart-v2.spec.js on lines 160..173
    cypress/integration/rendering/flowchart-v2.spec.js on lines 175..194
    cypress/integration/rendering/flowchart-v2.spec.js on lines 196..224
    cypress/integration/rendering/flowchart-v2.spec.js on lines 226..238
    cypress/integration/rendering/flowchart-v2.spec.js on lines 240..260
    cypress/integration/rendering/flowchart-v2.spec.js on lines 262..276
    cypress/integration/rendering/flowchart-v2.spec.js on lines 277..289
    cypress/integration/rendering/flowchart-v2.spec.js on lines 291..310
    cypress/integration/rendering/flowchart-v2.spec.js on lines 311..326
    cypress/integration/rendering/flowchart-v2.spec.js on lines 327..337
    cypress/integration/rendering/flowchart-v2.spec.js on lines 338..359
    cypress/integration/rendering/flowchart-v2.spec.js on lines 393..401
    cypress/integration/rendering/flowchart-v2.spec.js on lines 402..435
    cypress/integration/rendering/flowchart-v2.spec.js on lines 436..451
    cypress/integration/rendering/flowchart-v2.spec.js on lines 452..462
    cypress/integration/rendering/flowchart-v2.spec.js on lines 463..472
    cypress/integration/rendering/flowchart-v2.spec.js on lines 473..487
    cypress/integration/rendering/flowchart-v2.spec.js on lines 488..505
    cypress/integration/rendering/flowchart-v2.spec.js on lines 506..523
    cypress/integration/rendering/flowchart-v2.spec.js on lines 524..541
    cypress/integration/rendering/flowchart-v2.spec.js on lines 542..559
    cypress/integration/rendering/flowchart-v2.spec.js on lines 560..575
    cypress/integration/rendering/flowchart-v2.spec.js on lines 576..591
    cypress/integration/rendering/flowchart-v2.spec.js on lines 592..607
    cypress/integration/rendering/flowchart-v2.spec.js on lines 608..623
    cypress/integration/rendering/flowchart-v2.spec.js on lines 624..635
    cypress/integration/rendering/flowchart-v2.spec.js on lines 637..645
    cypress/integration/rendering/flowchart-v2.spec.js on lines 647..668
    cypress/integration/rendering/flowchart-v2.spec.js on lines 670..679
    cypress/integration/rendering/flowchart-v2.spec.js on lines 680..690
    cypress/integration/rendering/flowchart.spec.js on lines 726..733
    cypress/integration/rendering/flowchart.spec.js on lines 788..811
    cypress/integration/rendering/flowchart.spec.js on lines 812..820
    cypress/integration/rendering/flowchart.spec.js on lines 821..832
    cypress/integration/rendering/flowchart.spec.js on lines 833..866
    cypress/integration/rendering/flowchart.spec.js on lines 867..882
    cypress/integration/rendering/flowchart.spec.js on lines 883..893
    cypress/integration/rendering/flowchart.spec.js on lines 894..903
    cypress/integration/rendering/flowchart.spec.js on lines 905..916

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 48.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 72 locations. Consider refactoring.
    Open

      it('66: apply class called default on node called default', () => {
        imgSnapshotTest(
          `
          graph TD
            classDef default fill:#a34,stroke:#000,stroke-width:4px,color:#fff 
    Severity: Major
    Found in cypress/integration/rendering/flowchart.spec.js and 71 other locations - About 40 mins to fix
    cypress/integration/rendering/flowchart-elk.spec.js on lines 84..91
    cypress/integration/rendering/flowchart-elk.spec.js on lines 155..168
    cypress/integration/rendering/flowchart-elk.spec.js on lines 170..183
    cypress/integration/rendering/flowchart-elk.spec.js on lines 185..204
    cypress/integration/rendering/flowchart-elk.spec.js on lines 206..234
    cypress/integration/rendering/flowchart-elk.spec.js on lines 236..248
    cypress/integration/rendering/flowchart-elk.spec.js on lines 250..270
    cypress/integration/rendering/flowchart-elk.spec.js on lines 272..286
    cypress/integration/rendering/flowchart-elk.spec.js on lines 287..299
    cypress/integration/rendering/flowchart-elk.spec.js on lines 301..320
    cypress/integration/rendering/flowchart-elk.spec.js on lines 321..336
    cypress/integration/rendering/flowchart-elk.spec.js on lines 337..347
    cypress/integration/rendering/flowchart-elk.spec.js on lines 348..369
    cypress/integration/rendering/flowchart-elk.spec.js on lines 403..411
    cypress/integration/rendering/flowchart-elk.spec.js on lines 412..445
    cypress/integration/rendering/flowchart-elk.spec.js on lines 446..461
    cypress/integration/rendering/flowchart-elk.spec.js on lines 462..472
    cypress/integration/rendering/flowchart-elk.spec.js on lines 473..490
    cypress/integration/rendering/flowchart-elk.spec.js on lines 491..508
    cypress/integration/rendering/flowchart-elk.spec.js on lines 509..526
    cypress/integration/rendering/flowchart-elk.spec.js on lines 527..544
    cypress/integration/rendering/flowchart-elk.spec.js on lines 545..560
    cypress/integration/rendering/flowchart-elk.spec.js on lines 561..576
    cypress/integration/rendering/flowchart-elk.spec.js on lines 577..592
    cypress/integration/rendering/flowchart-elk.spec.js on lines 593..608
    cypress/integration/rendering/flowchart-elk.spec.js on lines 609..620
    cypress/integration/rendering/flowchart-elk.spec.js on lines 622..630
    cypress/integration/rendering/flowchart-elk.spec.js on lines 632..653
    cypress/integration/rendering/flowchart-elk.spec.js on lines 655..664
    cypress/integration/rendering/flowchart-elk.spec.js on lines 665..675
    cypress/integration/rendering/flowchart-v2.spec.js on lines 74..81
    cypress/integration/rendering/flowchart-v2.spec.js on lines 145..158
    cypress/integration/rendering/flowchart-v2.spec.js on lines 160..173
    cypress/integration/rendering/flowchart-v2.spec.js on lines 175..194
    cypress/integration/rendering/flowchart-v2.spec.js on lines 196..224
    cypress/integration/rendering/flowchart-v2.spec.js on lines 226..238
    cypress/integration/rendering/flowchart-v2.spec.js on lines 240..260
    cypress/integration/rendering/flowchart-v2.spec.js on lines 262..276
    cypress/integration/rendering/flowchart-v2.spec.js on lines 277..289
    cypress/integration/rendering/flowchart-v2.spec.js on lines 291..310
    cypress/integration/rendering/flowchart-v2.spec.js on lines 311..326
    cypress/integration/rendering/flowchart-v2.spec.js on lines 327..337
    cypress/integration/rendering/flowchart-v2.spec.js on lines 338..359
    cypress/integration/rendering/flowchart-v2.spec.js on lines 393..401
    cypress/integration/rendering/flowchart-v2.spec.js on lines 402..435
    cypress/integration/rendering/flowchart-v2.spec.js on lines 436..451
    cypress/integration/rendering/flowchart-v2.spec.js on lines 452..462
    cypress/integration/rendering/flowchart-v2.spec.js on lines 463..472
    cypress/integration/rendering/flowchart-v2.spec.js on lines 473..487
    cypress/integration/rendering/flowchart-v2.spec.js on lines 488..505
    cypress/integration/rendering/flowchart-v2.spec.js on lines 506..523
    cypress/integration/rendering/flowchart-v2.spec.js on lines 524..541
    cypress/integration/rendering/flowchart-v2.spec.js on lines 542..559
    cypress/integration/rendering/flowchart-v2.spec.js on lines 560..575
    cypress/integration/rendering/flowchart-v2.spec.js on lines 576..591
    cypress/integration/rendering/flowchart-v2.spec.js on lines 592..607
    cypress/integration/rendering/flowchart-v2.spec.js on lines 608..623
    cypress/integration/rendering/flowchart-v2.spec.js on lines 624..635
    cypress/integration/rendering/flowchart-v2.spec.js on lines 637..645
    cypress/integration/rendering/flowchart-v2.spec.js on lines 647..668
    cypress/integration/rendering/flowchart-v2.spec.js on lines 670..679
    cypress/integration/rendering/flowchart-v2.spec.js on lines 680..690
    cypress/integration/rendering/flowchart.spec.js on lines 726..733
    cypress/integration/rendering/flowchart.spec.js on lines 777..787
    cypress/integration/rendering/flowchart.spec.js on lines 788..811
    cypress/integration/rendering/flowchart.spec.js on lines 812..820
    cypress/integration/rendering/flowchart.spec.js on lines 821..832
    cypress/integration/rendering/flowchart.spec.js on lines 833..866
    cypress/integration/rendering/flowchart.spec.js on lines 867..882
    cypress/integration/rendering/flowchart.spec.js on lines 883..893
    cypress/integration/rendering/flowchart.spec.js on lines 905..916

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 48.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 72 locations. Consider refactoring.
    Open

      it('60: handle styling for all node shapes', () => {
        imgSnapshotTest(
          `
          graph LR
          A[red text] -->|default style| B(blue text)
    Severity: Major
    Found in cypress/integration/rendering/flowchart.spec.js and 71 other locations - About 40 mins to fix
    cypress/integration/rendering/flowchart-elk.spec.js on lines 84..91
    cypress/integration/rendering/flowchart-elk.spec.js on lines 155..168
    cypress/integration/rendering/flowchart-elk.spec.js on lines 170..183
    cypress/integration/rendering/flowchart-elk.spec.js on lines 185..204
    cypress/integration/rendering/flowchart-elk.spec.js on lines 206..234
    cypress/integration/rendering/flowchart-elk.spec.js on lines 236..248
    cypress/integration/rendering/flowchart-elk.spec.js on lines 250..270
    cypress/integration/rendering/flowchart-elk.spec.js on lines 272..286
    cypress/integration/rendering/flowchart-elk.spec.js on lines 287..299
    cypress/integration/rendering/flowchart-elk.spec.js on lines 301..320
    cypress/integration/rendering/flowchart-elk.spec.js on lines 321..336
    cypress/integration/rendering/flowchart-elk.spec.js on lines 337..347
    cypress/integration/rendering/flowchart-elk.spec.js on lines 348..369
    cypress/integration/rendering/flowchart-elk.spec.js on lines 403..411
    cypress/integration/rendering/flowchart-elk.spec.js on lines 412..445
    cypress/integration/rendering/flowchart-elk.spec.js on lines 446..461
    cypress/integration/rendering/flowchart-elk.spec.js on lines 462..472
    cypress/integration/rendering/flowchart-elk.spec.js on lines 473..490
    cypress/integration/rendering/flowchart-elk.spec.js on lines 491..508
    cypress/integration/rendering/flowchart-elk.spec.js on lines 509..526
    cypress/integration/rendering/flowchart-elk.spec.js on lines 527..544
    cypress/integration/rendering/flowchart-elk.spec.js on lines 545..560
    cypress/integration/rendering/flowchart-elk.spec.js on lines 561..576
    cypress/integration/rendering/flowchart-elk.spec.js on lines 577..592
    cypress/integration/rendering/flowchart-elk.spec.js on lines 593..608
    cypress/integration/rendering/flowchart-elk.spec.js on lines 609..620
    cypress/integration/rendering/flowchart-elk.spec.js on lines 622..630
    cypress/integration/rendering/flowchart-elk.spec.js on lines 632..653
    cypress/integration/rendering/flowchart-elk.spec.js on lines 655..664
    cypress/integration/rendering/flowchart-elk.spec.js on lines 665..675
    cypress/integration/rendering/flowchart-v2.spec.js on lines 74..81
    cypress/integration/rendering/flowchart-v2.spec.js on lines 145..158
    cypress/integration/rendering/flowchart-v2.spec.js on lines 160..173
    cypress/integration/rendering/flowchart-v2.spec.js on lines 175..194
    cypress/integration/rendering/flowchart-v2.spec.js on lines 196..224
    cypress/integration/rendering/flowchart-v2.spec.js on lines 226..238
    cypress/integration/rendering/flowchart-v2.spec.js on lines 240..260
    cypress/integration/rendering/flowchart-v2.spec.js on lines 262..276
    cypress/integration/rendering/flowchart-v2.spec.js on lines 277..289
    cypress/integration/rendering/flowchart-v2.spec.js on lines 291..310
    cypress/integration/rendering/flowchart-v2.spec.js on lines 311..326
    cypress/integration/rendering/flowchart-v2.spec.js on lines 327..337
    cypress/integration/rendering/flowchart-v2.spec.js on lines 338..359
    cypress/integration/rendering/flowchart-v2.spec.js on lines 393..401
    cypress/integration/rendering/flowchart-v2.spec.js on lines 402..435
    cypress/integration/rendering/flowchart-v2.spec.js on lines 436..451
    cypress/integration/rendering/flowchart-v2.spec.js on lines 452..462
    cypress/integration/rendering/flowchart-v2.spec.js on lines 463..472
    cypress/integration/rendering/flowchart-v2.spec.js on lines 473..487
    cypress/integration/rendering/flowchart-v2.spec.js on lines 488..505
    cypress/integration/rendering/flowchart-v2.spec.js on lines 506..523
    cypress/integration/rendering/flowchart-v2.spec.js on lines 524..541
    cypress/integration/rendering/flowchart-v2.spec.js on lines 542..559
    cypress/integration/rendering/flowchart-v2.spec.js on lines 560..575
    cypress/integration/rendering/flowchart-v2.spec.js on lines 576..591
    cypress/integration/rendering/flowchart-v2.spec.js on lines 592..607
    cypress/integration/rendering/flowchart-v2.spec.js on lines 608..623
    cypress/integration/rendering/flowchart-v2.spec.js on lines 624..635
    cypress/integration/rendering/flowchart-v2.spec.js on lines 637..645
    cypress/integration/rendering/flowchart-v2.spec.js on lines 647..668
    cypress/integration/rendering/flowchart-v2.spec.js on lines 670..679
    cypress/integration/rendering/flowchart-v2.spec.js on lines 680..690
    cypress/integration/rendering/flowchart.spec.js on lines 726..733
    cypress/integration/rendering/flowchart.spec.js on lines 777..787
    cypress/integration/rendering/flowchart.spec.js on lines 812..820
    cypress/integration/rendering/flowchart.spec.js on lines 821..832
    cypress/integration/rendering/flowchart.spec.js on lines 833..866
    cypress/integration/rendering/flowchart.spec.js on lines 867..882
    cypress/integration/rendering/flowchart.spec.js on lines 883..893
    cypress/integration/rendering/flowchart.spec.js on lines 894..903
    cypress/integration/rendering/flowchart.spec.js on lines 905..916

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 48.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 72 locations. Consider refactoring.
    Open

      it('61: fontawesome icons in edge labels', () => {
        imgSnapshotTest(
          `
    graph TD
      C -->|fa:fa-car Car| F[fa:fa-car Car]
    Severity: Major
    Found in cypress/integration/rendering/flowchart.spec.js and 71 other locations - About 40 mins to fix
    cypress/integration/rendering/flowchart-elk.spec.js on lines 84..91
    cypress/integration/rendering/flowchart-elk.spec.js on lines 155..168
    cypress/integration/rendering/flowchart-elk.spec.js on lines 170..183
    cypress/integration/rendering/flowchart-elk.spec.js on lines 185..204
    cypress/integration/rendering/flowchart-elk.spec.js on lines 206..234
    cypress/integration/rendering/flowchart-elk.spec.js on lines 236..248
    cypress/integration/rendering/flowchart-elk.spec.js on lines 250..270
    cypress/integration/rendering/flowchart-elk.spec.js on lines 272..286
    cypress/integration/rendering/flowchart-elk.spec.js on lines 287..299
    cypress/integration/rendering/flowchart-elk.spec.js on lines 301..320
    cypress/integration/rendering/flowchart-elk.spec.js on lines 321..336
    cypress/integration/rendering/flowchart-elk.spec.js on lines 337..347
    cypress/integration/rendering/flowchart-elk.spec.js on lines 348..369
    cypress/integration/rendering/flowchart-elk.spec.js on lines 403..411
    cypress/integration/rendering/flowchart-elk.spec.js on lines 412..445
    cypress/integration/rendering/flowchart-elk.spec.js on lines 446..461
    cypress/integration/rendering/flowchart-elk.spec.js on lines 462..472
    cypress/integration/rendering/flowchart-elk.spec.js on lines 473..490
    cypress/integration/rendering/flowchart-elk.spec.js on lines 491..508
    cypress/integration/rendering/flowchart-elk.spec.js on lines 509..526
    cypress/integration/rendering/flowchart-elk.spec.js on lines 527..544
    cypress/integration/rendering/flowchart-elk.spec.js on lines 545..560
    cypress/integration/rendering/flowchart-elk.spec.js on lines 561..576
    cypress/integration/rendering/flowchart-elk.spec.js on lines 577..592
    cypress/integration/rendering/flowchart-elk.spec.js on lines 593..608
    cypress/integration/rendering/flowchart-elk.spec.js on lines 609..620
    cypress/integration/rendering/flowchart-elk.spec.js on lines 622..630
    cypress/integration/rendering/flowchart-elk.spec.js on lines 632..653
    cypress/integration/rendering/flowchart-elk.spec.js on lines 655..664
    cypress/integration/rendering/flowchart-elk.spec.js on lines 665..675
    cypress/integration/rendering/flowchart-v2.spec.js on lines 74..81
    cypress/integration/rendering/flowchart-v2.spec.js on lines 145..158
    cypress/integration/rendering/flowchart-v2.spec.js on lines 160..173
    cypress/integration/rendering/flowchart-v2.spec.js on lines 175..194
    cypress/integration/rendering/flowchart-v2.spec.js on lines 196..224
    cypress/integration/rendering/flowchart-v2.spec.js on lines 226..238
    cypress/integration/rendering/flowchart-v2.spec.js on lines 240..260
    cypress/integration/rendering/flowchart-v2.spec.js on lines 262..276
    cypress/integration/rendering/flowchart-v2.spec.js on lines 277..289
    cypress/integration/rendering/flowchart-v2.spec.js on lines 291..310
    cypress/integration/rendering/flowchart-v2.spec.js on lines 311..326
    cypress/integration/rendering/flowchart-v2.spec.js on lines 327..337
    cypress/integration/rendering/flowchart-v2.spec.js on lines 338..359
    cypress/integration/rendering/flowchart-v2.spec.js on lines 393..401
    cypress/integration/rendering/flowchart-v2.spec.js on lines 402..435
    cypress/integration/rendering/flowchart-v2.spec.js on lines 436..451
    cypress/integration/rendering/flowchart-v2.spec.js on lines 452..462
    cypress/integration/rendering/flowchart-v2.spec.js on lines 463..472
    cypress/integration/rendering/flowchart-v2.spec.js on lines 473..487
    cypress/integration/rendering/flowchart-v2.spec.js on lines 488..505
    cypress/integration/rendering/flowchart-v2.spec.js on lines 506..523
    cypress/integration/rendering/flowchart-v2.spec.js on lines 524..541
    cypress/integration/rendering/flowchart-v2.spec.js on lines 542..559
    cypress/integration/rendering/flowchart-v2.spec.js on lines 560..575
    cypress/integration/rendering/flowchart-v2.spec.js on lines 576..591
    cypress/integration/rendering/flowchart-v2.spec.js on lines 592..607
    cypress/integration/rendering/flowchart-v2.spec.js on lines 608..623
    cypress/integration/rendering/flowchart-v2.spec.js on lines 624..635
    cypress/integration/rendering/flowchart-v2.spec.js on lines 637..645
    cypress/integration/rendering/flowchart-v2.spec.js on lines 647..668
    cypress/integration/rendering/flowchart-v2.spec.js on lines 670..679
    cypress/integration/rendering/flowchart-v2.spec.js on lines 680..690
    cypress/integration/rendering/flowchart.spec.js on lines 726..733
    cypress/integration/rendering/flowchart.spec.js on lines 777..787
    cypress/integration/rendering/flowchart.spec.js on lines 788..811
    cypress/integration/rendering/flowchart.spec.js on lines 821..832
    cypress/integration/rendering/flowchart.spec.js on lines 833..866
    cypress/integration/rendering/flowchart.spec.js on lines 867..882
    cypress/integration/rendering/flowchart.spec.js on lines 883..893
    cypress/integration/rendering/flowchart.spec.js on lines 894..903
    cypress/integration/rendering/flowchart.spec.js on lines 905..916

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 48.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 72 locations. Consider refactoring.
    Open

      it('67: should be able to style default node independently', () => {
        imgSnapshotTest(
          `
        flowchart TD
          classDef default fill:#a34
    Severity: Major
    Found in cypress/integration/rendering/flowchart.spec.js and 71 other locations - About 40 mins to fix
    cypress/integration/rendering/flowchart-elk.spec.js on lines 84..91
    cypress/integration/rendering/flowchart-elk.spec.js on lines 155..168
    cypress/integration/rendering/flowchart-elk.spec.js on lines 170..183
    cypress/integration/rendering/flowchart-elk.spec.js on lines 185..204
    cypress/integration/rendering/flowchart-elk.spec.js on lines 206..234
    cypress/integration/rendering/flowchart-elk.spec.js on lines 236..248
    cypress/integration/rendering/flowchart-elk.spec.js on lines 250..270
    cypress/integration/rendering/flowchart-elk.spec.js on lines 272..286
    cypress/integration/rendering/flowchart-elk.spec.js on lines 287..299
    cypress/integration/rendering/flowchart-elk.spec.js on lines 301..320
    cypress/integration/rendering/flowchart-elk.spec.js on lines 321..336
    cypress/integration/rendering/flowchart-elk.spec.js on lines 337..347
    cypress/integration/rendering/flowchart-elk.spec.js on lines 348..369
    cypress/integration/rendering/flowchart-elk.spec.js on lines 403..411
    cypress/integration/rendering/flowchart-elk.spec.js on lines 412..445
    cypress/integration/rendering/flowchart-elk.spec.js on lines 446..461
    cypress/integration/rendering/flowchart-elk.spec.js on lines 462..472
    cypress/integration/rendering/flowchart-elk.spec.js on lines 473..490
    cypress/integration/rendering/flowchart-elk.spec.js on lines 491..508
    cypress/integration/rendering/flowchart-elk.spec.js on lines 509..526
    cypress/integration/rendering/flowchart-elk.spec.js on lines 527..544
    cypress/integration/rendering/flowchart-elk.spec.js on lines 545..560
    cypress/integration/rendering/flowchart-elk.spec.js on lines 561..576
    cypress/integration/rendering/flowchart-elk.spec.js on lines 577..592
    cypress/integration/rendering/flowchart-elk.spec.js on lines 593..608
    cypress/integration/rendering/flowchart-elk.spec.js on lines 609..620
    cypress/integration/rendering/flowchart-elk.spec.js on lines 622..630
    cypress/integration/rendering/flowchart-elk.spec.js on lines 632..653
    cypress/integration/rendering/flowchart-elk.spec.js on lines 655..664
    cypress/integration/rendering/flowchart-elk.spec.js on lines 665..675
    cypress/integration/rendering/flowchart-v2.spec.js on lines 74..81
    cypress/integration/rendering/flowchart-v2.spec.js on lines 145..158
    cypress/integration/rendering/flowchart-v2.spec.js on lines 160..173
    cypress/integration/rendering/flowchart-v2.spec.js on lines 175..194
    cypress/integration/rendering/flowchart-v2.spec.js on lines 196..224
    cypress/integration/rendering/flowchart-v2.spec.js on lines 226..238
    cypress/integration/rendering/flowchart-v2.spec.js on lines 240..260
    cypress/integration/rendering/flowchart-v2.spec.js on lines 262..276
    cypress/integration/rendering/flowchart-v2.spec.js on lines 277..289
    cypress/integration/rendering/flowchart-v2.spec.js on lines 291..310
    cypress/integration/rendering/flowchart-v2.spec.js on lines 311..326
    cypress/integration/rendering/flowchart-v2.spec.js on lines 327..337
    cypress/integration/rendering/flowchart-v2.spec.js on lines 338..359
    cypress/integration/rendering/flowchart-v2.spec.js on lines 393..401
    cypress/integration/rendering/flowchart-v2.spec.js on lines 402..435
    cypress/integration/rendering/flowchart-v2.spec.js on lines 436..451
    cypress/integration/rendering/flowchart-v2.spec.js on lines 452..462
    cypress/integration/rendering/flowchart-v2.spec.js on lines 463..472
    cypress/integration/rendering/flowchart-v2.spec.js on lines 473..487
    cypress/integration/rendering/flowchart-v2.spec.js on lines 488..505
    cypress/integration/rendering/flowchart-v2.spec.js on lines 506..523
    cypress/integration/rendering/flowchart-v2.spec.js on lines 524..541
    cypress/integration/rendering/flowchart-v2.spec.js on lines 542..559
    cypress/integration/rendering/flowchart-v2.spec.js on lines 560..575
    cypress/integration/rendering/flowchart-v2.spec.js on lines 576..591
    cypress/integration/rendering/flowchart-v2.spec.js on lines 592..607
    cypress/integration/rendering/flowchart-v2.spec.js on lines 608..623
    cypress/integration/rendering/flowchart-v2.spec.js on lines 624..635
    cypress/integration/rendering/flowchart-v2.spec.js on lines 637..645
    cypress/integration/rendering/flowchart-v2.spec.js on lines 647..668
    cypress/integration/rendering/flowchart-v2.spec.js on lines 670..679
    cypress/integration/rendering/flowchart-v2.spec.js on lines 680..690
    cypress/integration/rendering/flowchart.spec.js on lines 726..733
    cypress/integration/rendering/flowchart.spec.js on lines 777..787
    cypress/integration/rendering/flowchart.spec.js on lines 788..811
    cypress/integration/rendering/flowchart.spec.js on lines 812..820
    cypress/integration/rendering/flowchart.spec.js on lines 821..832
    cypress/integration/rendering/flowchart.spec.js on lines 833..866
    cypress/integration/rendering/flowchart.spec.js on lines 867..882
    cypress/integration/rendering/flowchart.spec.js on lines 883..893
    cypress/integration/rendering/flowchart.spec.js on lines 894..903

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 48.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 72 locations. Consider refactoring.
    Open

      it('64: fontawesome icons in edge labels', () => {
        imgSnapshotTest(
          `
        %%{init:{"theme":"base", "themeVariables": {"primaryColor":"#411d4e", "titleColor":"white", "darkMode":true}}}%%
        flowchart LR
    Severity: Major
    Found in cypress/integration/rendering/flowchart.spec.js and 71 other locations - About 40 mins to fix
    cypress/integration/rendering/flowchart-elk.spec.js on lines 84..91
    cypress/integration/rendering/flowchart-elk.spec.js on lines 155..168
    cypress/integration/rendering/flowchart-elk.spec.js on lines 170..183
    cypress/integration/rendering/flowchart-elk.spec.js on lines 185..204
    cypress/integration/rendering/flowchart-elk.spec.js on lines 206..234
    cypress/integration/rendering/flowchart-elk.spec.js on lines 236..248
    cypress/integration/rendering/flowchart-elk.spec.js on lines 250..270
    cypress/integration/rendering/flowchart-elk.spec.js on lines 272..286
    cypress/integration/rendering/flowchart-elk.spec.js on lines 287..299
    cypress/integration/rendering/flowchart-elk.spec.js on lines 301..320
    cypress/integration/rendering/flowchart-elk.spec.js on lines 321..336
    cypress/integration/rendering/flowchart-elk.spec.js on lines 337..347
    cypress/integration/rendering/flowchart-elk.spec.js on lines 348..369
    cypress/integration/rendering/flowchart-elk.spec.js on lines 403..411
    cypress/integration/rendering/flowchart-elk.spec.js on lines 412..445
    cypress/integration/rendering/flowchart-elk.spec.js on lines 446..461
    cypress/integration/rendering/flowchart-elk.spec.js on lines 462..472
    cypress/integration/rendering/flowchart-elk.spec.js on lines 473..490
    cypress/integration/rendering/flowchart-elk.spec.js on lines 491..508
    cypress/integration/rendering/flowchart-elk.spec.js on lines 509..526
    cypress/integration/rendering/flowchart-elk.spec.js on lines 527..544
    cypress/integration/rendering/flowchart-elk.spec.js on lines 545..560
    cypress/integration/rendering/flowchart-elk.spec.js on lines 561..576
    cypress/integration/rendering/flowchart-elk.spec.js on lines 577..592
    cypress/integration/rendering/flowchart-elk.spec.js on lines 593..608
    cypress/integration/rendering/flowchart-elk.spec.js on lines 609..620
    cypress/integration/rendering/flowchart-elk.spec.js on lines 622..630
    cypress/integration/rendering/flowchart-elk.spec.js on lines 632..653
    cypress/integration/rendering/flowchart-elk.spec.js on lines 655..664
    cypress/integration/rendering/flowchart-elk.spec.js on lines 665..675
    cypress/integration/rendering/flowchart-v2.spec.js on lines 74..81
    cypress/integration/rendering/flowchart-v2.spec.js on lines 145..158
    cypress/integration/rendering/flowchart-v2.spec.js on lines 160..173
    cypress/integration/rendering/flowchart-v2.spec.js on lines 175..194
    cypress/integration/rendering/flowchart-v2.spec.js on lines 196..224
    cypress/integration/rendering/flowchart-v2.spec.js on lines 226..238
    cypress/integration/rendering/flowchart-v2.spec.js on lines 240..260
    cypress/integration/rendering/flowchart-v2.spec.js on lines 262..276
    cypress/integration/rendering/flowchart-v2.spec.js on lines 277..289
    cypress/integration/rendering/flowchart-v2.spec.js on lines 291..310
    cypress/integration/rendering/flowchart-v2.spec.js on lines 311..326
    cypress/integration/rendering/flowchart-v2.spec.js on lines 327..337
    cypress/integration/rendering/flowchart-v2.spec.js on lines 338..359
    cypress/integration/rendering/flowchart-v2.spec.js on lines 393..401
    cypress/integration/rendering/flowchart-v2.spec.js on lines 402..435
    cypress/integration/rendering/flowchart-v2.spec.js on lines 436..451
    cypress/integration/rendering/flowchart-v2.spec.js on lines 452..462
    cypress/integration/rendering/flowchart-v2.spec.js on lines 463..472
    cypress/integration/rendering/flowchart-v2.spec.js on lines 473..487
    cypress/integration/rendering/flowchart-v2.spec.js on lines 488..505
    cypress/integration/rendering/flowchart-v2.spec.js on lines 506..523
    cypress/integration/rendering/flowchart-v2.spec.js on lines 524..541
    cypress/integration/rendering/flowchart-v2.spec.js on lines 542..559
    cypress/integration/rendering/flowchart-v2.spec.js on lines 560..575
    cypress/integration/rendering/flowchart-v2.spec.js on lines 576..591
    cypress/integration/rendering/flowchart-v2.spec.js on lines 592..607
    cypress/integration/rendering/flowchart-v2.spec.js on lines 608..623
    cypress/integration/rendering/flowchart-v2.spec.js on lines 624..635
    cypress/integration/rendering/flowchart-v2.spec.js on lines 637..645
    cypress/integration/rendering/flowchart-v2.spec.js on lines 647..668
    cypress/integration/rendering/flowchart-v2.spec.js on lines 670..679
    cypress/integration/rendering/flowchart-v2.spec.js on lines 680..690
    cypress/integration/rendering/flowchart.spec.js on lines 726..733
    cypress/integration/rendering/flowchart.spec.js on lines 777..787
    cypress/integration/rendering/flowchart.spec.js on lines 788..811
    cypress/integration/rendering/flowchart.spec.js on lines 812..820
    cypress/integration/rendering/flowchart.spec.js on lines 821..832
    cypress/integration/rendering/flowchart.spec.js on lines 833..866
    cypress/integration/rendering/flowchart.spec.js on lines 883..893
    cypress/integration/rendering/flowchart.spec.js on lines 894..903
    cypress/integration/rendering/flowchart.spec.js on lines 905..916

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 48.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 72 locations. Consider refactoring.
    Open

      it('65: text-color from classes', () => {
        imgSnapshotTest(
          `
          flowchart LR
            classDef dark fill:#000,stroke:#000,stroke-width:4px,color:#fff
    Severity: Major
    Found in cypress/integration/rendering/flowchart.spec.js and 71 other locations - About 40 mins to fix
    cypress/integration/rendering/flowchart-elk.spec.js on lines 84..91
    cypress/integration/rendering/flowchart-elk.spec.js on lines 155..168
    cypress/integration/rendering/flowchart-elk.spec.js on lines 170..183
    cypress/integration/rendering/flowchart-elk.spec.js on lines 185..204
    cypress/integration/rendering/flowchart-elk.spec.js on lines 206..234
    cypress/integration/rendering/flowchart-elk.spec.js on lines 236..248
    cypress/integration/rendering/flowchart-elk.spec.js on lines 250..270
    cypress/integration/rendering/flowchart-elk.spec.js on lines 272..286
    cypress/integration/rendering/flowchart-elk.spec.js on lines 287..299
    cypress/integration/rendering/flowchart-elk.spec.js on lines 301..320
    cypress/integration/rendering/flowchart-elk.spec.js on lines 321..336
    cypress/integration/rendering/flowchart-elk.spec.js on lines 337..347
    cypress/integration/rendering/flowchart-elk.spec.js on lines 348..369
    cypress/integration/rendering/flowchart-elk.spec.js on lines 403..411
    cypress/integration/rendering/flowchart-elk.spec.js on lines 412..445
    cypress/integration/rendering/flowchart-elk.spec.js on lines 446..461
    cypress/integration/rendering/flowchart-elk.spec.js on lines 462..472
    cypress/integration/rendering/flowchart-elk.spec.js on lines 473..490
    cypress/integration/rendering/flowchart-elk.spec.js on lines 491..508
    cypress/integration/rendering/flowchart-elk.spec.js on lines 509..526
    cypress/integration/rendering/flowchart-elk.spec.js on lines 527..544
    cypress/integration/rendering/flowchart-elk.spec.js on lines 545..560
    cypress/integration/rendering/flowchart-elk.spec.js on lines 561..576
    cypress/integration/rendering/flowchart-elk.spec.js on lines 577..592
    cypress/integration/rendering/flowchart-elk.spec.js on lines 593..608
    cypress/integration/rendering/flowchart-elk.spec.js on lines 609..620
    cypress/integration/rendering/flowchart-elk.spec.js on lines 622..630
    cypress/integration/rendering/flowchart-elk.spec.js on lines 632..653
    cypress/integration/rendering/flowchart-elk.spec.js on lines 655..664
    cypress/integration/rendering/flowchart-elk.spec.js on lines 665..675
    cypress/integration/rendering/flowchart-v2.spec.js on lines 74..81
    cypress/integration/rendering/flowchart-v2.spec.js on lines 145..158
    cypress/integration/rendering/flowchart-v2.spec.js on lines 160..173
    cypress/integration/rendering/flowchart-v2.spec.js on lines 175..194
    cypress/integration/rendering/flowchart-v2.spec.js on lines 196..224
    cypress/integration/rendering/flowchart-v2.spec.js on lines 226..238
    cypress/integration/rendering/flowchart-v2.spec.js on lines 240..260
    cypress/integration/rendering/flowchart-v2.spec.js on lines 262..276
    cypress/integration/rendering/flowchart-v2.spec.js on lines 277..289
    cypress/integration/rendering/flowchart-v2.spec.js on lines 291..310
    cypress/integration/rendering/flowchart-v2.spec.js on lines 311..326
    cypress/integration/rendering/flowchart-v2.spec.js on lines 327..337
    cypress/integration/rendering/flowchart-v2.spec.js on lines 338..359
    cypress/integration/rendering/flowchart-v2.spec.js on lines 393..401
    cypress/integration/rendering/flowchart-v2.spec.js on lines 402..435
    cypress/integration/rendering/flowchart-v2.spec.js on lines 436..451
    cypress/integration/rendering/flowchart-v2.spec.js on lines 452..462
    cypress/integration/rendering/flowchart-v2.spec.js on lines 463..472
    cypress/integration/rendering/flowchart-v2.spec.js on lines 473..487
    cypress/integration/rendering/flowchart-v2.spec.js on lines 488..505
    cypress/integration/rendering/flowchart-v2.spec.js on lines 506..523
    cypress/integration/rendering/flowchart-v2.spec.js on lines 524..541
    cypress/integration/rendering/flowchart-v2.spec.js on lines 542..559
    cypress/integration/rendering/flowchart-v2.spec.js on lines 560..575
    cypress/integration/rendering/flowchart-v2.spec.js on lines 576..591
    cypress/integration/rendering/flowchart-v2.spec.js on lines 592..607
    cypress/integration/rendering/flowchart-v2.spec.js on lines 608..623
    cypress/integration/rendering/flowchart-v2.spec.js on lines 624..635
    cypress/integration/rendering/flowchart-v2.spec.js on lines 637..645
    cypress/integration/rendering/flowchart-v2.spec.js on lines 647..668
    cypress/integration/rendering/flowchart-v2.spec.js on lines 670..679
    cypress/integration/rendering/flowchart-v2.spec.js on lines 680..690
    cypress/integration/rendering/flowchart.spec.js on lines 726..733
    cypress/integration/rendering/flowchart.spec.js on lines 777..787
    cypress/integration/rendering/flowchart.spec.js on lines 788..811
    cypress/integration/rendering/flowchart.spec.js on lines 812..820
    cypress/integration/rendering/flowchart.spec.js on lines 821..832
    cypress/integration/rendering/flowchart.spec.js on lines 833..866
    cypress/integration/rendering/flowchart.spec.js on lines 867..882
    cypress/integration/rendering/flowchart.spec.js on lines 894..903
    cypress/integration/rendering/flowchart.spec.js on lines 905..916

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 48.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 72 locations. Consider refactoring.
    Open

      it('63: fontawesome icons in edge labels', () => {
        imgSnapshotTest(
          `
        graph TB
          A
    Severity: Major
    Found in cypress/integration/rendering/flowchart.spec.js and 71 other locations - About 40 mins to fix
    cypress/integration/rendering/flowchart-elk.spec.js on lines 84..91
    cypress/integration/rendering/flowchart-elk.spec.js on lines 155..168
    cypress/integration/rendering/flowchart-elk.spec.js on lines 170..183
    cypress/integration/rendering/flowchart-elk.spec.js on lines 185..204
    cypress/integration/rendering/flowchart-elk.spec.js on lines 206..234
    cypress/integration/rendering/flowchart-elk.spec.js on lines 236..248
    cypress/integration/rendering/flowchart-elk.spec.js on lines 250..270
    cypress/integration/rendering/flowchart-elk.spec.js on lines 272..286
    cypress/integration/rendering/flowchart-elk.spec.js on lines 287..299
    cypress/integration/rendering/flowchart-elk.spec.js on lines 301..320
    cypress/integration/rendering/flowchart-elk.spec.js on lines 321..336
    cypress/integration/rendering/flowchart-elk.spec.js on lines 337..347
    cypress/integration/rendering/flowchart-elk.spec.js on lines 348..369
    cypress/integration/rendering/flowchart-elk.spec.js on lines 403..411
    cypress/integration/rendering/flowchart-elk.spec.js on lines 412..445
    cypress/integration/rendering/flowchart-elk.spec.js on lines 446..461
    cypress/integration/rendering/flowchart-elk.spec.js on lines 462..472
    cypress/integration/rendering/flowchart-elk.spec.js on lines 473..490
    cypress/integration/rendering/flowchart-elk.spec.js on lines 491..508
    cypress/integration/rendering/flowchart-elk.spec.js on lines 509..526
    cypress/integration/rendering/flowchart-elk.spec.js on lines 527..544
    cypress/integration/rendering/flowchart-elk.spec.js on lines 545..560
    cypress/integration/rendering/flowchart-elk.spec.js on lines 561..576
    cypress/integration/rendering/flowchart-elk.spec.js on lines 577..592
    cypress/integration/rendering/flowchart-elk.spec.js on lines 593..608
    cypress/integration/rendering/flowchart-elk.spec.js on lines 609..620
    cypress/integration/rendering/flowchart-elk.spec.js on lines 622..630
    cypress/integration/rendering/flowchart-elk.spec.js on lines 632..653
    cypress/integration/rendering/flowchart-elk.spec.js on lines 655..664
    cypress/integration/rendering/flowchart-elk.spec.js on lines 665..675
    cypress/integration/rendering/flowchart-v2.spec.js on lines 74..81
    cypress/integration/rendering/flowchart-v2.spec.js on lines 145..158
    cypress/integration/rendering/flowchart-v2.spec.js on lines 160..173
    cypress/integration/rendering/flowchart-v2.spec.js on lines 175..194
    cypress/integration/rendering/flowchart-v2.spec.js on lines 196..224
    cypress/integration/rendering/flowchart-v2.spec.js on lines 226..238
    cypress/integration/rendering/flowchart-v2.spec.js on lines 240..260
    cypress/integration/rendering/flowchart-v2.spec.js on lines 262..276
    cypress/integration/rendering/flowchart-v2.spec.js on lines 277..289
    cypress/integration/rendering/flowchart-v2.spec.js on lines 291..310
    cypress/integration/rendering/flowchart-v2.spec.js on lines 311..326
    cypress/integration/rendering/flowchart-v2.spec.js on lines 327..337
    cypress/integration/rendering/flowchart-v2.spec.js on lines 338..359
    cypress/integration/rendering/flowchart-v2.spec.js on lines 393..401
    cypress/integration/rendering/flowchart-v2.spec.js on lines 402..435
    cypress/integration/rendering/flowchart-v2.spec.js on lines 436..451
    cypress/integration/rendering/flowchart-v2.spec.js on lines 452..462
    cypress/integration/rendering/flowchart-v2.spec.js on lines 463..472
    cypress/integration/rendering/flowchart-v2.spec.js on lines 473..487
    cypress/integration/rendering/flowchart-v2.spec.js on lines 488..505
    cypress/integration/rendering/flowchart-v2.spec.js on lines 506..523
    cypress/integration/rendering/flowchart-v2.spec.js on lines 524..541
    cypress/integration/rendering/flowchart-v2.spec.js on lines 542..559
    cypress/integration/rendering/flowchart-v2.spec.js on lines 560..575
    cypress/integration/rendering/flowchart-v2.spec.js on lines 576..591
    cypress/integration/rendering/flowchart-v2.spec.js on lines 592..607
    cypress/integration/rendering/flowchart-v2.spec.js on lines 608..623
    cypress/integration/rendering/flowchart-v2.spec.js on lines 624..635
    cypress/integration/rendering/flowchart-v2.spec.js on lines 637..645
    cypress/integration/rendering/flowchart-v2.spec.js on lines 647..668
    cypress/integration/rendering/flowchart-v2.spec.js on lines 670..679
    cypress/integration/rendering/flowchart-v2.spec.js on lines 680..690
    cypress/integration/rendering/flowchart.spec.js on lines 726..733
    cypress/integration/rendering/flowchart.spec.js on lines 777..787
    cypress/integration/rendering/flowchart.spec.js on lines 788..811
    cypress/integration/rendering/flowchart.spec.js on lines 812..820
    cypress/integration/rendering/flowchart.spec.js on lines 821..832
    cypress/integration/rendering/flowchart.spec.js on lines 867..882
    cypress/integration/rendering/flowchart.spec.js on lines 883..893
    cypress/integration/rendering/flowchart.spec.js on lines 894..903
    cypress/integration/rendering/flowchart.spec.js on lines 905..916

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 48.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 2 locations. Consider refactoring.
    Open

      it('13: should render color of styled nodes', () => {
        imgSnapshotTest(
          `
          graph LR
            foo-->bar
    Severity: Minor
    Found in cypress/integration/rendering/flowchart.spec.js and 1 other location - About 35 mins to fix
    cypress/integration/rendering/flowchart.spec.js on lines 364..386

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 47.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 2 locations. Consider refactoring.
    Open

      it('14: should render hexagons', () => {
        imgSnapshotTest(
          `
          graph TD
            A[Christmas] -->|Get money| B(Go shopping)
    Severity: Minor
    Found in cypress/integration/rendering/flowchart.spec.js and 1 other location - About 35 mins to fix
    cypress/integration/rendering/flowchart.spec.js on lines 345..362

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 47.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    There are no issues that match your filters.

    Category
    Status