]> git.ipfire.org Git - thirdparty/paperless-ngx.git/commitdiff
Fix: handle document notes user format api change (#5751)
authorshamoon <4887959+shamoon@users.noreply.github.com>
Tue, 13 Feb 2024 17:25:35 +0000 (09:25 -0800)
committerGitHub <noreply@github.com>
Tue, 13 Feb 2024 17:25:35 +0000 (17:25 +0000)
src-ui/src/app/components/document-detail/document-detail.component.spec.ts
src-ui/src/app/components/document-notes/document-notes.component.spec.ts
src-ui/src/app/components/document-notes/document-notes.component.ts
src-ui/src/app/data/document-note.ts

index a305889705753ea55c31d0ad3481e780db341448..e0da11a3e63e7f9d2dbdf99df1d45b5eea0a7b1a 100644 (file)
@@ -95,12 +95,12 @@ const doc: Document = {
     {
       created: new Date(),
       note: 'note 1',
-      user: 1,
+      user: { id: 1, username: 'user1' },
     },
     {
       created: new Date(),
       note: 'note 2',
-      user: 2,
+      user: { id: 2, username: 'user2' },
     },
   ],
   custom_fields: [
index 6957f1c7491dac142bca0d6d9394a28e4824e00a..4472d5ca53be8de26a8b01569430b3d28be03e7d 100644 (file)
@@ -19,22 +19,32 @@ const notes: DocumentNote[] = [
   {
     id: 23,
     note: 'Note 23',
-    user: 1,
+    user: {
+      id: 1,
+      username: 'user1',
+      first_name: 'User1',
+      last_name: 'Lastname1',
+    },
   },
   {
     id: 24,
     note: 'Note 24',
-    user: 1,
+    user: {
+      id: 1,
+      username: 'user1',
+      first_name: 'User1',
+      last_name: 'Lastname1',
+    },
   },
   {
     id: 25,
     note: 'Note 25',
-    user: 2,
+    user: { id: 2, username: 'user2' },
   },
   {
     id: 30,
     note: 'Note 30',
-    user: 3,
+    user: { id: 3, username: 'user3' },
   },
 ]
 
@@ -123,11 +133,24 @@ describe('DocumentNotesComponent', () => {
   })
 
   it('should handle note user display in all situations', () => {
-    expect(component.displayName({ id: 1, user: 1 })).toEqual(
-      'User1 Lastname1 (user1)'
-    )
-    expect(component.displayName({ id: 1, user: 2 })).toEqual('user2')
-    expect(component.displayName({ id: 1, user: 4 })).toEqual('')
+    expect(
+      component.displayName({
+        id: 1,
+        user: {
+          id: 1,
+          username: 'user1',
+          first_name: 'User1',
+          last_name: 'Lastname1',
+        },
+      })
+    ).toEqual('User1 Lastname1 (user1)')
+    expect(
+      component.displayName({ id: 1, user: { id: 2, username: 'user2' } })
+    ).toEqual('user2')
+    expect(component.displayName({ id: 1, user: 2 } as any)).toEqual('user2')
+    expect(
+      component.displayName({ id: 1, user: { id: 4, username: 'user4' } })
+    ).toEqual('')
     expect(component.displayName({ id: 1 })).toEqual('')
   })
 
@@ -146,7 +169,9 @@ describe('DocumentNotesComponent', () => {
     expect(addSpy).toHaveBeenCalledWith(12, note)
     expect(toastsSpy).toHaveBeenCalled()
 
-    addSpy.mockReturnValueOnce(of([...notes, { id: 31, note, user: 1 }]))
+    addSpy.mockReturnValueOnce(
+      of([...notes, { id: 31, note, user: { id: 1 } }])
+    )
     addButton.triggerEventHandler('click')
     fixture.detectChanges()
     expect(fixture.debugElement.nativeElement.textContent).toContain(note)
index 45e1469d8083f9e40c6a134d63af97d8752d417e..e35f08e7f2cbc6a35f78fec09af9cfcab6ffd5e7 100644 (file)
@@ -84,7 +84,8 @@ export class DocumentNotesComponent extends ComponentWithPermissions {
 
   displayName(note: DocumentNote): string {
     if (!note.user) return ''
-    const user = this.users?.find((u) => u.id === note.user)
+    const user_id = typeof note.user === 'number' ? note.user : note.user.id
+    const user = this.users?.find((u) => u.id === user_id)
     if (!user) return ''
     const nameComponents = []
     if (user.first_name) nameComponents.push(user.first_name)
index bc33df60cc4e5b8c0c86477982963aad58fcf625..e34a10c19e3ab7d0aabfb035110bee77ec10f0ea 100644 (file)
@@ -1,7 +1,8 @@
 import { ObjectWithId } from './object-with-id'
+import { User } from './user'
 
 export interface DocumentNote extends ObjectWithId {
   created?: Date
   note?: string
-  user?: number // User
+  user?: User
 }