Fix: including ordering param for id__in retrievals from frontend (#6875)

This commit is contained in:
shamoon
2024-06-01 19:28:31 -07:00
committed by GitHub
parent 085447e7c4
commit d2883b83c5
6 changed files with 24 additions and 5 deletions

View File

@@ -18,7 +18,7 @@ const document: Document = {
custom_fields: [
{ field: 1, document: 1, created: null, value: 'Text value' },
{ field: 2, document: 1, created: null, value: 'USD100' },
{ field: 3, document: 1, created: null, value: '1,2,3' },
{ field: 3, document: 1, created: null, value: [1, 2, 3] },
],
}

View File

@@ -105,7 +105,9 @@ export class CustomFieldDisplayComponent implements OnInit, OnDestroy {
.getFew(this.value, { fields: 'id,title' })
.pipe(takeUntil(this.unsubscribeNotifier))
.subscribe((result: Results<Document>) => {
this.docLinkDocuments = result.results
this.docLinkDocuments = this.value.map((id) =>
result.results.find((d) => d.id === id)
)
})
}

View File

@@ -66,6 +66,20 @@ describe('DocumentLinkComponent', () => {
expect(getSpy).toHaveBeenCalled()
})
it('shoud maintain ordering of selected documents', () => {
const getSpy = jest.spyOn(documentService, 'getFew')
getSpy.mockImplementation((ids) => {
const docs = documents.filter((d) => ids.includes(d.id))
return of({
count: docs.length,
all: docs.map((d) => d.id),
results: docs,
})
})
component.writeValue([12, 1])
expect(component.selectedDocuments).toEqual([documents[1], documents[0]])
})
it('should search API on select text input', () => {
const listSpy = jest.spyOn(documentService, 'listFiltered')
listSpy.mockImplementation(

View File

@@ -65,7 +65,9 @@ export class DocumentLinkComponent
.pipe(takeUntil(this.unsubscribeNotifier))
.subscribe((documentResults) => {
this.loading = false
this.selectedDocuments = documentResults.results
this.selectedDocuments = documentIDs.map((id) =>
documentResults.results.find((d) => d.id === id)
)
super.writeValue(documentIDs)
})
}