mirror of
https://github.com/mermaid-js/mermaid.git
synced 2025-09-19 07:19:41 +02:00
test(er): improve tests on multiple key constraints
This commit is contained in:
@@ -75,7 +75,7 @@
|
|||||||
erDiagram
|
erDiagram
|
||||||
"HOSPITAL" {
|
"HOSPITAL" {
|
||||||
int id PK
|
int id PK
|
||||||
int doctor_id PK,FK
|
int doctor_id PK, FK
|
||||||
string address UK
|
string address UK
|
||||||
string name
|
string name
|
||||||
string phone_number
|
string phone_number
|
||||||
@@ -103,7 +103,7 @@
|
|||||||
int age
|
int age
|
||||||
}
|
}
|
||||||
NAMED-DRIVER {
|
NAMED-DRIVER {
|
||||||
string carRegistrationNumber PK,FK
|
string carRegistrationNumber PK, FK
|
||||||
string driverLicence PK,FK
|
string driverLicence PK,FK
|
||||||
}
|
}
|
||||||
MANUFACTURER only one to zero or more CAR : makes
|
MANUFACTURER only one to zero or more CAR : makes
|
||||||
|
@@ -200,7 +200,7 @@ The `type` and `name` values must begin with an alphabetic character and may con
|
|||||||
|
|
||||||
#### Attribute Keys and Comments
|
#### Attribute Keys and Comments
|
||||||
|
|
||||||
Attributes may also have a `key` or comment defined. Keys can be `PK`, `FK` or `UK`, for Primary Key, Foreign Key or Unique Key. To specify multiple key constraints on a single attribute, separate them with a comma (e.g., `PK,FK`).. A `comment` is defined by double quotes at the end of an attribute. Comments themselves cannot have double-quote characters in them.
|
Attributes may also have a `key` or comment defined. Keys can be `PK`, `FK` or `UK`, for Primary Key, Foreign Key or Unique Key. To specify multiple key constraints on a single attribute, separate them with a comma (e.g., `PK, FK`).. A `comment` is defined by double quotes at the end of an attribute. Comments themselves cannot have double-quote characters in them.
|
||||||
|
|
||||||
```mermaid-example
|
```mermaid-example
|
||||||
erDiagram
|
erDiagram
|
||||||
@@ -220,8 +220,8 @@ erDiagram
|
|||||||
int age
|
int age
|
||||||
}
|
}
|
||||||
NAMED-DRIVER {
|
NAMED-DRIVER {
|
||||||
string carRegistrationNumber PK,FK
|
string carRegistrationNumber PK, FK
|
||||||
string driverLicence PK,FK
|
string driverLicence PK, FK
|
||||||
}
|
}
|
||||||
MANUFACTURER only one to zero or more CAR : makes
|
MANUFACTURER only one to zero or more CAR : makes
|
||||||
```
|
```
|
||||||
@@ -244,8 +244,8 @@ erDiagram
|
|||||||
int age
|
int age
|
||||||
}
|
}
|
||||||
NAMED-DRIVER {
|
NAMED-DRIVER {
|
||||||
string carRegistrationNumber PK,FK
|
string carRegistrationNumber PK, FK
|
||||||
string driverLicence PK,FK
|
string driverLicence PK, FK
|
||||||
}
|
}
|
||||||
MANUFACTURER only one to zero or more CAR : makes
|
MANUFACTURER only one to zero or more CAR : makes
|
||||||
```
|
```
|
||||||
|
@@ -191,19 +191,25 @@ describe('when parsing ER diagram it...', function () {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('should allow an entity with attributes that have many constraints and comments', function () {
|
it('should allow an entity with attributes that have many constraints and comments', function () {
|
||||||
const entity = 'BOOK';
|
const entity = 'CUSTOMER';
|
||||||
const attribute1 = 'int customer_number PK,FK "comment"';
|
const attribute1 = 'int customer_number PK, FK "comment1"';
|
||||||
const attribute2 = 'datetime customer_status_start_datetime PK,UK';
|
const attribute2 = 'datetime customer_status_start_datetime PK,UK, FK';
|
||||||
const attribute3 = 'string customer_name';
|
const attribute3 = 'datetime customer_status_end_datetime PK , UK "comment3"';
|
||||||
|
const attribute4 = 'string customer_firstname';
|
||||||
|
const attribute5 = 'string customer_lastname "comment5"';
|
||||||
|
|
||||||
erDiagram.parser.parse(
|
erDiagram.parser.parse(
|
||||||
`erDiagram\n${entity} {\n${attribute1} \n\n${attribute2}\n${attribute3}\n}`
|
`erDiagram\n${entity} {\n${attribute1}\n${attribute2}\n${attribute3}\n${attribute4}\n${attribute5}\n}`
|
||||||
);
|
);
|
||||||
const entities = erDb.getEntities();
|
const entities = erDb.getEntities();
|
||||||
expect(entities[entity].attributes[0].attributeKeyTypeList).toEqual(['PK', 'FK']);
|
expect(entities[entity].attributes[0].attributeKeyTypeList).toEqual(['PK', 'FK']);
|
||||||
expect(entities[entity].attributes[0].attributeComment).toBe('comment');
|
expect(entities[entity].attributes[0].attributeComment).toBe('comment1');
|
||||||
expect(entities[entity].attributes[1].attributeKeyTypeList).toEqual(['PK', 'UK']);
|
expect(entities[entity].attributes[1].attributeKeyTypeList).toEqual(['PK', 'UK', 'FK']);
|
||||||
expect(entities[entity].attributes[2].attributeKeyTypeList).toBeUndefined();
|
expect(entities[entity].attributes[2].attributeKeyTypeList).toEqual(['PK', 'UK']);
|
||||||
|
expect(entities[entity].attributes[2].attributeComment).toBe('comment3');
|
||||||
|
expect(entities[entity].attributes[3].attributeKeyTypeList).toBeUndefined();
|
||||||
|
expect(entities[entity].attributes[4].attributeKeyTypeList).toBeUndefined();
|
||||||
|
expect(entities[entity].attributes[4].attributeComment).toBe('comment5');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should allow an entity with attribute that has a generic type', function () {
|
it('should allow an entity with attribute that has a generic type', function () {
|
||||||
|
@@ -146,7 +146,7 @@ The `type` and `name` values must begin with an alphabetic character and may con
|
|||||||
|
|
||||||
#### Attribute Keys and Comments
|
#### Attribute Keys and Comments
|
||||||
|
|
||||||
Attributes may also have a `key` or comment defined. Keys can be `PK`, `FK` or `UK`, for Primary Key, Foreign Key or Unique Key. To specify multiple key constraints on a single attribute, separate them with a comma (e.g., `PK,FK`).. A `comment` is defined by double quotes at the end of an attribute. Comments themselves cannot have double-quote characters in them.
|
Attributes may also have a `key` or comment defined. Keys can be `PK`, `FK` or `UK`, for Primary Key, Foreign Key or Unique Key. To specify multiple key constraints on a single attribute, separate them with a comma (e.g., `PK, FK`).. A `comment` is defined by double quotes at the end of an attribute. Comments themselves cannot have double-quote characters in them.
|
||||||
|
|
||||||
```mermaid-example
|
```mermaid-example
|
||||||
erDiagram
|
erDiagram
|
||||||
@@ -166,8 +166,8 @@ erDiagram
|
|||||||
int age
|
int age
|
||||||
}
|
}
|
||||||
NAMED-DRIVER {
|
NAMED-DRIVER {
|
||||||
string carRegistrationNumber PK,FK
|
string carRegistrationNumber PK, FK
|
||||||
string driverLicence PK,FK
|
string driverLicence PK, FK
|
||||||
}
|
}
|
||||||
MANUFACTURER only one to zero or more CAR : makes
|
MANUFACTURER only one to zero or more CAR : makes
|
||||||
```
|
```
|
||||||
|
Reference in New Issue
Block a user