From 2c69a514a8a2c3cfe713e118bb6997f21e41ebe8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karol=20S=C3=B3jko?= Date: Wed, 24 Aug 2022 12:45:13 +0200 Subject: [PATCH] fix(snjs): showing archived notes on trashed smart view (#1426) --- .../lib/Services/Items/ItemManager.spec.ts | 35 +++++++++++++++++++ .../snjs/lib/Services/Items/ItemManager.ts | 8 ++--- 2 files changed, 39 insertions(+), 4 deletions(-) diff --git a/packages/snjs/lib/Services/Items/ItemManager.spec.ts b/packages/snjs/lib/Services/Items/ItemManager.spec.ts index 4baa1755f..1810842fc 100644 --- a/packages/snjs/lib/Services/Items/ItemManager.spec.ts +++ b/packages/snjs/lib/Services/Items/ItemManager.spec.ts @@ -11,6 +11,8 @@ import { FillItemContent, PayloadTimestampDefaults, NoteContent, + SmartView, + SystemViewId, } from '@standardnotes/models' const setupRandomUuid = () => { @@ -179,6 +181,39 @@ describe('itemManager', () => { const notes = itemManager.getDisplayableNotes() expect(notes).toHaveLength(1) }) + + it('viewing trashed notes smart view should include archived notes', async () => { + itemManager = createService() + + const archivedNote = createNote('archived') + const trashedNote = createNote('trashed') + const archivedAndTrashedNote = createNote('archived&trashed') + + await itemManager.insertItems([archivedNote, trashedNote, archivedAndTrashedNote]) + + await itemManager.changeItem(archivedNote, (m) => { + m.archived = true + }) + await itemManager.changeItem(trashedNote, (m) => { + m.trashed = true + }) + await itemManager.changeItem(archivedAndTrashedNote, (m) => { + m.trashed = true + m.archived = true + }) + + itemManager.setPrimaryItemDisplayOptions({ + sortBy: 'title', + sortDirection: 'asc', + includeArchived: false, + includeTrashed: false, + views: [{ uuid: SystemViewId.TrashedNotes } as jest.Mocked], + }) + + const notes = itemManager.getDisplayableNotes() + + expect(notes).toHaveLength(2) + }) }) describe('tag relationships', () => { diff --git a/packages/snjs/lib/Services/Items/ItemManager.ts b/packages/snjs/lib/Services/Items/ItemManager.ts index 67244d619..0c81fa5a8 100644 --- a/packages/snjs/lib/Services/Items/ItemManager.ts +++ b/packages/snjs/lib/Services/Items/ItemManager.ts @@ -127,20 +127,20 @@ export class ItemManager const override: Models.FilterDisplayOptions = {} if (options.views && options.views.find((view) => view.uuid === Models.SystemViewId.AllNotes)) { - if (options.includeArchived == undefined) { + if (options.includeArchived === undefined) { override.includeArchived = false } - if (options.includeTrashed == undefined) { + if (options.includeTrashed === undefined) { override.includeTrashed = false } } if (options.views && options.views.find((view) => view.uuid === Models.SystemViewId.ArchivedNotes)) { - if (options.includeTrashed == undefined) { + if (options.includeTrashed === undefined) { override.includeTrashed = false } } if (options.views && options.views.find((view) => view.uuid === Models.SystemViewId.TrashedNotes)) { - if (options.includeArchived == undefined) { + if (!options.includeArchived) { override.includeArchived = true } }