Skip to content

Commit 5af2630

Browse files
committed
test(pdf-editor): drop workaround-specific touchend specs
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
1 parent 16c2c28 commit 5af2630

1 file changed

Lines changed: 7 additions & 104 deletions

File tree

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

Lines changed: 7 additions & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,6 @@ type PdfElementsMock = {
5454
selectedDocIndex: number
5555
autoFitZoom: boolean
5656
isAddingMode?: boolean
57-
handleMouseMove?: ReturnType<typeof vi.fn>
58-
finishAdding?: ReturnType<typeof vi.fn>
59-
previewElement?: Record<string, unknown> | null
60-
previewVisible?: boolean
6157
}
6258

6359
type PdfEditorVm = {
@@ -362,114 +358,21 @@ describe('PdfEditor Component - Business Rules', () => {
362358
})
363359
})
364360

365-
describe('RULE: touchend handling for mobile placement', () => {
366-
it('ignores touchend when no signer placement is pending', () => {
367-
const handleMouseMove = vi.fn()
368-
Object.assign(getPdfElements(), {
369-
handleMouseMove,
370-
isAddingMode: true,
371-
previewElement: { id: 'preview-1' },
372-
previewVisible: false,
373-
})
374-
const event = new Event('touchend')
375-
Object.defineProperty(event, 'changedTouches', {
376-
value: [{ clientX: 10, clientY: 20 }],
377-
configurable: true,
378-
})
379-
380-
document.dispatchEvent(event)
381-
382-
expect(handleMouseMove).not.toHaveBeenCalled()
383-
expect(wrapper.emitted('pdf-editor:signer-added')).toBeFalsy()
384-
})
385-
386-
it('schedules signer check when touchend has no touch point', async () => {
387-
vi.useFakeTimers()
388-
Object.assign(getPdfElements(), {
389-
isAddingMode: false,
390-
pdfDocuments: [{ allObjects: [[]] }],
391-
})
392-
wrapper.vm.startAddingSigner({ email: 'test@example.com' }, { width: 120, height: 60 })
393-
vi.clearAllTimers()
394-
395-
document.dispatchEvent(new Event('touchend'))
396-
await vi.runOnlyPendingTimersAsync()
397-
398-
expect(wrapper.emitted('pdf-editor:signer-added')).toHaveLength(1)
399-
vi.useRealTimers()
400-
})
401-
402-
it('schedules signer check when pdf-elements instance is unavailable', async () => {
403-
vi.useFakeTimers()
404-
Object.assign(getPdfElements(), {
405-
isAddingMode: false,
406-
pdfDocuments: [{ allObjects: [[]] }],
407-
})
408-
wrapper.vm.startAddingSigner({ email: 'test@example.com' }, { width: 120, height: 60 })
409-
vi.clearAllTimers()
410-
wrapper.vm.pdfElements = null
411-
412-
const event = new Event('touchend')
413-
Object.defineProperty(event, 'changedTouches', {
414-
value: [{ clientX: 10, clientY: 20 }],
415-
configurable: true,
416-
})
417-
document.dispatchEvent(event)
418-
await vi.runOnlyPendingTimersAsync()
419-
420-
expect(wrapper.emitted('pdf-editor:signer-added')).toHaveLength(1)
421-
vi.useRealTimers()
422-
})
423-
424-
it('uses preview fallback on touchend and finalizes adding flow', async () => {
425-
vi.useFakeTimers()
426-
const runtime = Object.assign(getPdfElements(), {
427-
isAddingMode: true,
428-
previewElement: { id: 'preview-1' },
429-
previewVisible: false,
430-
handleMouseMove: vi.fn(),
431-
pdfDocuments: [{ allObjects: [[]] }],
432-
})
433-
runtime.finishAdding = vi.fn(() => {
434-
runtime.isAddingMode = false
435-
})
436-
437-
wrapper.vm.startAddingSigner({ email: 'test@example.com' }, { width: 120, height: 60 })
438-
vi.clearAllTimers()
439-
440-
const event = new Event('touchend')
441-
const preventDefaultSpy = vi.spyOn(event, 'preventDefault')
442-
const stopImmediatePropagationSpy = vi.spyOn(event, 'stopImmediatePropagation')
443-
Object.defineProperty(event, 'changedTouches', {
444-
value: [{ clientX: 44, clientY: 88 }],
445-
configurable: true,
446-
})
447-
document.dispatchEvent(event)
448-
await vi.runAllTimersAsync()
449-
450-
expect(preventDefaultSpy).toHaveBeenCalledTimes(1)
451-
expect(stopImmediatePropagationSpy).toHaveBeenCalledTimes(1)
452-
expect(runtime.handleMouseMove).toHaveBeenCalledWith({
453-
type: 'touchmove',
454-
touches: [{ clientX: 44, clientY: 88 }],
455-
})
456-
expect(runtime.finishAdding).toHaveBeenCalledTimes(1)
457-
expect(wrapper.emitted('pdf-editor:signer-added')).toHaveLength(1)
458-
vi.useRealTimers()
459-
})
460-
})
461-
462361
describe('RULE: document listener lifecycle', () => {
463362
it('registers and unregisters touchend listener on mount/unmount', () => {
464363
wrapper.unmount()
465364
const addEventListenerSpy = vi.spyOn(document, 'addEventListener')
466365
const removeEventListenerSpy = vi.spyOn(document, 'removeEventListener')
467366
const localWrapper = createWrapper()
468-
const touchendCall = addEventListenerSpy.mock.calls.find(([eventName]) => eventName === 'touchend')
367+
const registeredEvents = addEventListenerSpy.mock.calls
368+
.filter(([eventName]) => ['mouseup', 'touchend', 'keyup'].includes(String(eventName)))
369+
.map(([eventName]) => String(eventName))
469370

470-
expect(touchendCall).toBeTruthy()
371+
expect(registeredEvents).toEqual(['mouseup', 'touchend', 'keyup'])
471372
localWrapper.unmount()
472-
expect(removeEventListenerSpy).toHaveBeenCalledWith('touchend', touchendCall?.[1] as EventListener)
373+
expect(removeEventListenerSpy).toHaveBeenCalledWith('mouseup', expect.any(Function))
374+
expect(removeEventListenerSpy).toHaveBeenCalledWith('touchend', expect.any(Function))
375+
expect(removeEventListenerSpy).toHaveBeenCalledWith('keyup', expect.any(Function))
473376
})
474377
})
475378

0 commit comments

Comments
 (0)