mirror of
https://github.com/mermaid-js/mermaid.git
synced 2025-10-27 17:04:10 +01:00
Fix for issues #249. Adding configuration option for when to use absolute references for arrow heads. Default is off.
Jasmine tests running in browser via karma.
This commit is contained in:
@@ -11,96 +11,96 @@ describe('class diagram, ', function () {
|
||||
});
|
||||
|
||||
it('should handle relation definitions', function () {
|
||||
var str = `classDiagram
|
||||
Class01 <|-- Class02
|
||||
Class03 *-- Class04
|
||||
Class05 o-- Class06
|
||||
Class07 .. Class08
|
||||
Class09 -- Class1`;
|
||||
var str = 'classDiagram\n'+
|
||||
'Class01 <|-- Class02\n'+
|
||||
'Class03 *-- Class04\n'+
|
||||
'Class05 o-- Class06\n'+
|
||||
'Class07 .. Class08\n'+
|
||||
'Class09 -- Class1';
|
||||
|
||||
cd.parse(str);
|
||||
});
|
||||
it('should handle relation definition of different types and directions', function () {
|
||||
var str = `classDiagram
|
||||
Class11 <|.. Class12
|
||||
Class13 --> Class14
|
||||
Class15 ..> Class16
|
||||
Class17 ..|> Class18
|
||||
Class19 <--* Class20`;
|
||||
var str = 'classDiagram\n'+
|
||||
'Class11 <|.. Class12\n'+
|
||||
'Class13 --> Class14\n'+
|
||||
'Class15 ..> Class16\n'+
|
||||
'Class17 ..|> Class18\n'+
|
||||
'Class19 <--* Class20';
|
||||
|
||||
cd.parse(str);
|
||||
});
|
||||
|
||||
it('should handle cardinality and labels', function () {
|
||||
var str = `classDiagram
|
||||
Class01 "1" *-- "many" Class02 : contains
|
||||
Class03 o-- Class04 : aggregation
|
||||
Class05 --> "1" Class06`;
|
||||
var str = 'classDiagram\n'+
|
||||
'Class01 "1" *-- "many" Class02 : contains\n'+
|
||||
'Class03 o-- Class04 : aggregation\n'+
|
||||
'Class05 --> "1" Class06';
|
||||
|
||||
cd.parse(str);
|
||||
});
|
||||
it('should handle class definitions', function () {
|
||||
var str = `classDiagram
|
||||
class Car
|
||||
Driver -- Car : drives >
|
||||
Car *-- Wheel : have 4 >
|
||||
Car -- Person : < owns`;
|
||||
var str = 'classDiagram\n'+
|
||||
'class Car\n'+
|
||||
'Driver -- Car : drives >\n'+
|
||||
'Car *-- Wheel : have 4 >\n'+
|
||||
'Car -- Person : < owns';
|
||||
|
||||
cd.parse(str);
|
||||
});
|
||||
|
||||
it('should handle method statements', function () {
|
||||
var str = `classDiagram
|
||||
Object <|-- ArrayList
|
||||
Object : equals()
|
||||
ArrayList : Object[] elementData
|
||||
ArrayList : size()`;
|
||||
var str = 'classDiagram\n'+
|
||||
'Object <|-- ArrayList\n'+
|
||||
'Object : equals()\n'+
|
||||
'ArrayList : Object[] elementData\n'+
|
||||
'ArrayList : size()';
|
||||
|
||||
cd.parse(str);
|
||||
});
|
||||
it('should handle parsing of method statements grouped by brackets', function () {
|
||||
var str = `classDiagram
|
||||
class Dummy {
|
||||
String data
|
||||
void methods()
|
||||
}
|
||||
|
||||
class Flight {
|
||||
flightNumber : Integer
|
||||
departureTime : Date
|
||||
}`;
|
||||
var str = 'classDiagram\n'+
|
||||
'class Dummy {\n'+
|
||||
'String data\n'+
|
||||
' void methods()\n'+
|
||||
'}\n'+
|
||||
'\n'+
|
||||
'class Flight {\n'+
|
||||
' flightNumber : Integer\n'+
|
||||
' departureTime : Date\n'+
|
||||
'}';
|
||||
|
||||
cd.parse(str);
|
||||
});
|
||||
|
||||
it('should handle parsing of separators', function () {
|
||||
var str = `classDiagram
|
||||
class Foo1 {
|
||||
You can use
|
||||
several lines
|
||||
..
|
||||
as you want
|
||||
and group
|
||||
==
|
||||
things together.
|
||||
__
|
||||
You can have as many groups
|
||||
as you want
|
||||
--
|
||||
End of class
|
||||
}
|
||||
|
||||
class User {
|
||||
.. Simple Getter ..
|
||||
+ getName()
|
||||
+ getAddress()
|
||||
.. Some setter ..
|
||||
+ setName()
|
||||
__ private data __
|
||||
int age
|
||||
-- encrypted --
|
||||
String password
|
||||
}`;
|
||||
var str = 'classDiagram\n'+
|
||||
'class Foo1 {\n'+
|
||||
' You can use\n'+
|
||||
' several lines\n'+
|
||||
'..\n'+
|
||||
'as you want\n'+
|
||||
'and group\n'+
|
||||
'==\n'+
|
||||
'things together.\n'+
|
||||
'__\n'+
|
||||
'You can have as many groups\n'+
|
||||
'as you want\n'+
|
||||
'--\n'+
|
||||
'End of class\n'+
|
||||
'}\n'+
|
||||
'\n'+
|
||||
'class User {\n'+
|
||||
'.. Simple Getter ..\n'+
|
||||
'+ getName()\n'+
|
||||
'+ getAddress()\n'+
|
||||
'.. Some setter ..\n'+
|
||||
'+ setName()\n'+
|
||||
'__ private data __\n'+
|
||||
'int age\n'+
|
||||
'-- encrypted --\n'+
|
||||
'String password\n'+
|
||||
'}';
|
||||
|
||||
cd.parse(str);
|
||||
});
|
||||
@@ -116,8 +116,8 @@ class User {
|
||||
cd.yy.clear();
|
||||
});
|
||||
it('should handle relation definitions EXTENSION', function () {
|
||||
var str = `classDiagram
|
||||
Class01 <|-- Class02`;
|
||||
var str = 'classDiagram\n'+
|
||||
'Class01 <|-- Class02';
|
||||
|
||||
cd.parse(str);
|
||||
|
||||
@@ -130,8 +130,8 @@ class User {
|
||||
expect(relations[0].relation.lineType).toBe(cDDb.lineType.LINE);
|
||||
});
|
||||
it('should handle relation definitions AGGREGATION and dotted line', function () {
|
||||
var str = `classDiagram
|
||||
Class01 o.. Class02`;
|
||||
var str = 'classDiagram\n'+
|
||||
'Class01 o.. Class02';
|
||||
|
||||
cd.parse(str);
|
||||
|
||||
@@ -144,8 +144,8 @@ class User {
|
||||
expect(relations[0].relation.lineType).toBe(cDDb.lineType.DOTTED_LINE);
|
||||
});
|
||||
it('should handle relation definitions COMPOSITION on both sides', function () {
|
||||
var str = `classDiagram
|
||||
Class01 *--* Class02`;
|
||||
var str = 'classDiagram\n'+
|
||||
'Class01 *--* Class02';
|
||||
|
||||
cd.parse(str);
|
||||
|
||||
@@ -158,8 +158,8 @@ class User {
|
||||
expect(relations[0].relation.lineType).toBe(cDDb.lineType.LINE);
|
||||
});
|
||||
it('should handle relation definitions no types', function () {
|
||||
var str = `classDiagram
|
||||
Class01 -- Class02`;
|
||||
var str = 'classDiagram\n'+
|
||||
'Class01 -- Class02';
|
||||
|
||||
cd.parse(str);
|
||||
|
||||
@@ -172,8 +172,8 @@ class User {
|
||||
expect(relations[0].relation.lineType).toBe(cDDb.lineType.LINE);
|
||||
});
|
||||
it('should handle relation definitions with type only on right side', function () {
|
||||
var str = `classDiagram
|
||||
Class01 --|> Class02`;
|
||||
var str = 'classDiagram\n'+
|
||||
'Class01 --|> Class02';
|
||||
|
||||
cd.parse(str);
|
||||
|
||||
@@ -187,12 +187,12 @@ class User {
|
||||
});
|
||||
|
||||
it('should handle multiple classes and relation definitions', function () {
|
||||
var str = `classDiagram
|
||||
Class01 <|-- Class02
|
||||
Class03 *-- Class04
|
||||
Class05 o-- Class06
|
||||
Class07 .. Class08
|
||||
Class09 -- Class10`;
|
||||
var str = 'classDiagram\n'+
|
||||
'Class01 <|-- Class02\n'+
|
||||
'Class03 *-- Class04\n'+
|
||||
'Class05 o-- Class06\n'+
|
||||
'Class07 .. Class08\n'+
|
||||
'Class09 -- Class10';
|
||||
|
||||
cd.parse(str);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user