diff --git a/webapp/channels/src/components/root/root.test.tsx b/webapp/channels/src/components/root/root.test.tsx index 9024726413..0ce71ab3f9 100644 --- a/webapp/channels/src/components/root/root.test.tsx +++ b/webapp/channels/src/components/root/root.test.tsx @@ -403,4 +403,17 @@ describe('doesRouteBelongToTeamControllerRoutes', () => { expect(doesRouteBelongToTeamControllerRoutes('/login')).toBe(false); expect(doesRouteBelongToTeamControllerRoutes('/error')).toBe(false); }); + + test('should return false for admin_console routes', () => { + expect(doesRouteBelongToTeamControllerRoutes('/admin_console/about')).toBe(false); + expect(doesRouteBelongToTeamControllerRoutes('/admin_console/reporting')).toBe(false); + expect(doesRouteBelongToTeamControllerRoutes('/admin_console/user_management')).toBe(false); + expect(doesRouteBelongToTeamControllerRoutes('/admin_console/environment')).toBe(false); + expect(doesRouteBelongToTeamControllerRoutes('/admin_console/site_config')).toBe(false); + expect(doesRouteBelongToTeamControllerRoutes('/admin_console/plugins/')).toBe(false); + expect(doesRouteBelongToTeamControllerRoutes('/admin_console/integrations/')).toBe(false); + expect(doesRouteBelongToTeamControllerRoutes('/admin_console/integrations/bot_accounts')).toBe(false); + expect(doesRouteBelongToTeamControllerRoutes('/admin_console/compliance')).toBe(false); + expect(doesRouteBelongToTeamControllerRoutes('/admin_console/experimental')).toBe(false); + }); }); diff --git a/webapp/channels/src/components/root/root.tsx b/webapp/channels/src/components/root/root.tsx index e13e8f709d..804fff735c 100644 --- a/webapp/channels/src/components/root/root.tsx +++ b/webapp/channels/src/components/root/root.tsx @@ -571,6 +571,9 @@ export default class Root extends React.PureComponent { } export function doesRouteBelongToTeamControllerRoutes(pathname: RouteComponentProps['location']['pathname']): boolean { - const TEAM_CONTROLLER_PATH_PATTERN = /^\/([a-z0-9\-_]+)\/(channels|messages|threads|drafts|integrations|emoji)(\/.*)?$/; + // Note: we have specifically added admin_console to the negative lookahead as admin_console can have integrations as subpaths (admin_console/integrations/bot_accounts) + // and we don't want to treat those as team controller routes. + const TEAM_CONTROLLER_PATH_PATTERN = /^\/(?!admin_console)([a-z0-9\-_]+)\/(channels|messages|threads|drafts|integrations|emoji)(\/.*)?$/; + return TEAM_CONTROLLER_PATH_PATTERN.test(pathname); }