From 7505c9498609f935e23365fc740e4959b9fd2f01 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Fri, 6 Mar 2026 16:53:25 +0200 Subject: [PATCH 1/3] test fix --- test/unit/specs/stores/sync_config.spec.js | 5 ----- 1 file changed, 5 deletions(-) diff --git a/test/unit/specs/stores/sync_config.spec.js b/test/unit/specs/stores/sync_config.spec.js index b065bede9..9aed6193b 100644 --- a/test/unit/specs/stores/sync_config.spec.js +++ b/test/unit/specs/stores/sync_config.spec.js @@ -493,11 +493,6 @@ describe('The SyncConfig store', () => { }) describe('_resetFlags', () => { - it('should reset all known flags to 0 when reset flag is set to > 0 and < 9000', () => { - const totalFlags = { a: 0, b: 3, reset: 1 } - - expect(_resetFlags(totalFlags)).to.eql({ a: 0, b: 0, reset: 0 }) - }) it('should trim all flags to known when reset is set to 1000', () => { const totalFlags = { a: 0, b: 3, c: 33, reset: COMMAND_TRIM_FLAGS } From b09efcb5f3674ee897cd1ae22a6e1213598237d0 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Fri, 6 Mar 2026 17:10:56 +0200 Subject: [PATCH 2/3] more test fixes --- .../notification_utils/notification_utils.js | 12 ++++------ .../notification_utils.spec.js | 23 +++++++++---------- 2 files changed, 16 insertions(+), 19 deletions(-) diff --git a/src/services/notification_utils/notification_utils.js b/src/services/notification_utils/notification_utils.js index 95902daef..b412ba59b 100644 --- a/src/services/notification_utils/notification_utils.js +++ b/src/services/notification_utils/notification_utils.js @@ -1,7 +1,8 @@ import { showDesktopNotification } from '../desktop_notification_utils/desktop_notification_utils.js' import { muteFilterHits } from '../status_parser/status_parser.js' -import { useAnnouncementsStore } from 'src/stores/announcements' +import { useSyncConfigStore } from 'src/stores/sync_config.js' +import { useAnnouncementsStore } from 'src/stores/announcements.js' import { useI18nStore } from 'src/stores/i18n.js' import FaviconService from 'src/services/favicon_service/favicon_service.js' @@ -100,14 +101,14 @@ export const filteredNotificationsFromStore = ( .map((_) => _) .sort(sortById) // TODO implement sorting elsewhere and make it optional + console.log(types, visibleTypes(notificationVisibility)) return sortedNotifications.filter((notification) => (types || visibleTypes(notificationVisibility)).includes(notification.type), ) } export const unseenNotificationsFromStore = (store, notificationVisibility) => { - const rootGetters = store.rootGetters || store.getters - const ignoreInactionableSeen = rootGetters.mergedConfig.ignoreInactionableSeen + const ignoreInactionableSeen = useSyncConfigStore().mergedConfig.ignoreInactionableSeen return filteredNotificationsFromStore(store, notificationVisibility).filter( ({ seen, type }) => { @@ -188,10 +189,7 @@ export const prepareNotificationObject = (notification, i18n) => { return notifObj } -export const countExtraNotifications = (store) => { - const rootGetters = store.rootGetters || store.getters - const mergedConfig = rootGetters.mergedConfig - +export const countExtraNotifications = (mergedConfig) => { if (!mergedConfig.showExtraNotifications) { return 0 } diff --git a/test/unit/specs/services/notification_utils/notification_utils.spec.js b/test/unit/specs/services/notification_utils/notification_utils.spec.js index 0db318e3c..dbdd3d660 100644 --- a/test/unit/specs/services/notification_utils/notification_utils.spec.js +++ b/test/unit/specs/services/notification_utils/notification_utils.spec.js @@ -53,7 +53,11 @@ describe('NotificationUtils', () => { type: 'like', }, ] - expect(NotificationUtils.filteredNotificationsFromStore(store)).to.eql( + expect(NotificationUtils.filteredNotificationsFromStore(store, { + mentions: false, + likes: true, + repeats: true, + })).to.eql( expected, ) }) @@ -77,16 +81,7 @@ describe('NotificationUtils', () => { }, ], }, - }, - getters: { - mergedConfig: { - notificationVisibility: { - likes: true, - repeats: true, - mentions: false, - }, - }, - }, + } } const expected = [ { @@ -95,7 +90,11 @@ describe('NotificationUtils', () => { seen: false, }, ] - expect(NotificationUtils.unseenNotificationsFromStore(store)).to.eql( + expect(NotificationUtils.unseenNotificationsFromStore(store, { + likes: true, + repeats: true, + mentions: false, + })).to.eql( expected, ) }) From e582b23ad7beb35cdf1f874717295c49438149a3 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Fri, 6 Mar 2026 17:14:29 +0200 Subject: [PATCH 3/3] fix test from another MR --- test/unit/specs/components/gallery.spec.js | 244 ++++++++++----------- 1 file changed, 122 insertions(+), 122 deletions(-) diff --git a/test/unit/specs/components/gallery.spec.js b/test/unit/specs/components/gallery.spec.js index 941110e78..3e7aa0de2 100644 --- a/test/unit/specs/components/gallery.spec.js +++ b/test/unit/specs/components/gallery.spec.js @@ -21,57 +21,57 @@ describe('Gallery', () => { it('one audio attachment', () => { local = { - attachments: [{ mimetype: 'audio/mpeg' }], + attachments: [{ type: 'audio' }], } expect(Gallery.computed.rows.call(local)).to.eql([ - { audio: true, items: [{ mimetype: 'audio/mpeg' }] }, + { audio: true, items: [{ type: 'audio' }] }, ]) }) it('one image attachment', () => { local = { - attachments: [{ mimetype: 'image/png' }], + attachments: [{ type: 'image' }], } expect(Gallery.computed.rows.call(local)).to.eql([ - { items: [{ mimetype: 'image/png' }] }, + { items: [{ type: 'image' }] }, ]) }) it('one audio attachment and one image attachment', () => { local = { - attachments: [{ mimetype: 'audio/mpeg' }, { mimetype: 'image/png' }], + attachments: [{ type: 'audio' }, { type: 'image' }], } expect(Gallery.computed.rows.call(local)).to.eql([ - { audio: true, items: [{ mimetype: 'audio/mpeg' }] }, - { items: [{ mimetype: 'image/png' }] }, + { audio: true, items: [{ type: 'audio' }] }, + { items: [{ type: 'image' }] }, ]) }) it('has "size" key set to "hide"', () => { let local local = { - attachments: [{ mimetype: 'audio/mpeg' }], + attachments: [{ type: 'audio' }], size: 'hide', } expect(Gallery.computed.rows.call(local)).to.eql([ - { minimal: true, items: [{ mimetype: 'audio/mpeg' }] }, + { minimal: true, items: [{ type: 'audio' }] }, ]) local = { attachments: [ - { mimetype: 'image/jpg' }, - { mimetype: 'image/png' }, - { mimetype: 'image/jpg' }, - { mimetype: 'audio/mpeg' }, - { mimetype: 'image/png' }, - { mimetype: 'audio/mpeg' }, - { mimetype: 'image/jpg' }, - { mimetype: 'image/png' }, - { mimetype: 'image/jpg' }, + { type: 'image' }, + { type: 'image' }, + { type: 'image' }, + { type: 'audio' }, + { type: 'image' }, + { type: 'audio' }, + { type: 'image' }, + { type: 'image' }, + { type: 'image' }, ], size: 'hide', } @@ -79,186 +79,186 @@ describe('Gallery', () => { // When defining `size: hide`, the `items` aren't // grouped and `audio` isn't set expect(Gallery.computed.rows.call(local)).to.eql([ - { minimal: true, items: [{ mimetype: 'image/jpg' }] }, - { minimal: true, items: [{ mimetype: 'image/png' }] }, - { minimal: true, items: [{ mimetype: 'image/jpg' }] }, - { minimal: true, items: [{ mimetype: 'audio/mpeg' }] }, - { minimal: true, items: [{ mimetype: 'image/png' }] }, - { minimal: true, items: [{ mimetype: 'audio/mpeg' }] }, - { minimal: true, items: [{ mimetype: 'image/jpg' }] }, - { minimal: true, items: [{ mimetype: 'image/png' }] }, - { minimal: true, items: [{ mimetype: 'image/jpg' }] }, + { minimal: true, items: [{ type: 'image' }] }, + { minimal: true, items: [{ type: 'image' }] }, + { minimal: true, items: [{ type: 'image' }] }, + { minimal: true, items: [{ type: 'audio' }] }, + { minimal: true, items: [{ type: 'image' }] }, + { minimal: true, items: [{ type: 'audio' }] }, + { minimal: true, items: [{ type: 'image' }] }, + { minimal: true, items: [{ type: 'image' }] }, + { minimal: true, items: [{ type: 'image' }] }, ]) }) // types other than image or audio should be `minimal` - it('non-image/audio', () => { + it('non-image', () => { let local local = { - attachments: [{ mimetype: 'plain/text' }], + attachments: [{ type: 'plain' }], } expect(Gallery.computed.rows.call(local)).to.eql([ - { minimal: true, items: [{ mimetype: 'plain/text' }] }, + { minimal: true, items: [{ type: 'plain' }] }, ]) - // No grouping of non-image/audio items + // No grouping of non-image items local = { attachments: [ - { mimetype: 'plain/text' }, - { mimetype: 'plain/text' }, - { mimetype: 'plain/text' }, + { type: 'plain' }, + { type: 'plain' }, + { type: 'plain' }, ], } expect(Gallery.computed.rows.call(local)).to.eql([ - { minimal: true, items: [{ mimetype: 'plain/text' }] }, - { minimal: true, items: [{ mimetype: 'plain/text' }] }, - { minimal: true, items: [{ mimetype: 'plain/text' }] }, + { minimal: true, items: [{ type: 'plain' }] }, + { minimal: true, items: [{ type: 'plain' }] }, + { minimal: true, items: [{ type: 'plain' }] }, ]) local = { attachments: [ - { mimetype: 'image/png' }, - { mimetype: 'plain/text' }, - { mimetype: 'image/jpg' }, - { mimetype: 'audio/mpeg' }, + { type: 'image' }, + { type: 'plain' }, + { type: 'image' }, + { type: 'audio' }, ], } // NOTE / TODO: When defining `size: hide`, the `items` aren't // grouped and `audio` isn't set expect(Gallery.computed.rows.call(local)).to.eql([ - { items: [{ mimetype: 'image/png' }] }, - { minimal: true, items: [{ mimetype: 'plain/text' }] }, - { items: [{ mimetype: 'image/jpg' }] }, - { audio: true, items: [{ mimetype: 'audio/mpeg' }] }, + { items: [{ type: 'image' }] }, + { minimal: true, items: [{ type: 'plain' }] }, + { items: [{ type: 'image' }] }, + { audio: true, items: [{ type: 'audio' }] }, ]) }) it('mixed attachments', () => { local = { attachments: [ - { mimetype: 'audio/mpeg' }, - { mimetype: 'image/png' }, - { mimetype: 'audio/mpeg' }, - { mimetype: 'image/jpg' }, - { mimetype: 'image/png' }, - { mimetype: 'image/jpg' }, - { mimetype: 'image/jpg' }, + { type: 'audio' }, + { type: 'image' }, + { type: 'audio' }, + { type: 'image' }, + { type: 'image' }, + { type: 'image' }, + { type: 'image' }, ], } expect(Gallery.computed.rows.call(local)).to.eql([ - { audio: true, items: [{ mimetype: 'audio/mpeg' }] }, - { items: [{ mimetype: 'image/png' }] }, - { audio: true, items: [{ mimetype: 'audio/mpeg' }] }, + { audio: true, items: [{ type: 'audio' }] }, + { items: [{ type: 'image' }] }, + { audio: true, items: [{ type: 'audio' }] }, { items: [ - { mimetype: 'image/jpg' }, - { mimetype: 'image/png' }, - { mimetype: 'image/jpg' }, - { mimetype: 'image/jpg' }, + { type: 'image' }, + { type: 'image' }, + { type: 'image' }, + { type: 'image' }, ], }, ]) local = { attachments: [ - { mimetype: 'image/jpg' }, - { mimetype: 'image/png' }, - { mimetype: 'image/jpg' }, - { mimetype: 'image/jpg' }, - { mimetype: 'audio/mpeg' }, - { mimetype: 'image/png' }, - { mimetype: 'audio/mpeg' }, + { type: 'image' }, + { type: 'image' }, + { type: 'image' }, + { type: 'image' }, + { type: 'audio' }, + { type: 'image' }, + { type: 'audio' }, ], } expect(Gallery.computed.rows.call(local)).to.eql([ { items: [ - { mimetype: 'image/jpg' }, - { mimetype: 'image/png' }, - { mimetype: 'image/jpg' }, + { type: 'image' }, + { type: 'image' }, + { type: 'image' }, ], }, - { items: [{ mimetype: 'image/jpg' }] }, - { audio: true, items: [{ mimetype: 'audio/mpeg' }] }, - { items: [{ mimetype: 'image/png' }] }, - { audio: true, items: [{ mimetype: 'audio/mpeg' }] }, + { items: [{ type: 'image' }] }, + { audio: true, items: [{ type: 'audio' }] }, + { items: [{ type: 'image' }] }, + { audio: true, items: [{ type: 'audio' }] }, ]) local = { attachments: [ - { mimetype: 'image/jpg' }, - { mimetype: 'image/png' }, - { mimetype: 'image/jpg' }, - { mimetype: 'image/jpg' }, - { mimetype: 'image/png' }, - { mimetype: 'image/png' }, - { mimetype: 'image/jpg' }, + { type: 'image' }, + { type: 'image' }, + { type: 'image' }, + { type: 'image' }, + { type: 'image' }, + { type: 'image' }, + { type: 'image' }, ], } // Group by three-per-row, unless there's one dangling, then stick it on the end of the last row - // https://git.pleroma.social/pleroma/pleroma-fe/-/merge_requests/1785#note_98514 + // https:/.pleroma.social-fe/-_requests#note_98514 expect(Gallery.computed.rows.call(local)).to.eql([ { items: [ - { mimetype: 'image/jpg' }, - { mimetype: 'image/png' }, - { mimetype: 'image/jpg' }, + { type: 'image' }, + { type: 'image' }, + { type: 'image' }, ], }, { items: [ - { mimetype: 'image/jpg' }, - { mimetype: 'image/png' }, - { mimetype: 'image/png' }, - { mimetype: 'image/jpg' }, + { type: 'image' }, + { type: 'image' }, + { type: 'image' }, + { type: 'image' }, ], }, ]) local = { attachments: [ - { mimetype: 'image/jpg' }, - { mimetype: 'image/png' }, - { mimetype: 'image/jpg' }, - { mimetype: 'image/jpg' }, - { mimetype: 'image/png' }, - { mimetype: 'image/png' }, - { mimetype: 'image/jpg' }, - { mimetype: 'image/png' }, + { type: 'image' }, + { type: 'image' }, + { type: 'image' }, + { type: 'image' }, + { type: 'image' }, + { type: 'image' }, + { type: 'image' }, + { type: 'image' }, ], } expect(Gallery.computed.rows.call(local)).to.eql([ { items: [ - { mimetype: 'image/jpg' }, - { mimetype: 'image/png' }, - { mimetype: 'image/jpg' }, + { type: 'image' }, + { type: 'image' }, + { type: 'image' }, ], }, { items: [ - { mimetype: 'image/jpg' }, - { mimetype: 'image/png' }, - { mimetype: 'image/png' }, + { type: 'image' }, + { type: 'image' }, + { type: 'image' }, ], }, - { items: [{ mimetype: 'image/jpg' }, { mimetype: 'image/png' }] }, + { items: [{ type: 'image' }, { type: 'image' }] }, ]) }) it('does not do grouping when grid is set', () => { const attachments = [ - { mimetype: 'audio/mpeg' }, - { mimetype: 'image/png' }, - { mimetype: 'audio/mpeg' }, - { mimetype: 'image/jpg' }, - { mimetype: 'image/png' }, - { mimetype: 'image/jpg' }, - { mimetype: 'image/jpg' }, + { type: 'audio' }, + { type: 'image' }, + { type: 'audio' }, + { type: 'image' }, + { type: 'image' }, + { type: 'image' }, + { type: 'image' }, ] local = { grid: true, attachments } @@ -270,34 +270,34 @@ describe('Gallery', () => { it('limit is set', () => { const attachments = [ - { mimetype: 'audio/mpeg' }, - { mimetype: 'image/png' }, - { mimetype: 'image/jpg' }, - { mimetype: 'audio/mpeg' }, - { mimetype: 'image/jpg' }, + { type: 'audio' }, + { type: 'image' }, + { type: 'image' }, + { type: 'audio' }, + { type: 'image' }, ] let local local = { attachments, limit: 2 } expect(Gallery.computed.rows.call(local)).to.eql([ - { audio: true, items: [{ mimetype: 'audio/mpeg' }] }, - { items: [{ mimetype: 'image/png' }] }, + { audio: true, items: [{ type: 'audio' }] }, + { items: [{ type: 'image' }] }, ]) local = { attachments, limit: 3 } expect(Gallery.computed.rows.call(local)).to.eql([ - { audio: true, items: [{ mimetype: 'audio/mpeg' }] }, - { items: [{ mimetype: 'image/png' }, { mimetype: 'image/jpg' }] }, + { audio: true, items: [{ type: 'audio' }] }, + { items: [{ type: 'image' }, { type: 'image' }] }, ]) local = { attachments, limit: 4 } expect(Gallery.computed.rows.call(local)).to.eql([ - { audio: true, items: [{ mimetype: 'audio/mpeg' }] }, - { items: [{ mimetype: 'image/png' }, { mimetype: 'image/jpg' }] }, - { audio: true, items: [{ mimetype: 'audio/mpeg' }] }, + { audio: true, items: [{ type: 'audio' }] }, + { items: [{ type: 'image' }, { type: 'image' }] }, + { audio: true, items: [{ type: 'audio' }] }, ]) }) })