diff --git a/src/pages/AccountSettings/AccountSettings.test.jsx b/src/pages/AccountSettings/AccountSettings.test.jsx index 1858954dd3..d733427506 100644 --- a/src/pages/AccountSettings/AccountSettings.test.jsx +++ b/src/pages/AccountSettings/AccountSettings.test.jsx @@ -163,6 +163,9 @@ describe('AccountSettings', () => { value: planValue, isEnterprisePlan: planValue === Plans.USERS_ENTERPRISEM, isFreePlan: planValue === Plans.USERS_BASIC, + isTeamPlan: + planValue === Plans.USERS_TEAMM || + planValue === Plans.USERS_TEAMY, }, }, }, diff --git a/src/pages/AccountSettings/AccountSettingsSideMenu.test.jsx b/src/pages/AccountSettings/AccountSettingsSideMenu.test.jsx index aeffe58be3..88ad5145ae 100644 --- a/src/pages/AccountSettings/AccountSettingsSideMenu.test.jsx +++ b/src/pages/AccountSettings/AccountSettingsSideMenu.test.jsx @@ -151,6 +151,9 @@ describe('AccountSettingsSideMenu', () => { value: planValue, isEnterprisePlan: planValue === Plans.USERS_ENTERPRISEM, isFreePlan: planValue === Plans.USERS_BASIC, + isTeamPlan: + planValue === Plans.USERS_TEAMM || + planValue === Plans.USERS_TEAMY, }, }, }, diff --git a/src/pages/DefaultOrgSelector/DefaultOrgSelector.test.jsx b/src/pages/DefaultOrgSelector/DefaultOrgSelector.test.jsx index c95fa451f1..abeb710b19 100644 --- a/src/pages/DefaultOrgSelector/DefaultOrgSelector.test.jsx +++ b/src/pages/DefaultOrgSelector/DefaultOrgSelector.test.jsx @@ -214,6 +214,8 @@ describe('DefaultOrgSelector', () => { ...mockTrialData, isEnterprisePlan: false, isFreePlan: false, + isTeamPlan: + value === Plans.USERS_TEAMM || value === Plans.USERS_TEAMY, trialStatus, value, }, diff --git a/src/pages/MembersPage/MembersActivation/Activation/Activation.test.jsx b/src/pages/MembersPage/MembersActivation/Activation/Activation.test.jsx index 5203ce935b..c53395518f 100644 --- a/src/pages/MembersPage/MembersActivation/Activation/Activation.test.jsx +++ b/src/pages/MembersPage/MembersActivation/Activation/Activation.test.jsx @@ -28,6 +28,7 @@ const mockedAccountDetails = { const mockPlanData = { isEnterprisePlan: false, isFreePlan: true, + isTeamPlan: false, baseUnitPrice: 10, benefits: [], billingRate: BillingRate.MONTHLY, diff --git a/src/pages/MembersPage/MembersActivation/MembersActivation.test.jsx b/src/pages/MembersPage/MembersActivation/MembersActivation.test.jsx index 2c9a847acd..acb655ac59 100644 --- a/src/pages/MembersPage/MembersActivation/MembersActivation.test.jsx +++ b/src/pages/MembersPage/MembersActivation/MembersActivation.test.jsx @@ -42,6 +42,7 @@ const mockPlanData = { hasSeatsLeft: true, isEnterprisePlan: false, isFreePlan: false, + isTeamPlan: false, } const server = setupServer() diff --git a/src/pages/MembersPage/MembersList/MembersList.test.jsx b/src/pages/MembersPage/MembersList/MembersList.test.jsx index edc6884330..424bb450ae 100644 --- a/src/pages/MembersPage/MembersList/MembersList.test.jsx +++ b/src/pages/MembersPage/MembersList/MembersList.test.jsx @@ -130,6 +130,9 @@ describe('MembersList', () => { ...mockPlanData, value: planName, isFreePlan: planName === Plans.USERS_BASIC, + isTeamPlan: + planName === Plans.USERS_TEAMM || + planName === Plans.USERS_TEAMY, planUserCount, hasSeatsLeft, }, diff --git a/src/pages/MembersPage/MembersList/MembersTable/MembersTable.test.jsx b/src/pages/MembersPage/MembersList/MembersTable/MembersTable.test.jsx index c7d8a6e0b9..70a97334ae 100644 --- a/src/pages/MembersPage/MembersList/MembersTable/MembersTable.test.jsx +++ b/src/pages/MembersPage/MembersList/MembersTable/MembersTable.test.jsx @@ -158,6 +158,9 @@ describe('MembersTable', () => { ...mockPlanData, value: planName, isFreePlan: planName === Plans.USERS_BASIC, + isTeamPlan: + planName === Plans.USERS_TEAMM || + planName === Plans.USERS_TEAMY, planUserCount, hasSeatsLeft, }, diff --git a/src/pages/OwnerPage/HeaderBanners/ExceededUploadsAlert/ExceededUploadsAlert.test.jsx b/src/pages/OwnerPage/HeaderBanners/ExceededUploadsAlert/ExceededUploadsAlert.test.jsx index 7d53730b28..ae2732aa35 100644 --- a/src/pages/OwnerPage/HeaderBanners/ExceededUploadsAlert/ExceededUploadsAlert.test.jsx +++ b/src/pages/OwnerPage/HeaderBanners/ExceededUploadsAlert/ExceededUploadsAlert.test.jsx @@ -39,6 +39,7 @@ const mockPlanDataResponse = { hasSeatsLeft: true, isEnterprisePlan: false, isFreePlan: false, + isTeamPlan: false, } beforeAll(() => { diff --git a/src/pages/OwnerPage/HeaderBanners/HeaderBanners.test.jsx b/src/pages/OwnerPage/HeaderBanners/HeaderBanners.test.jsx index 8fdc22a20c..245bc55d09 100644 --- a/src/pages/OwnerPage/HeaderBanners/HeaderBanners.test.jsx +++ b/src/pages/OwnerPage/HeaderBanners/HeaderBanners.test.jsx @@ -42,6 +42,7 @@ const mockPlanDataResponse = { hasSeatsLeft: true, isEnterprisePlan: false, isFreePlan: false, + isTeamPlan: false, } const mockPlanDataResponseNoUploadLimit = { diff --git a/src/pages/OwnerPage/HeaderBanners/ReachingUploadLimitAlert/ReachingUploadLimitAlert.test.jsx b/src/pages/OwnerPage/HeaderBanners/ReachingUploadLimitAlert/ReachingUploadLimitAlert.test.jsx index caddbee050..cf912dd142 100644 --- a/src/pages/OwnerPage/HeaderBanners/ReachingUploadLimitAlert/ReachingUploadLimitAlert.test.jsx +++ b/src/pages/OwnerPage/HeaderBanners/ReachingUploadLimitAlert/ReachingUploadLimitAlert.test.jsx @@ -32,6 +32,7 @@ const mockPlanDataResponse = { value: Plans.USERS_PR_INAPPM, isEnterprisePlan: false, isFreePlan: false, + isTeamPlan: false, trialStatus: TrialStatuses.NOT_STARTED, trialStartDate: '', trialEndDate: '', diff --git a/src/pages/OwnerPage/Tabs/TrialReminder/TrialReminder.test.tsx b/src/pages/OwnerPage/Tabs/TrialReminder/TrialReminder.test.tsx index 96586cbfa8..0c2c119bbe 100644 --- a/src/pages/OwnerPage/Tabs/TrialReminder/TrialReminder.test.tsx +++ b/src/pages/OwnerPage/Tabs/TrialReminder/TrialReminder.test.tsx @@ -103,6 +103,9 @@ describe('TrialReminder', () => { trialEndDate, value: planValue, isFreePlan: planValue === Plans.USERS_BASIC, + isTeamPlan: + planValue === Plans.USERS_TEAMM || + planValue === Plans.USERS_TEAMY, }, }, }, diff --git a/src/pages/PlanPage/subRoutes/CancelPlanPage/CancelPlanPage.test.tsx b/src/pages/PlanPage/subRoutes/CancelPlanPage/CancelPlanPage.test.tsx index 0c6f8df263..47d0479f22 100644 --- a/src/pages/PlanPage/subRoutes/CancelPlanPage/CancelPlanPage.test.tsx +++ b/src/pages/PlanPage/subRoutes/CancelPlanPage/CancelPlanPage.test.tsx @@ -80,6 +80,7 @@ const mockPlanData = { hasSeatsLeft: true, isEnterprisePlan: false, isFreePlan: false, + isTeamPlan: false, } const queryClient = new QueryClient({ @@ -158,6 +159,9 @@ describe('CancelPlanPage', () => { value: planValue, isEnterprisePlan: planValue === Plans.USERS_ENTERPRISEM, isFreePlan: planValue === Plans.USERS_BASIC, + isTeamPlan: + planValue === Plans.USERS_TEAMM || + planValue === Plans.USERS_TEAMY, }, }, }, diff --git a/src/pages/PlanPage/subRoutes/CurrentOrgPlan/CurrentOrgPlan.test.tsx b/src/pages/PlanPage/subRoutes/CurrentOrgPlan/CurrentOrgPlan.test.tsx index d89316b4c5..9ef8a15bc2 100644 --- a/src/pages/PlanPage/subRoutes/CurrentOrgPlan/CurrentOrgPlan.test.tsx +++ b/src/pages/PlanPage/subRoutes/CurrentOrgPlan/CurrentOrgPlan.test.tsx @@ -52,6 +52,7 @@ const mockPlanDataResponse = { hasSeatsLeft: true, isEnterprisePlan: false, isFreePlan: false, + isTeamPlan: false, } const mockEnterpriseAccountDetailsNinetyPercent = { diff --git a/src/pages/PlanPage/subRoutes/CurrentOrgPlan/CurrentPlanCard/CurrentPlanCard.test.tsx b/src/pages/PlanPage/subRoutes/CurrentOrgPlan/CurrentPlanCard/CurrentPlanCard.test.tsx index 47933536a5..0ff39acec2 100644 --- a/src/pages/PlanPage/subRoutes/CurrentOrgPlan/CurrentPlanCard/CurrentPlanCard.test.tsx +++ b/src/pages/PlanPage/subRoutes/CurrentOrgPlan/CurrentPlanCard/CurrentPlanCard.test.tsx @@ -26,6 +26,7 @@ const proPlanDetails = { billingRate: null, isEnterprisePlan: false, isFreePlan: false, + isTeamPlan: true, }, } @@ -42,6 +43,7 @@ const freePlanDetails = { ], isEnterprisePlan: false, isFreePlan: true, + isTeamPlan: false, }, } @@ -58,6 +60,7 @@ const enterprisePlan = { ], isEnterprisePlan: true, isFreePlan: false, + isTeamPlan: false, }, } @@ -74,6 +77,7 @@ const usesInvoiceTeamPlan = { ], isEnterprisePlan: false, isFreePlan: false, + isTeamPlan: true, }, usesInvoice: true, } @@ -88,6 +92,7 @@ const trialPlanDetails = { value: Plans.USERS_TRIAL, isEnterprisePlan: false, isFreePlan: false, + isTeamPlan: true, }, } diff --git a/src/pages/PlanPage/subRoutes/CurrentOrgPlan/CurrentPlanCard/FreePlanCard/FreePlanCard.test.jsx b/src/pages/PlanPage/subRoutes/CurrentOrgPlan/CurrentPlanCard/FreePlanCard/FreePlanCard.test.jsx index 74e1969570..b4eb54c43f 100644 --- a/src/pages/PlanPage/subRoutes/CurrentOrgPlan/CurrentPlanCard/FreePlanCard/FreePlanCard.test.jsx +++ b/src/pages/PlanPage/subRoutes/CurrentOrgPlan/CurrentPlanCard/FreePlanCard/FreePlanCard.test.jsx @@ -127,6 +127,7 @@ const freePlan = { monthlyUploadLimit: null, isFreePlan: true, isEnterprisePlan: false, + isTeamPlan: false, } const scheduledPhase = { @@ -224,6 +225,9 @@ describe('FreePlanCard', () => { value: planValue, planUserCount, isFreePlan: planValue === Plans.USERS_BASIC, + isTeamPlan: + planValue === Plans.USERS_TEAMM || + planValue === Plans.USERS_TEAMY, }, pretrialPlan: mockPreTrialPlanInfo, }, diff --git a/src/pages/PlanPage/subRoutes/CurrentOrgPlan/CurrentPlanCard/FreePlanCard/PlanUpgradeTeam/PlanUpgradeTeam.test.jsx b/src/pages/PlanPage/subRoutes/CurrentOrgPlan/CurrentPlanCard/FreePlanCard/PlanUpgradeTeam/PlanUpgradeTeam.test.jsx index 8b97f07e3a..adbd6f1ae7 100644 --- a/src/pages/PlanPage/subRoutes/CurrentOrgPlan/CurrentPlanCard/FreePlanCard/PlanUpgradeTeam/PlanUpgradeTeam.test.jsx +++ b/src/pages/PlanPage/subRoutes/CurrentOrgPlan/CurrentPlanCard/FreePlanCard/PlanUpgradeTeam/PlanUpgradeTeam.test.jsx @@ -15,6 +15,7 @@ vi.mock('shared/plan/BenefitList', () => ({ default: () => 'BenefitsList' })) const mockPlanBasic = { isEnterprisePlan: false, isFreePlan: true, + isTeamPlan: false, baseUnitPrice: 0, benefits: ['Up to # user', 'Unlimited public repositories'], billingRate: BillingRate.MONTHLY, @@ -33,6 +34,7 @@ const mockPlanBasic = { const mockPlanPro = { isEnterprisePlan: false, isFreePlan: false, + isTeamPlan: false, baseUnitPrice: 10, benefits: ['Up to # user', 'Unlimited public repositories'], billingRate: BillingRate.MONTHLY, @@ -51,6 +53,7 @@ const mockPlanPro = { const mockPlanTrialing = { isEnterprisePlan: false, isFreePlan: false, + isTeamPlan: false, baseUnitPrice: 10, benefits: ['Up to # user', 'Unlimited public repositories'], billingRate: BillingRate.MONTHLY, diff --git a/src/pages/PlanPage/subRoutes/CurrentOrgPlan/CurrentPlanCard/FreePlanCard/ProPlanSubheading/ProPlanSubheading.test.tsx b/src/pages/PlanPage/subRoutes/CurrentOrgPlan/CurrentPlanCard/FreePlanCard/ProPlanSubheading/ProPlanSubheading.test.tsx index a72f193d07..4185bc53fa 100644 --- a/src/pages/PlanPage/subRoutes/CurrentOrgPlan/CurrentPlanCard/FreePlanCard/ProPlanSubheading/ProPlanSubheading.test.tsx +++ b/src/pages/PlanPage/subRoutes/CurrentOrgPlan/CurrentPlanCard/FreePlanCard/ProPlanSubheading/ProPlanSubheading.test.tsx @@ -25,6 +25,7 @@ const mockResponse = { hasSeatsLeft: true, isEnterprisePlan: false, isFreePlan: true, + isTeamPlan: false, } const server = setupServer() diff --git a/src/pages/PlanPage/subRoutes/CurrentOrgPlan/CurrentPlanCard/PaidPlanCard/PaidPlanCard.test.tsx b/src/pages/PlanPage/subRoutes/CurrentOrgPlan/CurrentPlanCard/PaidPlanCard/PaidPlanCard.test.tsx index 264de4aca5..27b39f8b96 100644 --- a/src/pages/PlanPage/subRoutes/CurrentOrgPlan/CurrentPlanCard/PaidPlanCard/PaidPlanCard.test.tsx +++ b/src/pages/PlanPage/subRoutes/CurrentOrgPlan/CurrentPlanCard/PaidPlanCard/PaidPlanCard.test.tsx @@ -30,6 +30,7 @@ vi.mock('shared/plan/ScheduledPlanDetails', () => ({ const mockProPlan = { isEnterprisePlan: false, isFreePlan: false, + isTeamPlan: false, marketingName: 'Pro', value: Plans.USERS_PR_INAPPM, billingRate: BillingRate.MONTHLY, @@ -48,6 +49,7 @@ const mockProPlan = { const mockTeamPlan = { isEnterprisePlan: false, isFreePlan: false, + isTeamPlan: true, marketingName: 'Team', value: Plans.USERS_TEAMM, billingRate: BillingRate.MONTHLY, diff --git a/src/pages/PlanPage/subRoutes/CurrentOrgPlan/CurrentPlanCard/PaidPlanCard/PaidPlanCard.tsx b/src/pages/PlanPage/subRoutes/CurrentOrgPlan/CurrentPlanCard/PaidPlanCard/PaidPlanCard.tsx index 608296ef86..464d7506e9 100644 --- a/src/pages/PlanPage/subRoutes/CurrentOrgPlan/CurrentPlanCard/PaidPlanCard/PaidPlanCard.tsx +++ b/src/pages/PlanPage/subRoutes/CurrentOrgPlan/CurrentPlanCard/PaidPlanCard/PaidPlanCard.tsx @@ -6,7 +6,6 @@ import { PlanPageDataQueryOpts } from 'pages/PlanPage/queries/PlanPageDataQueryO import { useAccountDetails, usePlanData } from 'services/account' import BenefitList from 'shared/plan/BenefitList' import ScheduledPlanDetails from 'shared/plan/ScheduledPlanDetails' -import { isTeamPlan } from 'shared/utils/billing' import ActionsBilling from '../shared/ActionsBilling/ActionsBilling' import PlanPricing from '../shared/PlanPricing' @@ -75,7 +74,7 @@ function PaidPlanCard() { ) : null} - {isNumber(numberOfUploads) && isTeamPlan(plan?.value) ? ( + {isNumber(numberOfUploads) && plan?.isTeamPlan ? (

Private repo uploads

diff --git a/src/pages/PlanPage/subRoutes/CurrentOrgPlan/CurrentPlanCard/shared/ActionsBilling/ActionsBilling.test.jsx b/src/pages/PlanPage/subRoutes/CurrentOrgPlan/CurrentPlanCard/shared/ActionsBilling/ActionsBilling.test.jsx index b2dc04935a..74e6e6ac2f 100644 --- a/src/pages/PlanPage/subRoutes/CurrentOrgPlan/CurrentPlanCard/shared/ActionsBilling/ActionsBilling.test.jsx +++ b/src/pages/PlanPage/subRoutes/CurrentOrgPlan/CurrentPlanCard/shared/ActionsBilling/ActionsBilling.test.jsx @@ -229,6 +229,9 @@ describe('Actions Billing', () => { ...trialPlanData.plan, value: accountDetails.plan.value, isFreePlan: accountDetails.plan.value === Plans.USERS_BASIC, + isTeamPlan: + accountDetails.plan.value === Plans.USERS_TEAMM || + accountDetails.plan.value === Plans.USERS_TEAMY, }, hasPrivateRepos, }, diff --git a/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeDetails/ProPlanDetails/ProPlanDetails.test.jsx b/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeDetails/ProPlanDetails/ProPlanDetails.test.jsx index 229533ca82..90203d39d8 100644 --- a/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeDetails/ProPlanDetails/ProPlanDetails.test.jsx +++ b/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeDetails/ProPlanDetails/ProPlanDetails.test.jsx @@ -187,6 +187,7 @@ describe('ProPlanDetails', () => { plan: { ...mockPlanData, isFreePlan: !isProPlan && !isSentryPlan, + isTeamPlan: false, trialStatus: isOngoingTrial ? TrialStatuses.ONGOING : TrialStatuses.CANNOT_TRIAL, diff --git a/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeDetails/SentryPlanDetails/SentryPlanDetails.test.jsx b/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeDetails/SentryPlanDetails/SentryPlanDetails.test.jsx index f9ac5c13af..a4d9d77d15 100644 --- a/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeDetails/SentryPlanDetails/SentryPlanDetails.test.jsx +++ b/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeDetails/SentryPlanDetails/SentryPlanDetails.test.jsx @@ -180,6 +180,7 @@ describe('SentryPlanDetails', () => { plan: { ...mockPlanData, isFreePlan: !isProPlan, + isTeamPlan: false, trialStatus: isOngoingTrial ? TrialStatuses.ONGOING : TrialStatuses.CANNOT_TRIAL, diff --git a/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeDetails/TeamPlanDetails/TeamPlanDetails.test.jsx b/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeDetails/TeamPlanDetails/TeamPlanDetails.test.jsx index ba6c2b382b..99ff51afc6 100644 --- a/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeDetails/TeamPlanDetails/TeamPlanDetails.test.jsx +++ b/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeDetails/TeamPlanDetails/TeamPlanDetails.test.jsx @@ -93,6 +93,7 @@ const mockPlanData = { hasSeatsLeft: true, isEnterprisePlan: false, isFreePlan: false, + isTeamPlan: false, } const server = setupServer() diff --git a/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeDetails/UpgradeDetails.tsx b/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeDetails/UpgradeDetails.tsx index 38ad1ab217..eb762823f5 100644 --- a/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeDetails/UpgradeDetails.tsx +++ b/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeDetails/UpgradeDetails.tsx @@ -1,5 +1,5 @@ import { IndividualPlan } from 'services/account' -import { isSentryPlan, isTeamPlan } from 'shared/utils/billing' +import { isSentryPlan, Plans } from 'shared/utils/billing' import ProPlanDetails from './ProPlanDetails' import SentryPlanDetails from './SentryPlanDetails' @@ -8,7 +8,10 @@ import TeamPlanDetails from './TeamPlanDetails' function UpgradeDetails({ selectedPlan }: { selectedPlan: IndividualPlan }) { if (isSentryPlan(selectedPlan.value)) { return - } else if (isTeamPlan(selectedPlan.value)) { + } else if ( + selectedPlan?.value === Plans.USERS_TEAMM || + selectedPlan?.value === Plans.USERS_TEAMY + ) { return } else { return diff --git a/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeForm/Controllers/Controller.tsx b/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeForm/Controllers/Controller.tsx index 6be352a220..5153407e3c 100644 --- a/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeForm/Controllers/Controller.tsx +++ b/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeForm/Controllers/Controller.tsx @@ -1,7 +1,7 @@ import { UseFormRegister, UseFormSetValue } from 'react-hook-form' import { IndividualPlan } from 'services/account' -import { isSentryPlan, isTeamPlan } from 'shared/utils/billing' +import { isSentryPlan, Plans } from 'shared/utils/billing' import ProPlanController from './ProPlanController' import SentryPlanController from './SentryPlanController' @@ -30,7 +30,10 @@ const Controller: React.FC = ({ setFormValue, setSelectedPlan, }) => { - if (isTeamPlan(newPlan?.value)) { + if ( + newPlan?.value === Plans.USERS_TEAMM || + newPlan?.value === Plans.USERS_TEAMY + ) { return ( { planUserCount: 1, isEnterprisePlan: false, isFreePlan: false, + isTeamPlan: false, } if (planValue === Plans.USERS_BASIC) { return HttpResponse.json({ diff --git a/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeForm/Controllers/TeamPlanController/TeamPlanController.test.tsx b/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeForm/Controllers/TeamPlanController/TeamPlanController.test.tsx index 60c90674ae..3bf310d89e 100644 --- a/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeForm/Controllers/TeamPlanController/TeamPlanController.test.tsx +++ b/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeForm/Controllers/TeamPlanController/TeamPlanController.test.tsx @@ -115,6 +115,7 @@ const mockPlanDataResponseMonthly = { hasSeatsLeft: true, isEnterprisePlan: false, isFreePlan: false, + isTeamPlan: false, } const mockPlanDataResponseYearly = { @@ -133,6 +134,7 @@ const mockPlanDataResponseYearly = { hasSeatsLeft: true, isEnterprisePlan: false, isFreePlan: false, + isTeamPlan: false, } const queryClient = new QueryClient({ diff --git a/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeForm/PlanTypeOptions/PlanTypeOptions.test.tsx b/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeForm/PlanTypeOptions/PlanTypeOptions.test.tsx index 35fdb7a469..2247191841 100644 --- a/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeForm/PlanTypeOptions/PlanTypeOptions.test.tsx +++ b/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeForm/PlanTypeOptions/PlanTypeOptions.test.tsx @@ -189,6 +189,7 @@ describe('PlanTypeOptions', () => { planUserCount: 1, isEnterprisePlan: false, isFreePlan: false, + isTeamPlan: false, } if (planValue === Plans.USERS_BASIC) { return HttpResponse.json({ diff --git a/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeForm/PlanTypeOptions/PlanTypeOptions.tsx b/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeForm/PlanTypeOptions/PlanTypeOptions.tsx index 4eb4a7b8b2..20b2fd42f3 100644 --- a/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeForm/PlanTypeOptions/PlanTypeOptions.tsx +++ b/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeForm/PlanTypeOptions/PlanTypeOptions.tsx @@ -14,7 +14,7 @@ import { findProPlans, findSentryPlans, findTeamPlans, - isTeamPlan, + Plans, shouldDisplayTeamCard, } from 'shared/utils/billing' import { TEAM_PLAN_MAX_ACTIVE_USERS } from 'shared/utils/upgradeForm' @@ -55,13 +55,13 @@ const PlanTypeOptions: React.FC = ({ const yearlyProPlan = isSentryUpgrade ? sentryPlanYear : proPlanYear const monthlyProPlan = isSentryUpgrade ? sentryPlanMonth : proPlanMonth - const currentFormValue = newPlan?.value const monthlyPlan = newPlan?.billingRate === BillingRate.MONTHLY let planOption = null if ( (hasTeamPlans && planParam === TierNames.TEAM) || - isTeamPlan(currentFormValue) + newPlan?.value === Plans.USERS_TEAMM || + newPlan?.value === Plans.USERS_TEAMY ) { planOption = TierName.TEAM } else { diff --git a/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeForm/UpdateBlurb/UpdateBlurb.test.tsx b/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeForm/UpdateBlurb/UpdateBlurb.test.tsx index 944652bceb..5e83536115 100644 --- a/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeForm/UpdateBlurb/UpdateBlurb.test.tsx +++ b/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeForm/UpdateBlurb/UpdateBlurb.test.tsx @@ -16,6 +16,7 @@ const planChunk = { planUserCount: 2, isEnterprisePlan: false, isFreePlan: false, + isTeamPlan: true, hasSeatsLeft: true, } @@ -31,6 +32,7 @@ const proPlanYear = { 'Priority Support', ], monthlyUploadLimit: null, + isTeamPlan: false, } const teamPlanYear = { @@ -40,6 +42,7 @@ const teamPlanYear = { marketingName: 'Users Team', monthlyUploadLimit: 2500, value: Plans.USERS_TEAMY, + isTeamPlan: true, } const teamPlanMonth = { @@ -49,6 +52,7 @@ const teamPlanMonth = { marketingName: 'Users Team', monthlyUploadLimit: 2500, value: Plans.USERS_TEAMM, + isTeamPlan: true, } const freePlan = { @@ -58,6 +62,7 @@ const freePlan = { marketingName: 'Users Team', monthlyUploadLimit: 2500, value: Plans.USERS_BASIC, + isTeamPlan: false, } type WrapperClosure = ( @@ -256,7 +261,12 @@ describe('UpdateBlurb', () => { it('renders next billing cycle blurb', async () => { render( { const currentIsFree = currentPlan?.isFreePlan - const currentIsTeam = isTeamPlan(currentPlan?.value) - const selectedIsTeam = isTeamPlan(newPlan?.value) + const currentIsTeam = currentPlan?.isTeamPlan + const selectedIsTeam = + newPlan?.value === Plans.USERS_TEAMM || newPlan?.value === Plans.USERS_TEAMY const diffPlanType = currentIsFree || currentIsTeam !== selectedIsTeam const currentIsAnnual = currentPlan?.billingRate === BillingRate.ANNUALLY diff --git a/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeForm/UpdateButton/UpdateButton.test.tsx b/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeForm/UpdateButton/UpdateButton.test.tsx index 6ab9260d44..8d5e4954fa 100644 --- a/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeForm/UpdateButton/UpdateButton.test.tsx +++ b/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeForm/UpdateButton/UpdateButton.test.tsx @@ -90,6 +90,7 @@ const mockPlanBasic = { hasSeatsLeft: true, planUserCount: 1, isFreePlan: true, + isTeamPlan: false, } const mockPlanProMonthly = { @@ -102,6 +103,7 @@ const mockPlanProMonthly = { hasSeatsLeft: true, planUserCount: 4, isFreePlan: false, + isTeamPlan: false, } const mockPlanTeamMonthly = { @@ -114,6 +116,7 @@ const mockPlanTeamMonthly = { hasSeatsLeft: true, planUserCount: 3, isFreePlan: false, + isTeamPlan: true, } interface SetupArgs { diff --git a/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeForm/UpgradeForm.test.tsx b/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeForm/UpgradeForm.test.tsx index f986776a72..4a9b1ff9e3 100644 --- a/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeForm/UpgradeForm.test.tsx +++ b/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeForm/UpgradeForm.test.tsx @@ -351,6 +351,9 @@ describe('UpgradeForm', () => { : BillingRate.ANNUALLY, isFreePlan: planValue === Plans.USERS_BASIC, isEnterprisePlan: false, + isTeamPlan: + planValue === Plans.USERS_TEAMM || + planValue === Plans.USERS_TEAMY, value: planValue, planUserCount, }, diff --git a/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeForm/UpgradeForm.tsx b/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeForm/UpgradeForm.tsx index 89cc6f6bf1..08f60b1128 100644 --- a/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeForm/UpgradeForm.tsx +++ b/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradeForm/UpgradeForm.tsx @@ -12,7 +12,7 @@ import { import { canApplySentryUpgrade, getNextBillingDate, - isTeamPlan, + Plans, } from 'shared/utils/billing' import { getDefaultValuesUpgradeForm, @@ -53,7 +53,9 @@ function UpgradeForm({ selectedPlan, setSelectedPlan }: UpgradeFormProps) { plans, }) const minSeats = - isSentryUpgrade && !isTeamPlan(selectedPlan?.value) + isSentryUpgrade && + selectedPlan?.value !== Plans.USERS_TEAMM && + selectedPlan?.value !== Plans.USERS_TEAMY ? MIN_SENTRY_SEATS : MIN_NB_SEATS_PRO @@ -79,7 +81,7 @@ function UpgradeForm({ selectedPlan, setSelectedPlan }: UpgradeFormProps) { minSeats, trialStatus, selectedPlan, - planName: planData?.plan?.value, + plan: planData?.plan, }) ), mode: 'onChange', diff --git a/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradePlanPage.jsx b/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradePlanPage.jsx index a0eb1dc3d3..bb76b3c928 100644 --- a/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradePlanPage.jsx +++ b/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradePlanPage.jsx @@ -8,7 +8,6 @@ import { findProPlans, findSentryPlans, findTeamPlans, - isTeamPlan, shouldDisplayTeamCard, } from 'shared/utils/billing' @@ -38,7 +37,7 @@ function UpgradePlanPage() { let defaultPaidYearlyPlan = null if ( (hasTeamPlans && planParam === TierNames.TEAM) || - isTeamPlan(planData?.plan?.value) + planData?.plan?.isTeamPlan ) { defaultPaidYearlyPlan = teamPlanYear } else if (isSentryUpgrade) { diff --git a/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradePlanPage.test.jsx b/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradePlanPage.test.jsx index b25413a66e..75f376c13f 100644 --- a/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradePlanPage.test.jsx +++ b/src/pages/PlanPage/subRoutes/UpgradePlanPage/UpgradePlanPage.test.jsx @@ -210,6 +210,9 @@ describe('UpgradePlanPage', () => { plan: { ...mockPlanData, isEnterprisePlan: planValue === Plans.USERS_ENTERPRISEM, + isTeamPlan: + planValue === Plans.USERS_TEAMM || + planValue === Plans.USERS_TEAMY, isFreePlan: planValue === Plans.USERS_BASIC, value: planValue, }, diff --git a/src/pages/RepoPage/ActivationAlert/ActivationAlert.test.tsx b/src/pages/RepoPage/ActivationAlert/ActivationAlert.test.tsx index 52c7a16241..29ad7c1bc7 100644 --- a/src/pages/RepoPage/ActivationAlert/ActivationAlert.test.tsx +++ b/src/pages/RepoPage/ActivationAlert/ActivationAlert.test.tsx @@ -86,6 +86,8 @@ describe('ActivationAlert', () => { value, hasSeatsLeft, isFreePlan: value === Plans.USERS_BASIC, + isTeamPlan: + value === Plans.USERS_TEAMM || value === Plans.USERS_TEAMY, }, pretrialPlan: { baseUnitPrice: 10, diff --git a/src/pages/RepoPage/CoverageOnboarding/ActivationBanner/ActivationBanner.test.tsx b/src/pages/RepoPage/CoverageOnboarding/ActivationBanner/ActivationBanner.test.tsx index 5b66fa7ba2..c9c2d81d30 100644 --- a/src/pages/RepoPage/CoverageOnboarding/ActivationBanner/ActivationBanner.test.tsx +++ b/src/pages/RepoPage/CoverageOnboarding/ActivationBanner/ActivationBanner.test.tsx @@ -88,6 +88,8 @@ describe('ActivationBanner', () => { value, hasSeatsLeft, isFreePlan: value === Plans.USERS_BASIC, + isTeamPlan: + value === Plans.USERS_TEAMM || value === Plans.USERS_TEAMY, }, pretrialPlan: { baseUnitPrice: 10, diff --git a/src/pages/RepoPage/FailedTestsTab/FailedTestsPage/FailedTestsTable/FailedTestsTable.test.tsx b/src/pages/RepoPage/FailedTestsTab/FailedTestsPage/FailedTestsTable/FailedTestsTable.test.tsx index a5de0da63b..c65495e60c 100644 --- a/src/pages/RepoPage/FailedTestsTab/FailedTestsPage/FailedTestsTable/FailedTestsTable.test.tsx +++ b/src/pages/RepoPage/FailedTestsTab/FailedTestsPage/FailedTestsTable/FailedTestsTable.test.tsx @@ -161,6 +161,9 @@ describe('FailedTestsTable', () => { plan: { value: planValue, isFreePlan: planValue === Plans.USERS_BASIC, + isTeamPlan: + planValue === Plans.USERS_TEAMM || + planValue === Plans.USERS_TEAMY, }, repository: { __typename: 'Repository', @@ -188,6 +191,9 @@ describe('FailedTestsTable', () => { plan: { value: planValue, isFreePlan: planValue === Plans.USERS_BASIC, + isTeamPlan: + planValue === Plans.USERS_TEAMM || + planValue === Plans.USERS_TEAMY, }, repository: { __typename: 'Repository', diff --git a/src/pages/RepoPage/FailedTestsTab/FailedTestsPage/FailedTestsTable/FailedTestsTable.tsx b/src/pages/RepoPage/FailedTestsTab/FailedTestsPage/FailedTestsTable/FailedTestsTable.tsx index 04a92b059d..f4cd9c0e51 100644 --- a/src/pages/RepoPage/FailedTestsTab/FailedTestsPage/FailedTestsTable/FailedTestsTable.tsx +++ b/src/pages/RepoPage/FailedTestsTab/FailedTestsPage/FailedTestsTable/FailedTestsTable.tsx @@ -15,7 +15,6 @@ import { useInView } from 'react-intersection-observer' import { useLocation, useParams } from 'react-router-dom' import { MeasurementInterval } from 'pages/RepoPage/shared/constants' -import { isTeamPlan } from 'shared/utils/billing' import { formatTimeToNow } from 'shared/utils/dates' import Icon from 'ui/Icon' import Spinner from 'ui/Spinner' @@ -229,8 +228,7 @@ const FailedTestsTable = () => { }) const isDefaultBranch = testData?.defaultBranch === branch - const isTeamOrFreePlan = - isTeamPlan(testData?.planName) || testData?.isFreePlan + const isTeamOrFreePlan = testData?.isTeamPlan || testData?.isFreePlan // Only show flake rate column when on default branch for pro / enterprise plans or public repos const hideFlakeRate = (isTeamOrFreePlan && testData?.private) || (!!branch && !isDefaultBranch) diff --git a/src/pages/RepoPage/FailedTestsTab/FailedTestsPage/MetricsSection/MetricsSection.test.tsx b/src/pages/RepoPage/FailedTestsTab/FailedTestsPage/MetricsSection/MetricsSection.test.tsx index ceadd72eb9..61f994de47 100644 --- a/src/pages/RepoPage/FailedTestsTab/FailedTestsPage/MetricsSection/MetricsSection.test.tsx +++ b/src/pages/RepoPage/FailedTestsTab/FailedTestsPage/MetricsSection/MetricsSection.test.tsx @@ -20,6 +20,8 @@ const mockAggResponse = ( plan: { value: planValue, isFreePlan: planValue === Plans.USERS_BASIC, + isTeamPlan: + planValue === Plans.USERS_TEAMM || planValue === Plans.USERS_TEAMY, }, repository: { __typename: 'Repository', diff --git a/src/pages/RepoPage/FailedTestsTab/FailedTestsPage/MetricsSection/MetricsSection.tsx b/src/pages/RepoPage/FailedTestsTab/FailedTestsPage/MetricsSection/MetricsSection.tsx index 8719423375..63fb141253 100644 --- a/src/pages/RepoPage/FailedTestsTab/FailedTestsPage/MetricsSection/MetricsSection.tsx +++ b/src/pages/RepoPage/FailedTestsTab/FailedTestsPage/MetricsSection/MetricsSection.tsx @@ -3,7 +3,6 @@ import { useLocation, useParams } from 'react-router-dom' import { MeasurementInterval } from 'pages/RepoPage/shared/constants' import { useLocationParams } from 'services/navigation' -import { isTeamPlan } from 'shared/utils/billing' import { cn } from 'shared/utils/cn' import { formatTimeFromSeconds } from 'shared/utils/dates' import Badge from 'ui/Badge' @@ -369,8 +368,7 @@ function MetricsSection() { interval: queryParams?.historicalTrend as MeasurementInterval, }) const disabledFlakeAggregates = - (isTeamPlan(testResults?.planName) || testResults?.isFreePlan) && - testResults?.private + (testResults?.isTeamPlan || testResults?.isFreePlan) && testResults?.private const { data: flakeAggregates } = useFlakeAggregates({ interval: queryParams?.historicalTrend as MeasurementInterval, opts: { diff --git a/src/pages/RepoPage/FailedTestsTab/FailedTestsPage/hooks/useInfiniteTestResults/useInfiniteTestResults.test.tsx b/src/pages/RepoPage/FailedTestsTab/FailedTestsPage/hooks/useInfiniteTestResults/useInfiniteTestResults.test.tsx index 133f074754..11110b967e 100644 --- a/src/pages/RepoPage/FailedTestsTab/FailedTestsPage/hooks/useInfiniteTestResults/useInfiniteTestResults.test.tsx +++ b/src/pages/RepoPage/FailedTestsTab/FailedTestsPage/hooks/useInfiniteTestResults/useInfiniteTestResults.test.tsx @@ -12,6 +12,7 @@ const mockTestResults = { plan: { value: Plans.USERS_ENTERPRISEM, isFreePlan: false, + isTeamPlan: false, }, repository: { __typename: 'Repository', @@ -84,6 +85,7 @@ const mockNotFoundError = { plan: { value: Plans.USERS_ENTERPRISEM, isFreePlan: false, + isTeamPlan: false, }, }, } @@ -93,6 +95,7 @@ const mockOwnerNotActivatedError = { plan: { value: Plans.USERS_ENTERPRISEM, isFreePlan: false, + isTeamPlan: false, }, repository: { __typename: 'OwnerNotActivatedError', diff --git a/src/pages/RepoPage/FailedTestsTab/FailedTestsPage/hooks/useInfiniteTestResults/useInfiniteTestResults.tsx b/src/pages/RepoPage/FailedTestsTab/FailedTestsPage/hooks/useInfiniteTestResults/useInfiniteTestResults.tsx index 296c23c64b..0d83c380c3 100644 --- a/src/pages/RepoPage/FailedTestsTab/FailedTestsPage/hooks/useInfiniteTestResults/useInfiniteTestResults.tsx +++ b/src/pages/RepoPage/FailedTestsTab/FailedTestsPage/hooks/useInfiniteTestResults/useInfiniteTestResults.tsx @@ -66,6 +66,7 @@ const GetTestResultsSchema = z.object({ .object({ value: z.nativeEnum(Plans), isFreePlan: z.boolean(), + isTeamPlan: z.boolean(), }) .nullable(), repository: z.discriminatedUnion('__typename', [ @@ -113,6 +114,7 @@ query GetTestResults( plan { value isFreePlan + isTeamPlan } repository: repository(name: $repo) { __typename @@ -188,6 +190,7 @@ interface UseTestResultsArgs { defaultBranch: string | null totalCount: number | null isFirstPullRequest: boolean | null + isTeamPlan: boolean | null }> } @@ -286,6 +289,7 @@ export const useInfiniteTestResults = ({ private: data?.owner?.repository?.private ?? null, planName: data?.owner?.plan?.value ?? null, isFreePlan: data?.owner?.plan?.isFreePlan ?? false, + isTeamPlan: data?.owner?.plan?.isTeamPlan ?? false, defaultBranch: data?.owner?.repository?.defaultBranch ?? null, isFirstPullRequest: data?.owner?.repository?.isFirstPullRequest ?? null, @@ -311,6 +315,7 @@ export const useInfiniteTestResults = ({ private: data?.pages?.[0]?.private ?? null, planName: data?.pages?.[0]?.planName ?? null, isFreePlan: data?.pages?.[0]?.isFreePlan ?? false, + isTeamPlan: data?.pages?.[0]?.isTeamPlan ?? false, defaultBranch: data?.pages?.[0]?.defaultBranch ?? null, isFirstPullRequest: data?.pages?.[0]?.isFirstPullRequest ?? null, }, diff --git a/src/pages/RepoPage/FailedTestsTab/FailedTestsPage/hooks/useTestResultsAggregates/useTestResultsAggregates.tsx b/src/pages/RepoPage/FailedTestsTab/FailedTestsPage/hooks/useTestResultsAggregates/useTestResultsAggregates.tsx index 2b739cb161..6ec97a72e4 100644 --- a/src/pages/RepoPage/FailedTestsTab/FailedTestsPage/hooks/useTestResultsAggregates/useTestResultsAggregates.tsx +++ b/src/pages/RepoPage/FailedTestsTab/FailedTestsPage/hooks/useTestResultsAggregates/useTestResultsAggregates.tsx @@ -15,6 +15,7 @@ const TestResultsAggregatesSchema = z.object({ .object({ value: z.nativeEnum(Plans), isFreePlan: z.boolean(), + isTeamPlan: z.boolean(), }) .nullable(), repository: z.discriminatedUnion('__typename', [ @@ -57,6 +58,7 @@ const query = ` plan { value isFreePlan + isTeamPlan } repository: repository(name: $repo) { __typename @@ -139,6 +141,7 @@ export const useTestResultsAggregates = ({ data?.owner?.repository?.testAnalytics?.testResultsAggregates, planName: data?.owner?.plan?.value, isFreePlan: data?.owner?.plan?.isFreePlan, + isTeamPlan: data?.owner?.plan?.isTeamPlan, private: data?.owner?.repository?.private, defaultBranch: data?.owner?.repository?.defaultBranch, } diff --git a/src/pages/RepoPage/FailedTestsTab/FailedTestsPage/hooks/useTestResultsAggregates/useTestsResultsAggregates.test.tsx b/src/pages/RepoPage/FailedTestsTab/FailedTestsPage/hooks/useTestResultsAggregates/useTestsResultsAggregates.test.tsx index af50716113..5312b1586d 100644 --- a/src/pages/RepoPage/FailedTestsTab/FailedTestsPage/hooks/useTestResultsAggregates/useTestsResultsAggregates.test.tsx +++ b/src/pages/RepoPage/FailedTestsTab/FailedTestsPage/hooks/useTestResultsAggregates/useTestsResultsAggregates.test.tsx @@ -56,6 +56,7 @@ const mockIncorrectResponse = { plan: { value: Plans.USERS_BASIC, isFreePlan: true, + isTeamPlan: false, }, }, } @@ -65,6 +66,7 @@ const mockResponse = { plan: { value: Plans.USERS_BASIC, isFreePlan: true, + isTeamPlan: false, }, repository: { __typename: 'Repository', @@ -132,6 +134,7 @@ describe('useTestResultsAggregates', () => { }, planName: 'users-basic', isFreePlan: true, + isTeamPlan: false, private: true, defaultBranch: 'main', }) diff --git a/src/services/account/usePlanData.test.tsx b/src/services/account/usePlanData.test.tsx index 9f970e9d64..1fba972982 100644 --- a/src/services/account/usePlanData.test.tsx +++ b/src/services/account/usePlanData.test.tsx @@ -25,6 +25,7 @@ const mockTrialData = { hasSeatsLeft: true, isEnterprisePlan: false, isFreePlan: true, + isTeamPlan: false, }, pretrialPlan: { baseUnitPrice: 10, @@ -91,6 +92,7 @@ describe('usePlanData', () => { hasSeatsLeft: true, isEnterprisePlan: false, isFreePlan: true, + isTeamPlan: false, marketingName: 'Users Basic', monthlyUploadLimit: 250, planUserCount: 1, diff --git a/src/services/account/usePlanData.ts b/src/services/account/usePlanData.ts index f484e1d5cc..3068df0436 100644 --- a/src/services/account/usePlanData.ts +++ b/src/services/account/usePlanData.ts @@ -29,6 +29,7 @@ const PlanSchema = z.object({ hasSeatsLeft: z.boolean(), isEnterprisePlan: z.boolean(), isFreePlan: z.boolean(), + isTeamPlan: z.boolean(), }) export type Plan = z.infer @@ -84,6 +85,7 @@ export const query = ` hasSeatsLeft isEnterprisePlan isFreePlan + isTeamPlan } pretrialPlan { baseUnitPrice diff --git a/src/shared/GlobalTopBanners/TrialBanner/TrialBanner.test.tsx b/src/shared/GlobalTopBanners/TrialBanner/TrialBanner.test.tsx index 234e1f98a0..cda1eaada5 100644 --- a/src/shared/GlobalTopBanners/TrialBanner/TrialBanner.test.tsx +++ b/src/shared/GlobalTopBanners/TrialBanner/TrialBanner.test.tsx @@ -32,6 +32,7 @@ const proPlanMonth = { planUserCount: 1, isEnterprisePlan: false, isFreePlan: false, + isTeamPlan: false, } const trialPlan = { @@ -51,6 +52,7 @@ const trialPlan = { planUserCount: 1, isEnterprisePlan: false, isFreePlan: false, + isTeamPlan: false, } const basicPlan = { @@ -69,6 +71,7 @@ const basicPlan = { pretrialUsersCount: 0, planUserCount: 1, isFreePlan: true, + isTeamPlan: false, } const queryClient = new QueryClient() @@ -157,6 +160,7 @@ describe('TrialBanner', () => { hasSeatsLeft: true, isEnterprisePlan: plan.isEnterprisePlan, isFreePlan: plan.isFreePlan, + isTeamPlan: false, }, }, }, diff --git a/src/shared/utils/billing.test.ts b/src/shared/utils/billing.test.ts index 0ddd03415c..ed18adf21f 100644 --- a/src/shared/utils/billing.test.ts +++ b/src/shared/utils/billing.test.ts @@ -15,7 +15,6 @@ import { isCodecovProPlan, isProPlan, isSentryPlan, - isTeamPlan, isTrialPlan, lastTwoDigits, Plans, @@ -507,21 +506,6 @@ describe('isBasicPlan', () => { }) }) -describe('isTeamPlan', () => { - it('returns true when plan is team monthly or yearly', () => { - expect(isTeamPlan(Plans.USERS_TEAMM)).toBeTruthy() - expect(isTeamPlan(Plans.USERS_TEAMY)).toBeTruthy() - }) - - it('returns false when plan is not team monthly or yearly', () => { - expect(isTeamPlan(Plans.USERS_FREE)).toBeFalsy() - expect(isTeamPlan(Plans.USERS_BASIC)).toBeFalsy() - expect(isTeamPlan(Plans.USERS_INAPP)).toBeFalsy() - expect(isTeamPlan(Plans.USERS_ENTERPRISEM)).toBeFalsy() - expect(isTeamPlan(Plans.USERS_SENTRYM)).toBeFalsy() - }) -}) - describe('isTrialPlan', () => { it('returns true when plan is trial', () => { expect(isTrialPlan(Plans.USERS_TRIAL)).toBeTruthy() diff --git a/src/shared/utils/billing.ts b/src/shared/utils/billing.ts index 160ffb56b8..26a6725105 100644 --- a/src/shared/utils/billing.ts +++ b/src/shared/utils/billing.ts @@ -50,14 +50,9 @@ export interface Plan { hasSeatsLeft: boolean isEnterprisePlan: boolean isFreePlan: boolean + isTeamPlan: boolean } -export function isTeamPlan(plan?: PlanName | null) { - if (isString(plan)) { - if (plan === Plans.USERS_TEAMM || plan === Plans.USERS_TEAMY) return true - } - return false -} export function isBasicPlan(plan?: PlanName) { if (isString(plan)) { return plan === Plans.USERS_BASIC diff --git a/src/shared/utils/upgradeForm.test.ts b/src/shared/utils/upgradeForm.test.ts index c2dbbf7841..da646fe8b9 100644 --- a/src/shared/utils/upgradeForm.test.ts +++ b/src/shared/utils/upgradeForm.test.ts @@ -155,6 +155,7 @@ describe('getDefaultValuesUpgradeForm', () => { billingRate: BillingRate.MONTHLY, value: Plans.USERS_TEAMM, planUserCount: 1, + isTeamPlan: true, } as Plan, }) @@ -173,6 +174,7 @@ describe('getDefaultValuesUpgradeForm', () => { billingRate: BillingRate.MONTHLY, value: Plans.USERS_SENTRYY, planUserCount: 1, + isTeamPlan: false, } as Plan, }) @@ -181,6 +183,7 @@ describe('getDefaultValuesUpgradeForm', () => { billingRate: BillingRate.MONTHLY, value: Plans.USERS_SENTRYY, planUserCount: 1, + isTeamPlan: false, }, seats: 5, }) diff --git a/src/shared/utils/upgradeForm.ts b/src/shared/utils/upgradeForm.ts index dad140c865..1d4e8072be 100644 --- a/src/shared/utils/upgradeForm.ts +++ b/src/shared/utils/upgradeForm.ts @@ -14,7 +14,6 @@ import { findSentryPlans, findTeamPlans, isSentryPlan, - isTeamPlan, isTrialPlan, Plan, PlanName, @@ -64,13 +63,13 @@ export const getSchema = ({ minSeats = 1, trialStatus, selectedPlan, - planName, + plan, }: { accountDetails?: z.infer minSeats?: number trialStatus?: TrialStatus selectedPlan?: IndividualPlan - planName?: PlanName + plan?: Plan | null }) => z.object({ seats: z.coerce @@ -84,7 +83,8 @@ export const getSchema = ({ }) .transform((val, ctx) => { if ( - isTeamPlan(selectedPlan?.value) && + (selectedPlan?.value === Plans.USERS_TEAMM || + selectedPlan?.value === Plans.USERS_TEAMY) && val > TEAM_PLAN_MAX_ACTIVE_USERS ) { ctx.addIssue({ @@ -95,7 +95,7 @@ export const getSchema = ({ if ( trialStatus === TrialStatuses.ONGOING && - planName === Plans.USERS_TRIAL + plan?.value === Plans.USERS_TRIAL ) { return val } @@ -243,7 +243,11 @@ export const getDefaultValuesUpgradeForm = ({ let newPlan = proPlanYear if (isSentryUpgrade && !isSentryPlan(plan?.value)) { newPlan = isMonthlyPlan ? sentryPlanMonth : sentryPlanYear - } else if (isTeamPlan(plan?.value) || isTeamPlan(selectedPlan?.value)) { + } else if ( + plan?.isTeamPlan || + selectedPlan?.value === Plans.USERS_TEAMM || + selectedPlan?.value === Plans.USERS_TEAMY + ) { newPlan = isMonthlyPlan ? teamPlanMonth : teamPlanYear } else if (isPaidPlan) { newPlan = plan