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()
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  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', () => {
 | 
			
		||||
    component.pages = [
 | 
			
		||||
      { page: 1, rotate: 0, splitAfter: false, selected: false },
 | 
			
		||||
@@ -41,4 +55,88 @@ describe('PDFEditorComponent', () => {
 | 
			
		||||
    component.rotate(0)
 | 
			
		||||
    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