Skip to content

Commit 8f1738e

Browse files
test: cover pdf editor add completion flow
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
1 parent 7a9ab90 commit 8f1738e

1 file changed

Lines changed: 23 additions & 22 deletions

File tree

src/tests/components/PdfEditor/PdfEditor.spec.ts

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)