mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-07-28 18:24:38 -05:00
Add frontend testing of multi-object filtering
This commit is contained in:
@@ -48,6 +48,26 @@ describe('documents-list', () => {
|
||||
(d.tags as Array<number>).includes(tag_id)
|
||||
)
|
||||
response.count = response.results.length
|
||||
} else if (req.query.hasOwnProperty('correspondent__id__in')) {
|
||||
// filtering e.g. http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&correspondent__id__in=9,14
|
||||
const correspondent_ids = req.query['correspondent__id__in']
|
||||
.toString()
|
||||
.split(',')
|
||||
.map((c) => +c)
|
||||
response.results = (documentsJson.results as Array<any>).filter((d) =>
|
||||
correspondent_ids.includes(d.correspondent)
|
||||
)
|
||||
response.count = response.results.length
|
||||
} else if (req.query.hasOwnProperty('correspondent__id__none')) {
|
||||
// filtering e.g. http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&correspondent__id__none=9,14
|
||||
const correspondent_ids = req.query['correspondent__id__none']
|
||||
.toString()
|
||||
.split(',')
|
||||
.map((c) => +c)
|
||||
response.results = (documentsJson.results as Array<any>).filter(
|
||||
(d) => !correspondent_ids.includes(d.correspondent)
|
||||
)
|
||||
response.count = response.results.length
|
||||
}
|
||||
|
||||
req.reply(response)
|
||||
@@ -112,6 +132,27 @@ describe('documents-list', () => {
|
||||
cy.contains('One document')
|
||||
})
|
||||
|
||||
it('should filter including multiple correspondents', () => {
|
||||
cy.get('app-filter-editor app-filterable-dropdown[title="Correspondent"]')
|
||||
.click()
|
||||
.within(() => {
|
||||
cy.contains('button', 'ABC Test Correspondent').click()
|
||||
cy.contains('button', 'Corresp 11').click()
|
||||
})
|
||||
cy.contains('3 documents')
|
||||
})
|
||||
|
||||
it('should filter excluding multiple correspondents', () => {
|
||||
cy.get('app-filter-editor app-filterable-dropdown[title="Correspondent"]')
|
||||
.click()
|
||||
.within(() => {
|
||||
cy.contains('button', 'ABC Test Correspondent').click()
|
||||
cy.contains('button', 'Corresp 11').click()
|
||||
cy.contains('label', 'Exclude').click()
|
||||
})
|
||||
cy.contains('One document')
|
||||
})
|
||||
|
||||
it('should apply tags', () => {
|
||||
cy.get('app-document-card-small:first-of-type').click()
|
||||
cy.get('app-bulk-editor app-filterable-dropdown[title="Tags"]').within(
|
||||
|
@@ -232,6 +232,11 @@ describe('documents query params', () => {
|
||||
|
||||
it('should show a list of documents filtered by document type', () => {
|
||||
cy.visit('/documents?sort=created&reverse=true&document_type__id=1')
|
||||
cy.contains('2 documents')
|
||||
})
|
||||
|
||||
it('should show a list of documents filtered by multiple correspondents', () => {
|
||||
cy.visit('/documents?sort=created&reverse=true&document_type__id__in=1,2')
|
||||
cy.contains('3 documents')
|
||||
})
|
||||
|
||||
@@ -245,9 +250,14 @@ describe('documents query params', () => {
|
||||
cy.contains('2 documents')
|
||||
})
|
||||
|
||||
it('should show a list of documents filtered by multiple correspondents', () => {
|
||||
cy.visit('/documents?sort=created&reverse=true&correspondent__id__in=9,14')
|
||||
cy.contains('3 documents')
|
||||
})
|
||||
|
||||
it('should show a list of documents filtered by no correspondent', () => {
|
||||
cy.visit('/documents?sort=created&reverse=true&correspondent__isnull=1')
|
||||
cy.contains('2 documents')
|
||||
cy.contains('One document')
|
||||
})
|
||||
|
||||
it('should show a list of documents filtered by storage path', () => {
|
||||
|
Reference in New Issue
Block a user