1- import { describe , it , vi , beforeEach , expect } from " vitest" ;
2- import cytoscape from " cytoscape" ;
3- import { LayoutCorrectionService } from "../visualizer/services/layout-correction-service.js" ;
4- import { BoundingBox , CalmNode } from '../visualizer/ contracts/contracts.js' ;
5- import { afterEach } from "node:test" ;
1+ import { describe , it , vi , beforeEach , expect } from ' vitest' ;
2+ import cytoscape from ' cytoscape' ;
3+ import { afterEach } from 'node:test' ;
4+ import { BoundingBox , CalmNode } from '../contracts/contracts.js' ;
5+ import { LayoutCorrectionService } from './layout-correction-service.js' ;
66
77function generateMockNodeObj ( id : string , parentId ?: string ) : CalmNode {
88 const nodeObj = {
@@ -31,19 +31,23 @@ function generateBoundingBox(x1: number, y1: number, w: number, h: number): Boun
3131 y1 : y1 ,
3232 y2 : y1 + h ,
3333 w : w ,
34- h : h
34+ h : h ,
3535 } ;
3636}
3737
38- function generateMockCyRefGetElementById ( x1 : number , y1 : number , w : number , h : number ) : cytoscape . NodeSingular {
38+ function generateMockCyRefGetElementById (
39+ x1 : number ,
40+ y1 : number ,
41+ w : number ,
42+ h : number
43+ ) : cytoscape . NodeSingular {
3944 return {
4045 boundingBox : vi . fn ( ) . mockReturnValue ( generateBoundingBox ( x1 , y1 , w , h ) ) ,
4146 position : vi . fn ( ) ,
4247 } as unknown as cytoscape . NodeSingular ;
4348}
4449
4550describe ( LayoutCorrectionService . name , ( ) => {
46-
4751 let mockCyRef : cytoscape . Core ;
4852 let mockCyRefGetElementById : cytoscape . NodeSingular ;
4953
@@ -53,7 +57,7 @@ describe(LayoutCorrectionService.name, () => {
5357 getElementById : vi . fn ( ) . mockImplementation ( ( ) => mockCyRefGetElementById ) ,
5458 nodes : vi . fn ( ) . mockReturnValue ( [ ] ) ,
5559 edges : vi . fn ( ) . mockReturnValue ( [ ] ) ,
56- } as unknown as cytoscape . Core ;
60+ } as unknown as cytoscape . Core ;
5761 } ) ;
5862
5963 afterEach ( ( ) => {
@@ -73,9 +77,9 @@ describe(LayoutCorrectionService.name, () => {
7377 ] ;
7478
7579 instance . calculateAndUpdateNodePositions ( mockCyRef , nodes ) ;
76- expect ( mockCyRef . getElementById ) . toHaveBeenCalledWith ( " node1" ) ;
77- expect ( mockCyRef . getElementById ) . toHaveBeenCalledWith ( " node2" ) ;
78- expect ( mockCyRef . getElementById ) . toHaveBeenCalledWith ( " node3" ) ;
80+ expect ( mockCyRef . getElementById ) . toHaveBeenCalledWith ( ' node1' ) ;
81+ expect ( mockCyRef . getElementById ) . toHaveBeenCalledWith ( ' node2' ) ;
82+ expect ( mockCyRef . getElementById ) . toHaveBeenCalledWith ( ' node3' ) ;
7983 expect ( mockCyRefGetElementById . boundingBox ) . toHaveBeenCalledTimes ( 7 ) ;
8084 } ) ;
8185
@@ -92,7 +96,8 @@ describe(LayoutCorrectionService.name, () => {
9296 instance . calculateAndUpdateNodePositions ( mockCyRef , nodes ) ;
9397 //Once for node 2
9498 expect ( mockCyRefGetElementById . position ) . toHaveBeenCalledWith ( {
95- x : - 100 , y : - 100 ,
99+ x : - 100 ,
100+ y : - 100 ,
96101 } ) ;
97102 } ) ;
98103
@@ -105,25 +110,26 @@ describe(LayoutCorrectionService.name, () => {
105110 const mockCyRefGetElementByIdNode3 = generateMockCyRefGetElementById ( - 150 , - 150 , 100 , 100 ) ;
106111 mockCyRef = {
107112 getElementById : vi . fn ( ) . mockImplementation ( ( id ) => {
108- if ( id === " node1" ) return mockCyRefGetElementByIdNode1 ;
109- if ( id === " node2" ) return mockCyRefGetElementByIdNode2 ;
110- if ( id === " node3" ) return mockCyRefGetElementByIdNode3 ;
113+ if ( id === ' node1' ) return mockCyRefGetElementByIdNode1 ;
114+ if ( id === ' node2' ) return mockCyRefGetElementByIdNode2 ;
115+ if ( id === ' node3' ) return mockCyRefGetElementByIdNode3 ;
111116 return null ;
112117 } ) ,
113118 nodes : vi . fn ( ) . mockReturnValue ( [ ] ) ,
114119 edges : vi . fn ( ) . mockReturnValue ( [ ] ) ,
115120 } as unknown as cytoscape . Core ;
116-
121+
117122 const nodes : CalmNode [ ] = [
118123 generateMockNodeObj ( 'node1' ) ,
119124 generateMockNodeObj ( 'node2' ) ,
120- generateMockNodeObj ( 'node3' , 'node1' )
125+ generateMockNodeObj ( 'node3' , 'node1' ) ,
121126 ] ;
122127
123128 instance . calculateAndUpdateNodePositions ( mockCyRef , nodes ) ;
124129 //Once for node 3
125130 expect ( mockCyRefGetElementByIdNode3 . position ) . toHaveBeenCalledWith ( {
126- x : 50 , y : 50 ,
131+ x : 50 ,
132+ y : 50 ,
127133 } ) ;
128134 } ) ;
129135
@@ -136,15 +142,15 @@ describe(LayoutCorrectionService.name, () => {
136142 const mockCyRefGetElementByIdNode3 = generateMockCyRefGetElementById ( - 50 , - 50 , 50 , 50 ) ;
137143 mockCyRef = {
138144 getElementById : vi . fn ( ) . mockImplementation ( ( id ) => {
139- if ( id === " node1" ) return mockCyRefGetElementByIdNode1 ;
140- if ( id === " node2" ) return mockCyRefGetElementByIdNode2 ;
141- if ( id === " node3" ) return mockCyRefGetElementByIdNode3 ;
145+ if ( id === ' node1' ) return mockCyRefGetElementByIdNode1 ;
146+ if ( id === ' node2' ) return mockCyRefGetElementByIdNode2 ;
147+ if ( id === ' node3' ) return mockCyRefGetElementByIdNode3 ;
142148 return null ;
143149 } ) ,
144150 nodes : vi . fn ( ) . mockReturnValue ( [ ] ) ,
145151 edges : vi . fn ( ) . mockReturnValue ( [ ] ) ,
146152 } as unknown as cytoscape . Core ;
147-
153+
148154 const nodes : CalmNode [ ] = [
149155 generateMockNodeObj ( 'node1' ) ,
150156 generateMockNodeObj ( 'node2' , 'node1' ) ,
@@ -154,11 +160,13 @@ describe(LayoutCorrectionService.name, () => {
154160 instance . calculateAndUpdateNodePositions ( mockCyRef , nodes ) ;
155161 //Once for node 2 (move to centre of node 1)
156162 expect ( mockCyRefGetElementByIdNode2 . position ) . toHaveBeenCalledWith ( {
157- x : 50 , y : 50 ,
163+ x : 50 ,
164+ y : 50 ,
158165 } ) ;
159166 //Once for node 3 (move to centre of node 2, which has just moved)
160167 expect ( mockCyRefGetElementByIdNode3 . position ) . toHaveBeenCalledWith ( {
161- x : 85 , y : 85 ,
168+ x : 85 ,
169+ y : 85 ,
162170 } ) ;
163171 } ) ;
164172
@@ -171,16 +179,16 @@ describe(LayoutCorrectionService.name, () => {
171179 const mockCyRefGetElementByIdNode4 = generateMockCyRefGetElementById ( 10 , 10 , 40 , 40 ) ;
172180 mockCyRef = {
173181 getElementById : vi . fn ( ) . mockImplementation ( ( id ) => {
174- if ( id === " node1" ) return mockCyRefGetElementByIdNode1 ;
175- if ( id === " node2" ) return mockCyRefGetElementByIdNode2 ;
176- if ( id === " node3" ) return mockCyRefGetElementByIdNode3 ;
177- if ( id === " node4" ) return mockCyRefGetElementByIdNode4 ;
182+ if ( id === ' node1' ) return mockCyRefGetElementByIdNode1 ;
183+ if ( id === ' node2' ) return mockCyRefGetElementByIdNode2 ;
184+ if ( id === ' node3' ) return mockCyRefGetElementByIdNode3 ;
185+ if ( id === ' node4' ) return mockCyRefGetElementByIdNode4 ;
178186 return null ;
179187 } ) ,
180188 nodes : vi . fn ( ) . mockReturnValue ( [ ] ) ,
181189 edges : vi . fn ( ) . mockReturnValue ( [ ] ) ,
182190 } as unknown as cytoscape . Core ;
183-
191+
184192 const nodes : CalmNode [ ] = [
185193 generateMockNodeObj ( 'node1' ) ,
186194 generateMockNodeObj ( 'node2' ) ,
@@ -191,7 +199,8 @@ describe(LayoutCorrectionService.name, () => {
191199 instance . calculateAndUpdateNodePositions ( mockCyRef , nodes ) ;
192200 //Once for node 3 (move between node 1 and node 2)
193201 expect ( mockCyRefGetElementByIdNode3 . position ) . toHaveBeenCalledWith ( {
194- x : - 50 , y : - 50 ,
202+ x : - 50 ,
203+ y : - 50 ,
195204 } ) ;
196205 } ) ;
197- } ) ;
206+ } ) ;
0 commit comments