mirror of
https://github.com/mermaid-js/mermaid.git
synced 2025-01-28 07:03:17 +08:00
Add unit tests for stange node names
This commit is contained in:
parent
834c67ecaa
commit
ef4f22841f
@ -299,11 +299,44 @@ describe('[Singlenodes] when parsing', () => {
|
|||||||
expect(vert[`a_${keyword}_node`].text).toBe(`a_${keyword}_node`);
|
expect(vert[`a_${keyword}_node`].text).toBe(`a_${keyword}_node`);
|
||||||
});
|
});
|
||||||
|
|
||||||
it.each(keywords)('should handle nodes ending in keywords', function (keyword) {
|
it.each(keywords)('should handle nodes ending in %s', function (keyword) {
|
||||||
const res = flow.parser.parse(`graph TD;node_${keyword};node.${keyword};node-${keyword};`);
|
const res = flow.parser.parse(`graph TD;node_${keyword};node.${keyword};node-${keyword};`);
|
||||||
const vert = flow.parser.yy.getVertices();
|
const vert = flow.parser.yy.getVertices();
|
||||||
expect(vert[`node_${keyword}`].text).toBe(`node_${keyword}`);
|
expect(vert[`node_${keyword}`].text).toBe(`node_${keyword}`);
|
||||||
expect(vert[`node.${keyword}`].text).toBe(`node.${keyword}`);
|
expect(vert[`node.${keyword}`].text).toBe(`node.${keyword}`);
|
||||||
expect(vert[`node-${keyword}`].text).toBe(`node-${keyword}`);
|
expect(vert[`node-${keyword}`].text).toBe(`node-${keyword}`);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const errorKeywords = [
|
||||||
|
'graph',
|
||||||
|
'flowchart',
|
||||||
|
'flowchart-elk',
|
||||||
|
'style',
|
||||||
|
'linkStyle',
|
||||||
|
'interpolate',
|
||||||
|
'classDef',
|
||||||
|
'class',
|
||||||
|
'_self',
|
||||||
|
'_blank',
|
||||||
|
'_parent',
|
||||||
|
'_top',
|
||||||
|
'end',
|
||||||
|
'subgraph',
|
||||||
|
];
|
||||||
|
it.each(errorKeywords)('should throw error at nodes beginning with %s', function (keyword) {
|
||||||
|
const str = `graph TD;${keyword}.node;${keyword}-node;${keyword}/node`;
|
||||||
|
const vert = flow.parser.yy.getVertices();
|
||||||
|
|
||||||
|
expect(() => flow.parser.parse(str)).toThrowError();
|
||||||
|
});
|
||||||
|
|
||||||
|
const workingKeywords = ['default', 'href', 'click', 'call'];
|
||||||
|
|
||||||
|
it.each(workingKeywords)('should parse node beginning with %s', function (keyword) {
|
||||||
|
flow.parser.parse(`graph TD; ${keyword}.node;${keyword}-node;${keyword}/node;`);
|
||||||
|
const vert = flow.parser.yy.getVertices();
|
||||||
|
expect(vert[`${keyword}.node`].text).toBe(`${keyword}.node`);
|
||||||
|
expect(vert[`${keyword}-node`].text).toBe(`${keyword}-node`);
|
||||||
|
expect(vert[`${keyword}/node`].text).toBe(`${keyword}/node`);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user