]> git.ipfire.org Git - thirdparty/paperless-ngx.git/commitdiff
Cleaner auto-remove
authorshamoon <4887959+shamoon@users.noreply.github.com>
Tue, 22 Apr 2025 07:28:01 +0000 (00:28 -0700)
committershamoon <4887959+shamoon@users.noreply.github.com>
Tue, 22 Apr 2025 15:08:30 +0000 (08:08 -0700)
src-ui/src/app/components/document-detail/document-detail.component.spec.ts
src-ui/src/app/components/document-detail/document-detail.component.ts

index 66d626f94b6ab1080f8927c605749e84c1fefc11..34380866ee03ff0577ec136f0f3b0109d2f85adb 100644 (file)
@@ -392,8 +392,11 @@ describe('DocumentDetailComponent', () => {
     currentUserCan = true
   })
 
-  it('should support creating tag', () => {
+  it('should support creating tag, remove from suggestions', () => {
     initNormally()
+    component.suggestions = {
+      suggested_tags: ['Tag1', 'NewTag12'],
+    }
     let openModal: NgbModalRef
     modalService.activeInstances.subscribe((modal) => (openModal = modal[0]))
     const modalSpy = jest.spyOn(modalService, 'open')
@@ -407,10 +410,14 @@ describe('DocumentDetailComponent', () => {
       text_color: '#000000',
     })
     expect(component.documentForm.get('tags').value).toContain(12)
+    expect(component.suggestions.suggested_tags).not.toContain('NewTag12')
   })
 
-  it('should support creating document type', () => {
+  it('should support creating document type, remove from suggestions', () => {
     initNormally()
+    component.suggestions = {
+      suggested_document_types: ['DocumentType1', 'NewDocType2'],
+    }
     let openModal: NgbModalRef
     modalService.activeInstances.subscribe((modal) => (openModal = modal[0]))
     const modalSpy = jest.spyOn(modalService, 'open')
@@ -418,10 +425,16 @@ describe('DocumentDetailComponent', () => {
     expect(modalSpy).toHaveBeenCalled()
     openModal.componentInstance.succeeded.next({ id: 12, name: 'NewDocType12' })
     expect(component.documentForm.get('document_type').value).toEqual(12)
+    expect(component.suggestions.suggested_document_types).not.toContain(
+      'NewDocType2'
+    )
   })
 
-  it('should support creating correspondent', () => {
+  it('should support creating correspondent, remove from suggestions', () => {
     initNormally()
+    component.suggestions = {
+      suggested_correspondents: ['Correspondent1', 'NewCorrrespondent12'],
+    }
     let openModal: NgbModalRef
     modalService.activeInstances.subscribe((modal) => (openModal = modal[0]))
     const modalSpy = jest.spyOn(modalService, 'open')
@@ -432,6 +445,9 @@ describe('DocumentDetailComponent', () => {
       name: 'NewCorrrespondent12',
     })
     expect(component.documentForm.get('correspondent').value).toEqual(12)
+    expect(component.suggestions.suggested_correspondents).not.toContain(
+      'NewCorrrespondent12'
+    )
   })
 
   it('should support creating storage path', () => {
@@ -1076,30 +1092,6 @@ describe('DocumentDetailComponent', () => {
     expect(errorSpy).toHaveBeenCalled()
   })
 
-  it('should support removing suggestions', () => {
-    initNormally()
-    component.removeSuggestion('tag', 'Hello') // coverage
-    component.suggestions = {
-      tags: [42, 43],
-      suggested_tags: ['foo'],
-      document_types: [],
-      suggested_document_types: ['bar'],
-      correspondents: [],
-      suggested_correspondents: ['baz'],
-    }
-    component.removeSuggestion('tag', 'foo')
-    component.removeSuggestion('documentType', 'bar')
-    component.removeSuggestion('correspondent', 'baz')
-    expect(component.suggestions).toEqual({
-      tags: [42, 43],
-      suggested_tags: [],
-      document_types: [],
-      suggested_document_types: [],
-      correspondents: [],
-      suggested_correspondents: [],
-    })
-  })
-
   it('should warn when open document does not match doc retrieved from backend on init', () => {
     let openModal: NgbModalRef
     modalService.activeInstances.subscribe((modals) => (openModal = modals[0]))
index 41fa669c898e5fe5bcb81cbb8983ec54156169b2..00698307d193f1b27c494012725f486253e22570 100644 (file)
@@ -700,25 +700,6 @@ export class DocumentDetailComponent
       })
   }
 
-  public removeSuggestion(type: string, value: string) {
-    if (!this.suggestions) return
-
-    switch (type) {
-      case 'tag':
-        this.suggestions.suggested_tags =
-          this.suggestions.suggested_tags.filter((t) => t !== value)
-        break
-      case 'correspondent':
-        this.suggestions.suggested_correspondents =
-          this.suggestions.suggested_correspondents.filter((c) => c !== value)
-        break
-      case 'documentType':
-        this.suggestions.suggested_document_types =
-          this.suggestions.suggested_document_types.filter((dt) => dt !== value)
-        break
-    }
-  }
-
   createTag(newName: string) {
     var modal = this.modalService.open(TagEditDialogComponent, {
       backdrop: 'static',
@@ -737,7 +718,10 @@ export class DocumentDetailComponent
       .subscribe(({ newTag, tags }) => {
         this.tagsInput.tags = tags.results
         this.tagsInput.addTag(newTag.id)
-        this.removeSuggestion('tag', newName)
+        if (this.suggestions) {
+          this.suggestions.suggested_tags =
+            this.suggestions.suggested_tags.filter((tag) => tag !== newName)
+        }
       })
   }
 
@@ -759,7 +743,12 @@ export class DocumentDetailComponent
       .subscribe(({ newDocumentType, documentTypes }) => {
         this.documentTypes = documentTypes.results
         this.documentForm.get('document_type').setValue(newDocumentType.id)
-        this.removeSuggestion('documentType', newName)
+        if (this.suggestions) {
+          this.suggestions.suggested_document_types =
+            this.suggestions.suggested_document_types.filter(
+              (dt) => dt !== newName
+            )
+        }
       })
   }
 
@@ -783,7 +772,12 @@ export class DocumentDetailComponent
       .subscribe(({ newCorrespondent, correspondents }) => {
         this.correspondents = correspondents.results
         this.documentForm.get('correspondent').setValue(newCorrespondent.id)
-        this.removeSuggestion('correspondent', newName)
+        if (this.suggestions) {
+          this.suggestions.suggested_correspondents =
+            this.suggestions.suggested_correspondents.filter(
+              (c) => c !== newName
+            )
+        }
       })
   }