chore: Revert changes to existing tests, add new tests

This commit is contained in:
Sidharth Vinod 2024-03-24 12:29:40 +05:30
parent 4feb8181ae
commit 234a2cc819
No known key found for this signature in database
GPG Key ID: FB5CCD378D3907CD
3 changed files with 262 additions and 24 deletions

View File

@ -2,6 +2,7 @@
Ashish Jain
cpettitt
Dong Cai
jgreywolf
Nikolay Rozhkov
Peng Xiao
subhash-halder

View File

@ -201,9 +201,9 @@ describe('Class diagram V2', () => {
`
classDiagram-v2
class Class01~T~
Class01-T : size()
Class01-T : int chimp
Class01-T : int gorilla
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 <--> C2: Cool label
class Class10~T~ {
&lt;&lt;service&gt;&gt;
@ -221,9 +221,9 @@ describe('Class diagram V2', () => {
classDiagram-v2
Class01~T~ <|-- AveryLongClass : Cool
Class03~T~ *-- Class04~T~
Class01-T : size()
Class01-T : int chimp
Class01-T : int gorilla
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 <--> C2: Cool label
class Class10~T~ {
&lt;&lt;service&gt;&gt;
@ -241,9 +241,9 @@ describe('Class diagram V2', () => {
classDiagram-v2
Class01~T~ <|-- AveryLongClass : Cool
Class03~T~ *-- Class04~T~
Class01-T : size()
Class01-T : int chimp
Class01-T : int gorilla
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 <--> C2: Cool label
class Class10~T~ {
&lt;&lt;service&gt;&gt;
@ -262,9 +262,9 @@ describe('Class diagram V2', () => {
classDiagram-v2
Class01~T~ <|-- AveryLongClass : Cool
Class03~T~ *-- Class04~T~
Class01-T : size()
Class01-T : int chimp
Class01-T : int gorilla
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 <--> C2: Cool label
class Class10~T~ {
&lt;&lt;service&gt;&gt;
@ -581,4 +581,122 @@ class C13["With Città foreign language"]
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
});
describe('when adding generic types', () => {
it('should add properties when type is mentioned in classID', () => {
imgSnapshotTest(
`
classDiagram-v2
class Class01~T~
Class01-T : size()
Class01-T : int chimp
Class01-T : int gorilla
`
);
});
it('should fallback to matching class name when type is not mentioned in property', () => {
imgSnapshotTest(
`
classDiagram-v2
class Class01~T~
Class01-T : size()
Class01-T : int chimp
Class01 : int gorilla
`
);
});
it('should fallback to the first matching class name when type is not mentioned in property', () => {
imgSnapshotTest(
`
classDiagram-v2
class Class01~T~
class Class01~X~
Class01-T : int inClassT
Class01-X : int inClassX
Class01 : int alsoInClassT
`
);
});
it('should detect generic classes correctly when using different classIDs', () => {
imgSnapshotTest(
`
classDiagram-v2
class Class01~T~
Class01-T : size()
Class01-T : int chimp
Class01 : int gorillaInClassT
class Class01~X~
Class01-X : size()
Class01-X : int chimp
Class01-X : int gorilla
`
);
});
it('should render with Generic class and relations', () => {
imgSnapshotTest(
`
classDiagram-v2
Class01~T~ <|-- AveryLongClass : Cool
Class03~T~ *-- Class04~T~
Class01-T : size()
Class01-T : int chimp
Class01-T : int gorilla
Class08 <--> C2: Cool label
class Class10~T~ {
&lt;&lt;service&gt;&gt;
int id
test()
}
`
);
});
it('should render with clickable link when type is not mentioned', () => {
imgSnapshotTest(
`
classDiagram-v2
Class01~T~ <|-- AveryLongClass : Cool
Class01-T : size()
link Class01 "google.com" "A Tooltip"
`
);
});
it('should render with clickable callback when type is not mentioned', () => {
imgSnapshotTest(
`
classDiagram-v2
Class01~T~ <|-- AveryLongClass : Cool
Class01-T : size()
callback Class01 "functionCall" "A Tooltip"
`
);
});
it('should render with clickable link when type is mentioned', () => {
imgSnapshotTest(
`
classDiagram-v2
Class01~T~ <|-- AveryLongClass : Cool
Class01-T : size()
link Class01-T "google.com" "A Tooltip"
`
);
});
it('should render with clickable callback when type is mentioned', () => {
imgSnapshotTest(
`
classDiagram-v2
Class01~T~ <|-- AveryLongClass : Cool
Class01-T : size()
callback Class01-T "functionCall" "A Tooltip"
`
);
});
});
});

View File

@ -141,9 +141,9 @@ describe('Class diagram', () => {
`
classDiagram
class Class01~T~
Class01-T : size()
Class01-T : int chimp
Class01~T~ : int gorilla
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 <--> C2: Cool label
class Class10~T~ {
&lt;&lt;service&gt;&gt;
@ -162,9 +162,9 @@ describe('Class diagram', () => {
classDiagram
Class01~T~ <|-- AveryLongClass : Cool
Class03~T~ *-- Class04~T~
Class01-T : size()
Class01-T : int chimp
Class01-T : int gorilla
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 <--> C2: Cool label
class Class10~T~ {
&lt;&lt;service&gt;&gt;
@ -183,9 +183,9 @@ describe('Class diagram', () => {
classDiagram
Class01~T~ <|-- AveryLongClass : Cool
Class03~T~ *-- Class04~T~
Class01-T : size()
Class01-T : int chimp
Class01-T : int gorilla
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 <--> C2: Cool label
class Class10~T~ {
&lt;&lt;service&gt;&gt;
@ -205,9 +205,9 @@ describe('Class diagram', () => {
classDiagram
Class01~T~ <|-- AveryLongClass : Cool
Class03~T~ *-- Class04~T~
Class01-T : size()
Class01-T : int chimp
Class01-T : int gorilla
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 <--> C2: Cool label
class Class10~T~ {
&lt;&lt;service&gt;&gt;
@ -513,4 +513,123 @@ describe('Class diagram', () => {
cy.get('a').should('have.attr', 'target', '_blank').should('have.attr', 'rel', 'noopener');
});
});
describe('when adding generic types', () => {
it('should add properties when type is mentioned in classID', () => {
imgSnapshotTest(
`
classDiagram
class Class01~T~
Class01-T : size()
Class01-T : int chimp
Class01-T : int gorilla
`
);
});
it('should fallback to matching class name when type is not mentioned in property', () => {
imgSnapshotTest(
`
classDiagram
class Class01~T~
Class01-T : size()
Class01-T : int chimp
Class01 : int gorilla
`
);
});
it('should fallback to the first matching class name when type is not mentioned in property', () => {
imgSnapshotTest(
`
classDiagram
class Class01~T~
class Class01~X~
Class01-T : int inClassT
Class01-X : int inClassX
Class01 : int alsoInClassT
`
);
});
it('should detect generic classes correctly when using different classIDs', () => {
imgSnapshotTest(
`
classDiagram
class Class01~T~
Class01-T : size()
Class01-T : int chimp
Class01 : int gorillaInClassT
class Class01~X~
Class01-X : size()
Class01-X : int chimp
Class01-X : int gorilla
`
);
});
it('should render with Generic class and relations', () => {
imgSnapshotTest(
`
classDiagram
Class01~T~ <|-- AveryLongClass : Cool
Class03~T~ *-- Class04~T~
Class01-T : size()
Class01-T : int chimp
Class01-T : int gorilla
Class08 <--> C2: Cool label
class Class10~T~ {
&lt;&lt;service&gt;&gt;
int id
test()
}
`
);
});
// TODO: @jgreywolf These tests should ideally be unit tests, as links cannot be verified visually.
it('should render with clickable link when type is not mentioned', () => {
imgSnapshotTest(
`
classDiagram
Class01~T~ <|-- AveryLongClass : Cool
Class01-T : size()
link Class01 "google.com" "A Tooltip"
`
);
});
it('should render with clickable callback when type is not mentioned', () => {
imgSnapshotTest(
`
classDiagram
Class01~T~ <|-- AveryLongClass : Cool
Class01-T : size()
callback Class01 "functionCall" "A Tooltip"
`
);
});
it('should render with clickable link when type is mentioned', () => {
imgSnapshotTest(
`
classDiagram
Class01~T~ <|-- AveryLongClass : Cool
Class01-T : size()
link Class01-T "google.com" "A Tooltip"
`
);
});
it('should render with clickable callback when type is mentioned', () => {
imgSnapshotTest(
`
classDiagram
Class01~T~ <|-- AveryLongClass : Cool
Class01-T : size()
callback Class01-T "functionCall" "A Tooltip"
`
);
});
});
});