Feature: support sorting sidebar saved views (#4381)

This commit is contained in:
shamoon 2023-10-19 19:41:01 -07:00 committed by GitHub
parent 999ae678c2
commit 9880f9ebc7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
18 changed files with 397 additions and 147 deletions

View file

@ -4,6 +4,8 @@ import { TestBed } from '@angular/core/testing'
import { environment } from 'src/environments/environment'
import { commonAbstractPaperlessServiceTests } from './abstract-paperless-service.spec'
import { SavedViewService } from './saved-view.service'
import { SettingsService } from '../settings.service'
import { SETTINGS_KEYS } from 'src/app/data/paperless-uisettings'
let httpTestingController: HttpTestingController
let service: SavedViewService
@ -22,8 +24,8 @@ const saved_views = [
{
name: 'Saved View 2',
id: 2,
show_on_dashboard: false,
show_in_sidebar: false,
show_on_dashboard: true,
show_in_sidebar: true,
sort_field: 'name',
sort_reverse: true,
filter_rules: [],
@ -32,6 +34,15 @@ const saved_views = [
name: 'Saved View 3',
id: 3,
show_on_dashboard: true,
show_in_sidebar: true,
sort_field: 'name',
sort_reverse: true,
filter_rules: [],
},
{
name: 'Saved View 4',
id: 4,
show_on_dashboard: false,
show_in_sidebar: false,
sort_field: 'name',
sort_reverse: true,
@ -43,6 +54,8 @@ const saved_views = [
commonAbstractPaperlessServiceTests(endpoint, SavedViewService)
describe(`Additional service tests for SavedViewService`, () => {
let settingsService
it('should retrieve saved views and sort them', () => {
service.initialize()
const req = httpTestingController.expectOne(
@ -51,9 +64,9 @@ describe(`Additional service tests for SavedViewService`, () => {
req.flush({
results: saved_views,
})
expect(service.allViews).toHaveLength(3)
expect(service.dashboardViews).toHaveLength(2)
expect(service.sidebarViews).toHaveLength(1)
expect(service.allViews).toHaveLength(4)
expect(service.dashboardViews).toHaveLength(3)
expect(service.sidebarViews).toHaveLength(3)
})
it('should support patchMany', () => {
@ -67,11 +80,36 @@ describe(`Additional service tests for SavedViewService`, () => {
})
})
it('should sort dashboard views', () => {
service['savedViews'] = saved_views
jest.spyOn(settingsService, 'get').mockImplementation((key) => {
if (key === SETTINGS_KEYS.DASHBOARD_VIEWS_SORT_ORDER) return [3, 1, 2]
})
expect(service.dashboardViews).toEqual([
saved_views[2],
saved_views[0],
saved_views[1],
])
})
it('should sort sidebar views', () => {
service['savedViews'] = saved_views
jest.spyOn(settingsService, 'get').mockImplementation((key) => {
if (key === SETTINGS_KEYS.SIDEBAR_VIEWS_SORT_ORDER) return [3, 1, 2]
})
expect(service.sidebarViews).toEqual([
saved_views[2],
saved_views[0],
saved_views[1],
])
})
beforeEach(() => {
// Dont need to setup again
httpTestingController = TestBed.inject(HttpTestingController)
service = TestBed.inject(SavedViewService)
settingsService = TestBed.inject(SettingsService)
})
afterEach(() => {