@@ -295,82 +295,83 @@ describe('PdfEditor Component - Business Rules', () => {
295295 )
296296 } )
297297
298- it ( 'restarts pending add timer when startAddingSigner is called twice ' , ( ) => {
298+ it ( 'does not start polling before a placement interaction happens ' , ( ) => {
299299 vi . useFakeTimers ( )
300300 Object . assign ( getPdfElements ( ) , {
301301 isAddingMode : true ,
302302 pdfDocuments : [ { allObjects : [ [ ] ] } ] ,
303303 } )
304304
305305 wrapper . vm . startAddingSigner ( { email : 'first@example.com' } , { width : 120 , height : 60 } )
306- expect ( vi . getTimerCount ( ) ) . toBe ( 1 )
307- wrapper . vm . startAddingSigner ( { email : 'second@example.com' } , { width : 120 , height : 60 } )
308306
309- expect ( vi . getTimerCount ( ) ) . toBe ( 1 )
307+ expect ( vi . getTimerCount ( ) ) . toBe ( 0 )
310308 vi . useRealTimers ( )
311309 } )
312310
313- it ( 'emits signer-added when object count increases after adding mode starts ' , ( ) => {
311+ it ( 'schedules a deferred completion check after a placement interaction ' , ( ) => {
314312 vi . useFakeTimers ( )
315313 Object . assign ( getPdfElements ( ) , {
316314 isAddingMode : true ,
317315 pdfDocuments : [ { allObjects : [ [ ] ] } ] ,
318316 } )
319317
320318 wrapper . vm . startAddingSigner ( { email : 'test@example.com' } , { width : 120 , height : 60 } )
321- getPdfElements ( ) . pdfDocuments = [ { allObjects : [ [ { id : 'obj-1' } ] ] } ]
322- wrapper . vm . checkSignerAdded ( )
319+ wrapper . vm . scheduleSignerAddedCheck ( )
323320
324- expect ( wrapper . emitted ( 'pdf-editor:signer-added' ) ) . toHaveLength ( 1 )
321+ expect ( vi . getTimerCount ( ) ) . toBe ( 1 )
325322 vi . useRealTimers ( )
326323 } )
327324
328- it ( 'emits signer-added when adding mode finishes without object delta ' , ( ) => {
325+ it ( 'emits adding-ended when object count increases after adding mode starts ' , ( ) => {
329326 vi . useFakeTimers ( )
330327 Object . assign ( getPdfElements ( ) , {
331328 isAddingMode : true ,
332329 pdfDocuments : [ { allObjects : [ [ ] ] } ] ,
333330 } )
334331
335332 wrapper . vm . startAddingSigner ( { email : 'test@example.com' } , { width : 120 , height : 60 } )
336- getPdfElements ( ) . isAddingMode = false
333+ getPdfElements ( ) . pdfDocuments = [ { allObjects : [ [ { id : 'obj-1' } ] ] } ]
337334 wrapper . vm . checkSignerAdded ( )
338335
339- expect ( wrapper . emitted ( 'pdf-editor:signer-added ' ) ) . toHaveLength ( 1 )
336+ expect ( wrapper . emitted ( 'pdf-editor:adding-ended ' ) ) . toHaveLength ( 1 )
340337 vi . useRealTimers ( )
341338 } )
342339
343- it ( 'keeps polling while adding mode is active and count has not changed ' , ( ) => {
340+ it ( 'emits adding-ended when adding mode finishes without object delta ' , ( ) => {
344341 vi . useFakeTimers ( )
345342 Object . assign ( getPdfElements ( ) , {
346343 isAddingMode : true ,
347344 pdfDocuments : [ { allObjects : [ [ ] ] } ] ,
348345 } )
349346
350347 wrapper . vm . startAddingSigner ( { email : 'test@example.com' } , { width : 120 , height : 60 } )
351- vi . clearAllTimers ( )
348+ getPdfElements ( ) . isAddingMode = false
352349 wrapper . vm . checkSignerAdded ( )
353350
354- expect ( wrapper . emitted ( 'pdf-editor:signer-added' ) ) . toBeFalsy ( )
355- expect ( vi . getTimerCount ( ) ) . toBeGreaterThan ( 0 )
351+ expect ( wrapper . emitted ( 'pdf-editor:adding-ended' ) ) . toHaveLength ( 1 )
356352 vi . useRealTimers ( )
357353 } )
358354
359- it ( 'stops polling after retry limit without emitting signer-added ' , ( ) => {
355+ it ( 'keeps waiting while adding mode is active and count has not changed ' , ( ) => {
360356 vi . useFakeTimers ( )
361357 Object . assign ( getPdfElements ( ) , {
362358 isAddingMode : true ,
363359 pdfDocuments : [ { allObjects : [ [ ] ] } ] ,
364360 } )
365361
366362 wrapper . vm . startAddingSigner ( { email : 'test@example.com' } , { width : 120 , height : 60 } )
367- vi . clearAllTimers ( )
368- for ( let i = 0 ; i < 301 ; i ++ ) {
369- wrapper . vm . checkSignerAdded ( )
370- vi . clearAllTimers ( )
371- }
363+ wrapper . vm . checkSignerAdded ( )
364+
365+ expect ( wrapper . emitted ( 'pdf-editor:adding-ended' ) ) . toBeFalsy ( )
366+ expect ( vi . getTimerCount ( ) ) . toBe ( 0 )
367+ vi . useRealTimers ( )
368+ } )
369+
370+ it ( 'ignores completion checks when no add session is pending' , ( ) => {
371+ vi . useFakeTimers ( )
372+ wrapper . vm . checkSignerAdded ( )
372373
373- expect ( wrapper . emitted ( 'pdf-editor:signer-added ' ) ) . toBeFalsy ( )
374+ expect ( wrapper . emitted ( 'pdf-editor:adding-ended ' ) ) . toBeFalsy ( )
374375 vi . useRealTimers ( )
375376 } )
376377 } )
0 commit comments