]> git.ipfire.org Git - thirdparty/paperless-ngx.git/commitdiff
Testing
authorshamoon <4887959+shamoon@users.noreply.github.com>
Tue, 1 Jul 2025 21:53:30 +0000 (14:53 -0700)
committershamoon <4887959+shamoon@users.noreply.github.com>
Sat, 2 Aug 2025 12:22:55 +0000 (08:22 -0400)
src-ui/src/app/components/common/pdf-editor/pdf-editor.component.spec.ts

index b1ae01b3f85c0ff7c03cfa1ab6dd8cb6a7feb3b1..434deb11d311577b443883dca44192d8ef294d29 100644 (file)
@@ -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)
+  })
 })