]> 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>
Wed, 2 Jul 2025 18:01:50 +0000 (11:01 -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 40b27b6aeaf1bea21ef8851c6adb9dd8134b2162..c445b4744ea16e36a655365b74809af1a84f5744 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', () => {
@@ -1114,30 +1130,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 00e46ea93f9d5f0e9ae25fbac609583229d8a400..32963aa5cd62a12fcaf7a5f25d9ded4062f93e0d 100644 (file)
@@ -695,25 +695,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',
@@ -732,7 +713,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)
+        }
       })
   }
 
@@ -755,7 +739,12 @@ export class DocumentDetailComponent
         this.documentTypes = documentTypes.results
         this.documentForm.get('document_type').setValue(newDocumentType.id)
         this.documentForm.get('document_type').markAsDirty()
-        this.removeSuggestion('documentType', newName)
+        if (this.suggestions) {
+          this.suggestions.suggested_document_types =
+            this.suggestions.suggested_document_types.filter(
+              (dt) => dt !== newName
+            )
+        }
       })
   }
 
@@ -780,7 +769,12 @@ export class DocumentDetailComponent
         this.correspondents = correspondents.results
         this.documentForm.get('correspondent').setValue(newCorrespondent.id)
         this.documentForm.get('correspondent').markAsDirty()
-        this.removeSuggestion('correspondent', newName)
+        if (this.suggestions) {
+          this.suggestions.suggested_correspondents =
+            this.suggestions.suggested_correspondents.filter(
+              (c) => c !== newName
+            )
+        }
       })
   }