mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-11-03 03:16:10 -06:00 
			
		
		
		
	Testing
This commit is contained in:
		@@ -23,6 +23,20 @@ describe('PDFEditorComponent', () => {
 | 
				
			|||||||
    fixture.detectChanges()
 | 
					    fixture.detectChanges()
 | 
				
			||||||
  })
 | 
					  })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  it('should return correct operations with no changes', () => {
 | 
				
			||||||
 | 
					    component.pages = [
 | 
				
			||||||
 | 
					      { page: 1, rotate: 0, splitAfter: false },
 | 
				
			||||||
 | 
					      { page: 2, rotate: 0, splitAfter: false },
 | 
				
			||||||
 | 
					      { page: 3, rotate: 0, splitAfter: false },
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					    const ops = component.getOperations()
 | 
				
			||||||
 | 
					    expect(ops).toEqual([
 | 
				
			||||||
 | 
					      { page: 1, rotate: 0, doc: 0 },
 | 
				
			||||||
 | 
					      { page: 2, rotate: 0, doc: 0 },
 | 
				
			||||||
 | 
					      { page: 3, rotate: 0, doc: 0 },
 | 
				
			||||||
 | 
					    ])
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  it('should rotate, delete and reorder pages', () => {
 | 
					  it('should rotate, delete and reorder pages', () => {
 | 
				
			||||||
    component.pages = [
 | 
					    component.pages = [
 | 
				
			||||||
      { page: 1, rotate: 0, splitAfter: false, selected: false },
 | 
					      { page: 1, rotate: 0, splitAfter: false, selected: false },
 | 
				
			||||||
@@ -41,4 +55,88 @@ describe('PDFEditorComponent', () => {
 | 
				
			|||||||
    component.rotate(0)
 | 
					    component.rotate(0)
 | 
				
			||||||
    expect(component.pages[0].rotate).toBe(90)
 | 
					    expect(component.pages[0].rotate).toBe(90)
 | 
				
			||||||
  })
 | 
					  })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  it('should handle empty pages array', () => {
 | 
				
			||||||
 | 
					    component.pages = []
 | 
				
			||||||
 | 
					    expect(component.getOperations()).toEqual([])
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  it('should increment doc index after splitAfter', () => {
 | 
				
			||||||
 | 
					    component.pages = [
 | 
				
			||||||
 | 
					      { page: 1, rotate: 0, splitAfter: true },
 | 
				
			||||||
 | 
					      { page: 2, rotate: 0, splitAfter: false },
 | 
				
			||||||
 | 
					      { page: 3, rotate: 0, splitAfter: true },
 | 
				
			||||||
 | 
					      { page: 4, rotate: 0, splitAfter: false },
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					    const ops = component.getOperations()
 | 
				
			||||||
 | 
					    expect(ops).toEqual([
 | 
				
			||||||
 | 
					      { page: 1, rotate: 0, doc: 0 },
 | 
				
			||||||
 | 
					      { page: 2, rotate: 0, doc: 1 },
 | 
				
			||||||
 | 
					      { page: 3, rotate: 0, doc: 1 },
 | 
				
			||||||
 | 
					      { page: 4, rotate: 0, doc: 2 },
 | 
				
			||||||
 | 
					    ])
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  it('should include rotations in operations', () => {
 | 
				
			||||||
 | 
					    component.pages = [
 | 
				
			||||||
 | 
					      { page: 1, rotate: 90, splitAfter: false },
 | 
				
			||||||
 | 
					      { page: 2, rotate: 180, splitAfter: true },
 | 
				
			||||||
 | 
					      { page: 3, rotate: 270, splitAfter: false },
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					    const ops = component.getOperations()
 | 
				
			||||||
 | 
					    expect(ops).toEqual([
 | 
				
			||||||
 | 
					      { page: 1, rotate: 90, doc: 0 },
 | 
				
			||||||
 | 
					      { page: 2, rotate: 180, doc: 0 },
 | 
				
			||||||
 | 
					      { page: 3, rotate: 270, doc: 1 },
 | 
				
			||||||
 | 
					    ])
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  it('should handle remove operation', () => {
 | 
				
			||||||
 | 
					    component.pages = [
 | 
				
			||||||
 | 
					      { page: 1, rotate: 0, splitAfter: false, selected: false },
 | 
				
			||||||
 | 
					      { page: 2, rotate: 0, splitAfter: false, selected: true },
 | 
				
			||||||
 | 
					      { page: 3, rotate: 0, splitAfter: false, selected: false },
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					    component.remove(1) // remove page 2
 | 
				
			||||||
 | 
					    expect(component.pages.length).toBe(2)
 | 
				
			||||||
 | 
					    expect(component.pages[0].page).toBe(1)
 | 
				
			||||||
 | 
					    expect(component.pages[1].page).toBe(3)
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  it('should toggle splitAfter correctly', () => {
 | 
				
			||||||
 | 
					    component.pages = [
 | 
				
			||||||
 | 
					      { page: 1, rotate: 0, splitAfter: false },
 | 
				
			||||||
 | 
					      { page: 2, rotate: 0, splitAfter: false },
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					    component.toggleSplit(0)
 | 
				
			||||||
 | 
					    expect(component.pages[0].splitAfter).toBeTruthy()
 | 
				
			||||||
 | 
					    component.toggleSplit(1)
 | 
				
			||||||
 | 
					    expect(component.pages[1].splitAfter).toBeTruthy()
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  it('should select and deselect all pages', () => {
 | 
				
			||||||
 | 
					    component.pages = [
 | 
				
			||||||
 | 
					      { page: 1, rotate: 0, splitAfter: false, selected: false },
 | 
				
			||||||
 | 
					      { page: 2, rotate: 0, splitAfter: false, selected: false },
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					    component.selectAll()
 | 
				
			||||||
 | 
					    expect(component.pages.every((p) => p.selected)).toBeTruthy()
 | 
				
			||||||
 | 
					    expect(component.hasSelection()).toBeTruthy()
 | 
				
			||||||
 | 
					    component.deselectAll()
 | 
				
			||||||
 | 
					    expect(component.pages.every((p) => !p.selected)).toBeTruthy()
 | 
				
			||||||
 | 
					    expect(component.hasSelection()).toBeFalsy()
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  it('should handle pdf loading and page generation', () => {
 | 
				
			||||||
 | 
					    const mockPdf = {
 | 
				
			||||||
 | 
					      numPages: 3,
 | 
				
			||||||
 | 
					      getPage: (pageNum: number) => Promise.resolve({ pageNumber: pageNum }),
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    component.pdfLoaded(mockPdf as any)
 | 
				
			||||||
 | 
					    expect(component.totalPages).toBe(3)
 | 
				
			||||||
 | 
					    expect(component.pages.length).toBe(3)
 | 
				
			||||||
 | 
					    expect(component.pages[0].page).toBe(1)
 | 
				
			||||||
 | 
					    expect(component.pages[1].page).toBe(2)
 | 
				
			||||||
 | 
					    expect(component.pages[2].page).toBe(3)
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user