feat: enable ms teams channel for all users (#7144)

* feat: enable ms teams channel for all users

* fix: update copy in test files
This commit is contained in:
Yunus M 2025-02-20 16:12:49 +05:30 committed by GitHub
parent 639b9a5a8a
commit 858944d273
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 12 additions and 62 deletions

View File

@ -1,31 +0,0 @@
import { Alert, Space } from 'antd';
import { SIGNOZ_UPGRADE_PLAN_URL } from 'constants/app';
type UpgradePromptProps = {
title?: string;
};
function UpgradePrompt({ title }: UpgradePromptProps): JSX.Element {
return (
<Space direction="vertical" style={{ width: '100%' }}>
<Alert
message={title}
description={
<div>
This feature is available for paid plans only.{' '}
<a href={SIGNOZ_UPGRADE_PLAN_URL} target="_blank" rel="noreferrer">
Click here
</a>{' '}
to Upgrade
</div>
}
type="warning"
/>{' '}
</Space>
);
}
UpgradePrompt.defaultProps = {
title: 'Upgrade to a Paid Plan',
};
export default UpgradePrompt;

View File

@ -378,9 +378,7 @@ describe('Create Alert Channel', () => {
}); });
it('Should check if the selected item in the type dropdown has text "msteams"', () => { it('Should check if the selected item in the type dropdown has text "msteams"', () => {
expect( expect(screen.getByText('Microsoft Teams')).toBeInTheDocument();
screen.getByText('Microsoft Teams (Supported in Paid Plans Only)'),
).toBeInTheDocument();
}); });
it('Should check if Webhook URL label and input are displayed properly ', () => { it('Should check if Webhook URL label and input are displayed properly ', () => {

View File

@ -308,10 +308,8 @@ describe('Create Alert Channel (Normal User)', () => {
render(<CreateAlertChannels preType={ChannelType.MsTeams} />); render(<CreateAlertChannels preType={ChannelType.MsTeams} />);
}); });
it('Should check if the selected item in the type dropdown has text "Microsoft Teams (Supported in Paid Plans Only)"', () => { it('Should check if the selected item in the type dropdown has text "Microsoft Teams"', () => {
expect( expect(screen.getByText('Microsoft Teams')).toBeInTheDocument();
screen.getByText('Microsoft Teams (Supported in Paid Plans Only)'),
).toBeInTheDocument();
}); });
// TODO[vikrantgupta25]: check with Shaheer // TODO[vikrantgupta25]: check with Shaheer

View File

@ -1,6 +1,5 @@
import { Form, FormInstance, Input, Select, Switch, Typography } from 'antd'; import { Form, FormInstance, Input, Select, Switch, Typography } from 'antd';
import { Store } from 'antd/lib/form/interface'; import { Store } from 'antd/lib/form/interface';
import UpgradePrompt from 'components/Upgrade/UpgradePrompt';
import { FeatureKeys } from 'constants/features'; import { FeatureKeys } from 'constants/features';
import ROUTES from 'constants/routes'; import ROUTES from 'constants/routes';
import { import {
@ -15,6 +14,7 @@ import history from 'lib/history';
import { useAppContext } from 'providers/App/App'; import { useAppContext } from 'providers/App/App';
import { Dispatch, ReactElement, SetStateAction } from 'react'; import { Dispatch, ReactElement, SetStateAction } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { FeatureFlagProps } from 'types/api/features/getFeaturesFlags';
import { isFeatureKeys } from 'utils/app'; import { isFeatureKeys } from 'utils/app';
import EmailSettings from './Settings/Email'; import EmailSettings from './Settings/Email';
@ -40,32 +40,18 @@ function FormAlertChannels({
}: FormAlertChannelsProps): JSX.Element { }: FormAlertChannelsProps): JSX.Element {
const { t } = useTranslation('channels'); const { t } = useTranslation('channels');
const { featureFlags } = useAppContext(); const { featureFlags } = useAppContext();
const isUserOnEEPlan =
featureFlags?.find((flag) => flag.name === FeatureKeys.ENTERPRISE_PLAN)
?.active || false;
const feature = `ALERT_CHANNEL_${type.toUpperCase()}`; const feature = `ALERT_CHANNEL_${type.toUpperCase()}`;
const featureKey = isFeatureKeys(feature) const featureKey = isFeatureKeys(feature)
? feature ? feature
: FeatureKeys.ALERT_CHANNEL_SLACK; : FeatureKeys.ALERT_CHANNEL_SLACK;
const hasFeature = featureFlags?.find((flag) => flag.name === featureKey);
const isOssFeature = featureFlags?.find( const hasFeature = featureFlags?.find(
(flag) => flag.name === FeatureKeys.OSS, (flag: FeatureFlagProps) => flag.name === featureKey,
); );
const renderSettings = (): ReactElement | null => { const renderSettings = (): ReactElement | null => {
if (
// for ee plan
!isOssFeature?.active &&
(!hasFeature || !hasFeature.active) &&
type === 'msteams'
) {
// channel type is not available for users plan
return <UpgradePrompt />;
}
switch (type) { switch (type) {
case ChannelType.Slack: case ChannelType.Slack:
return <SlackSettings setSelectedConfig={setSelectedConfig} />; return <SlackSettings setSelectedConfig={setSelectedConfig} />;
@ -149,13 +135,10 @@ function FormAlertChannels({
<Select.Option value="email" key="email" data-testid="select-option"> <Select.Option value="email" key="email" data-testid="select-option">
Email Email
</Select.Option> </Select.Option>
{!isOssFeature?.active && (
<Select.Option value="msteams" key="msteams" data-testid="select-option"> <Select.Option value="msteams" key="msteams" data-testid="select-option">
<div> Microsoft Teams
Microsoft Teams {!isUserOnEEPlan && '(Supported in Paid Plans Only)'}{' '} </Select.Option>
</div>
</Select.Option>
)}
</Select> </Select>
</Form.Item> </Form.Item>

View File

@ -222,6 +222,8 @@ export const routesToSkip = [
ROUTES.METRICS_EXPLORER, ROUTES.METRICS_EXPLORER,
ROUTES.METRICS_EXPLORER_EXPLORER, ROUTES.METRICS_EXPLORER_EXPLORER,
ROUTES.METRICS_EXPLORER_VIEWS, ROUTES.METRICS_EXPLORER_VIEWS,
ROUTES.CHANNELS_NEW,
ROUTES.CHANNELS_EDIT,
]; ];
export const routesToDisable = [ROUTES.LOGS_EXPLORER, ROUTES.LIVE_LOGS]; export const routesToDisable = [ROUTES.LOGS_EXPLORER, ROUTES.LIVE_LOGS];