From 9a0a5ca804f4898d8c5d12679b55c8530acfb645 Mon Sep 17 00:00:00 2001 From: Brian Mearns Date: Fri, 4 Oct 2019 22:03:20 -0400 Subject: [PATCH] #530 Add some unit tests for flowRenderer.addVertices --- docs/mermaidAPI.md | 2 +- src/diagrams/flowchart/flowRenderer.spec.js | 58 +++++++++++++++++++++ 2 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 src/diagrams/flowchart/flowRenderer.spec.js diff --git a/docs/mermaidAPI.md b/docs/mermaidAPI.md index bfad444f4..59aafba4f 100644 --- a/docs/mermaidAPI.md +++ b/docs/mermaidAPI.md @@ -77,7 +77,7 @@ This option decides the amount of logging to be used. Sets the level of trust to be used on the parsed diagrams. -- **strict**: (**default**) tags in text are encoded, click functionality is disabled +- **strict**: (**default**) tags in text are encoded, click functionality is disabeled - **loose**: tags in text are allowed, click functionality is enabled ## startOnLoad diff --git a/src/diagrams/flowchart/flowRenderer.spec.js b/src/diagrams/flowchart/flowRenderer.spec.js new file mode 100644 index 000000000..cdfd97a24 --- /dev/null +++ b/src/diagrams/flowchart/flowRenderer.spec.js @@ -0,0 +1,58 @@ +import { addVertices } from './flowRenderer'; +import { setConfig } from '../../config'; + +setConfig({ + securityLevel: 'strict', + flowchart: { + htmlLabels: false + } +}); + +describe('the flowchart renderer', function() { + describe('when adding vertices to a graph', function() { + [ + ['round', 'rect', 5], + ['square', 'rect'], + ['diamond', 'question'], + ['hexagon', 'hexagon'], + ['odd', 'rect_left_inv_arrow'], + ['lean_right', 'lean_right'], + ['lean_left', 'lean_left'], + ['trapezoid', 'trapezoid'], + ['inv_trapezoid', 'inv_trapezoid'], + ['odd_right', 'rect_left_inv_arrow'], + ['circle', 'circle'], + ['ellipse', 'ellipse'], + ['group', 'rect'] + ].forEach(function([type, expectedShape, expectedRadios = 0]) { + it(`should add the correct shaped node to the graph for vertex type ${type}`, function() { + const addedNodes = []; + const mockG = { + setNode: function(id, object) { + addedNodes.push([id, object]); + } + }; + addVertices( + { + v1: { + type, + id: 'my-node-id', + classes: [], + styles: [], + text: 'my vertex text' + } + }, + mockG, + 'svg-id' + ); + expect(addedNodes).toHaveLength(1); + expect(addedNodes[0][0]).toEqual('my-node-id'); + expect(addedNodes[0][1]).toHaveProperty('id', 'my-node-id'); + expect(addedNodes[0][1]).toHaveProperty('labelType', 'svg'); + expect(addedNodes[0][1]).toHaveProperty('shape', expectedShape); + expect(addedNodes[0][1]).toHaveProperty('rx', expectedRadios); + expect(addedNodes[0][1]).toHaveProperty('ry', expectedRadios); + }); + }); + }); +});