diff --git a/app/actions/remote/channel_bookmark.test.ts b/app/actions/remote/channel_bookmark.test.ts index 947047848..af3d87a66 100644 --- a/app/actions/remote/channel_bookmark.test.ts +++ b/app/actions/remote/channel_bookmark.test.ts @@ -1,6 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. +import {SYSTEM_IDENTIFIERS} from '@constants/database'; import DatabaseManager from '@database/manager'; import NetworkManager from '@managers/network_manager'; @@ -54,6 +55,7 @@ describe('channel bookmarks', () => { configsToDelete: [], prepareRecordsOnly: false, }); + await operator.handleSystem({systems: [{id: SYSTEM_IDENTIFIERS.LICENSE, value: {IsLicensed: 'true'}}], prepareRecordsOnly: false}); bookmarkSpy = jest.spyOn(operator, 'handleChannelBookmark'); }); @@ -155,4 +157,13 @@ describe('channel bookmarks', () => { expect(result).toBeDefined(); expect(result.bookmarks).toBeDefined(); }); + + it('should not fetch bookmarks if license is not licensed', async () => { + await operator.handleSystem({systems: [{id: SYSTEM_IDENTIFIERS.LICENSE, value: {IsLicensed: 'false'}}], prepareRecordsOnly: false}); + const result = await fetchChannelBookmarks(serverUrl, channelId); + expect(result).toBeDefined(); + expect(result.bookmarks).toBeDefined(); + expect(result.bookmarks?.length).toBe(0); + expect(mockClient.getChannelBookmarksForChannel).not.toHaveBeenCalled(); + }); }); diff --git a/app/actions/remote/channel_bookmark.ts b/app/actions/remote/channel_bookmark.ts index b644aa464..41601ca10 100644 --- a/app/actions/remote/channel_bookmark.ts +++ b/app/actions/remote/channel_bookmark.ts @@ -5,7 +5,7 @@ import DatabaseManager from '@database/manager'; import NetworkManager from '@managers/network_manager'; import websocketManager from '@managers/websocket_manager'; import {getBookmarksSince, getChannelBookmarkById} from '@queries/servers/channel_bookmark'; -import {getConfigValue} from '@queries/servers/system'; +import {getConfigValue, getLicense} from '@queries/servers/system'; import {getFullErrorMessage} from '@utils/errors'; import {logError} from '@utils/log'; @@ -17,7 +17,9 @@ export async function fetchChannelBookmarks(serverUrl: string, channelId: string const {database, operator} = DatabaseManager.getServerDatabaseAndOperator(serverUrl); const bookmarksEnabled = (await getConfigValue(database, 'FeatureFlagChannelBookmarks')) === 'true'; - if (!bookmarksEnabled) { + const isLicensed = (await getLicense(database))?.IsLicensed === 'true'; + + if (!bookmarksEnabled || !isLicensed) { return {bookmarks: []}; }