@@ -107,25 +107,40 @@ describe("When an element is hovered in visual builder mode", () => {
107107 const fieldSchemaMap = getFieldSchemaMap ( ) . all_fields ;
108108
109109 beforeAll ( ( ) => {
110+ const startTime = performance . now ( ) ;
110111 // Pre-set all field schemas in cache to avoid async fetches during hover
111112 // This significantly speeds up tests, especially for html-rte, json-rte, link fields
112113 FieldSchemaMap . setFieldSchema ( "all_fields" , fieldSchemaMap ) ;
113114
114115 // Field schemas are already set above - no need for additional caching
115116 // The FieldSchemaMap.setFieldSchema call above sets all fields at once
117+ const endTime = performance . now ( ) ;
118+ console . log (
119+ `[TIMING] beforeAll - setFieldSchema: ${ ( endTime - startTime ) . toFixed ( 2 ) } ms`
120+ ) ;
116121 } ) ;
117122
118123 beforeEach ( ( ) => {
124+ const startTime = performance . now ( ) ;
119125 Config . reset ( ) ;
120126 Config . set ( "mode" , 2 ) ;
121127 mousemoveEvent = new Event ( "mousemove" , {
122128 bubbles : true ,
123129 cancelable : true ,
124130 } ) ;
131+ const endTime = performance . now ( ) ;
132+ console . log (
133+ `[TIMING] beforeEach (outer) - Config setup: ${ ( endTime - startTime ) . toFixed ( 2 ) } ms`
134+ ) ;
125135 } ) ;
126136
127137 afterEach ( async ( ) => {
138+ const startTime = performance . now ( ) ;
128139 document . getElementsByTagName ( "html" ) [ 0 ] . innerHTML = "" ;
140+ const endTime = performance . now ( ) ;
141+ console . log (
142+ `[TIMING] afterEach (outer) - cleanup: ${ ( endTime - startTime ) . toFixed ( 2 ) } ms`
143+ ) ;
129144 } ) ;
130145
131146 afterAll ( ( ) => {
@@ -139,18 +154,37 @@ describe("When an element is hovered in visual builder mode", () => {
139154 let visualBuilder : VisualBuilder ;
140155
141156 beforeEach ( ( ) => {
157+ const startTime = performance . now ( ) ;
142158 fieldElement = document . createElement ( "p" ) ;
143159 fieldElement . setAttribute ( "data-cslp" , SINGLE_FIELD . cslp ) ;
144160 fieldElement . getBoundingClientRect = vi
145161 . fn ( )
146162 . mockReturnValue ( mockDomRect . singleLeft ( ) ) ;
147163
148164 document . body . appendChild ( fieldElement ) ;
165+ const domSetupTime = performance . now ( ) ;
166+ console . log (
167+ `[TIMING] beforeEach (${ SINGLE_FIELD . name } field) - DOM setup: ${ ( domSetupTime - startTime ) . toFixed ( 2 ) } ms`
168+ ) ;
169+
170+ const vbStartTime = performance . now ( ) ;
149171 visualBuilder = new VisualBuilder ( ) ;
172+ const vbEndTime = performance . now ( ) ;
173+ console . log (
174+ `[TIMING] beforeEach (${ SINGLE_FIELD . name } field) - VisualBuilder init: ${ ( vbEndTime - vbStartTime ) . toFixed ( 2 ) } ms`
175+ ) ;
176+ console . log (
177+ `[TIMING] beforeEach (${ SINGLE_FIELD . name } field) - TOTAL: ${ ( vbEndTime - startTime ) . toFixed ( 2 ) } ms`
178+ ) ;
150179 } ) ;
151180
152181 afterEach ( ( ) => {
182+ const startTime = performance . now ( ) ;
153183 visualBuilder . destroy ( ) ;
184+ const endTime = performance . now ( ) ;
185+ console . log (
186+ `[TIMING] afterEach (${ SINGLE_FIELD . name } field) - VisualBuilder.destroy: ${ ( endTime - startTime ) . toFixed ( 2 ) } ms`
187+ ) ;
154188 } ) ;
155189
156190 test ( "should have outline and custom cursor" , async ( ) => {
@@ -183,18 +217,37 @@ describe("When an element is hovered in visual builder mode", () => {
183217 let visualBuilder : VisualBuilder ;
184218
185219 beforeEach ( ( ) => {
220+ const startTime = performance . now ( ) ;
186221 fieldElement = document . createElement ( "p" ) ;
187222 fieldElement . setAttribute ( "data-cslp" , MULTIPLE_FIELD . cslp ) ;
188223 fieldElement . getBoundingClientRect = vi
189224 . fn ( )
190225 . mockReturnValue ( mockDomRect . singleLeft ( ) ) ;
191226
192227 document . body . appendChild ( fieldElement ) ;
228+ const domSetupTime = performance . now ( ) ;
229+ console . log (
230+ `[TIMING] beforeEach (${ MULTIPLE_FIELD . name } field) - DOM setup: ${ ( domSetupTime - startTime ) . toFixed ( 2 ) } ms`
231+ ) ;
232+
233+ const vbStartTime = performance . now ( ) ;
193234 visualBuilder = new VisualBuilder ( ) ;
235+ const vbEndTime = performance . now ( ) ;
236+ console . log (
237+ `[TIMING] beforeEach (${ MULTIPLE_FIELD . name } field) - VisualBuilder init: ${ ( vbEndTime - vbStartTime ) . toFixed ( 2 ) } ms`
238+ ) ;
239+ console . log (
240+ `[TIMING] beforeEach (${ MULTIPLE_FIELD . name } field) - TOTAL: ${ ( vbEndTime - startTime ) . toFixed ( 2 ) } ms`
241+ ) ;
194242 } ) ;
195243
196244 afterEach ( ( ) => {
245+ const startTime = performance . now ( ) ;
197246 visualBuilder . destroy ( ) ;
247+ const endTime = performance . now ( ) ;
248+ console . log (
249+ `[TIMING] afterEach (${ MULTIPLE_FIELD . name } field) - VisualBuilder.destroy: ${ ( endTime - startTime ) . toFixed ( 2 ) } ms`
250+ ) ;
198251 } ) ;
199252
200253 test ( "should have outline and custom cursor" , async ( ) => {
@@ -228,6 +281,7 @@ describe("When an element is hovered in visual builder mode", () => {
228281 let visualBuilder : VisualBuilder ;
229282
230283 beforeEach ( ( ) => {
284+ const startTime = performance . now ( ) ;
231285 container = document . createElement ( "div" ) ;
232286 container . setAttribute ( "data-cslp" , MULTIPLE_FIELD . multipleCslp ) ;
233287 container . getBoundingClientRect = vi
@@ -255,12 +309,29 @@ describe("When an element is hovered in visual builder mode", () => {
255309 container . appendChild ( firstField ) ;
256310 container . appendChild ( secondField ) ;
257311 document . body . appendChild ( container ) ;
312+ const domSetupTime = performance . now ( ) ;
313+ console . log (
314+ `[TIMING] beforeEach (${ MULTIPLE_FIELD . name } field multiple) - DOM setup: ${ ( domSetupTime - startTime ) . toFixed ( 2 ) } ms`
315+ ) ;
258316
317+ const vbStartTime = performance . now ( ) ;
259318 visualBuilder = new VisualBuilder ( ) ;
319+ const vbEndTime = performance . now ( ) ;
320+ console . log (
321+ `[TIMING] beforeEach (${ MULTIPLE_FIELD . name } field multiple) - VisualBuilder init: ${ ( vbEndTime - vbStartTime ) . toFixed ( 2 ) } ms`
322+ ) ;
323+ console . log (
324+ `[TIMING] beforeEach (${ MULTIPLE_FIELD . name } field multiple) - TOTAL: ${ ( vbEndTime - startTime ) . toFixed ( 2 ) } ms`
325+ ) ;
260326 } ) ;
261327
262328 afterEach ( ( ) => {
329+ const startTime = performance . now ( ) ;
263330 visualBuilder . destroy ( ) ;
331+ const endTime = performance . now ( ) ;
332+ console . log (
333+ `[TIMING] afterEach (${ MULTIPLE_FIELD . name } field multiple) - VisualBuilder.destroy: ${ ( endTime - startTime ) . toFixed ( 2 ) } ms`
334+ ) ;
264335 } ) ;
265336
266337 test ( "should have outline and custom cursor on container" , async ( ) => {
@@ -285,17 +356,34 @@ describe("When an element is hovered in visual builder mode", () => {
285356 expect ( customCursor ?. classList . contains ( "visible" ) ) . toBeTruthy ( ) ;
286357 } ) ;
287358
288- test ( "should have outline and custom cursor on individual instances" , async ( ) => {
359+ test . only ( "should have outline and custom cursor on individual instances" , async ( ) => {
360+ const testStartTime = performance . now ( ) ;
361+ const dispatchStartTime = performance . now ( ) ;
289362 firstField . dispatchEvent ( mousemoveEvent ) ;
363+ const dispatchEndTime = performance . now ( ) ;
364+ console . log (
365+ `[TIMING] test - dispatchEvent: ${ ( dispatchEndTime - dispatchStartTime ) . toFixed ( 2 ) } ms`
366+ ) ;
367+
368+ const hoverOutlineStartTime = performance . now ( ) ;
290369 await waitForHoverOutline ( ) ;
370+ const hoverOutlineEndTime = performance . now ( ) ;
371+ console . log (
372+ `[TIMING] test - waitForHoverOutline: ${ ( hoverOutlineEndTime - hoverOutlineStartTime ) . toFixed ( 2 ) } ms`
373+ ) ;
291374
292375 const hoverOutline = document . querySelector (
293376 "[data-testid='visual-builder__hover-outline']"
294377 ) ;
295378 expect ( hoverOutline ) . toHaveAttribute ( "style" ) ;
296379
297380 // Wait for cursor icon to be set (not "loading")
381+ const cursorIconStartTime = performance . now ( ) ;
298382 await waitForCursorIcon ( MULTIPLE_FIELD . icon , { timeout : 5000 } ) ;
383+ const cursorIconEndTime = performance . now ( ) ;
384+ console . log (
385+ `[TIMING] test - waitForCursorIcon: ${ ( cursorIconEndTime - cursorIconStartTime ) . toFixed ( 2 ) } ms`
386+ ) ;
299387
300388 const customCursor = document . querySelector (
301389 `[data-testid="visual-builder__cursor"]`
@@ -305,6 +393,10 @@ describe("When an element is hovered in visual builder mode", () => {
305393 MULTIPLE_FIELD . icon
306394 ) ;
307395 expect ( customCursor ?. classList . contains ( "visible" ) ) . toBeTruthy ( ) ;
396+ const testEndTime = performance . now ( ) ;
397+ console . log (
398+ `[TIMING] test - TOTAL: ${ ( testEndTime - testStartTime ) . toFixed ( 2 ) } ms`
399+ ) ;
308400 } ) ;
309401 } ) ;
310402} ) ;
0 commit comments