Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion static/gsAdmin/components/changePlanAction.spec.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import {
SubscriptionFixture,
SubscriptionWithLegacySeerFixture,
} from 'getsentry-test/fixtures/subscription';
import {PlanTier} from 'getsentry-test/planTier';
import {renderGlobalModal, screen, userEvent} from 'sentry-test/reactTestingLibrary';
import {selectEvent} from 'sentry-test/selectEvent';

Expand All @@ -15,7 +16,6 @@ import {DataCategory} from 'sentry/types/core';

import {triggerChangePlanAction} from 'admin/components/changePlanAction';
import {SubscriptionStore} from 'getsentry/stores/subscriptionStore';
import {PlanTier} from 'getsentry/types';

describe('ChangePlanAction', () => {
const mockOrg = OrganizationFixture({slug: 'org-slug'});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import {
SubscriptionFixture,
SubscriptionWithLegacySeerFixture,
} from 'getsentry-test/fixtures/subscription';
import {PlanTier} from 'getsentry-test/planTier';
import {
render,
screen,
Expand All @@ -20,7 +21,7 @@ import {DataCategory} from 'sentry/types/core';
import {toTitleCase} from 'sentry/utils/string/toTitleCase';

import {CustomerOverview} from 'admin/components/customers/customerOverview';
import {AddOnCategory, PlanTier} from 'getsentry/types';
import {AddOnCategory} from 'getsentry/types';

describe('CustomerOverview', () => {
it('renders DetailLabels for SubscriptionSummary section', () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import {
InvoicedSubscriptionFixture,
SubscriptionFixture,
} from 'getsentry-test/fixtures/subscription';
import {PlanTier} from 'getsentry-test/planTier';
import {
fireEvent,
renderGlobalModal,
Expand All @@ -20,7 +21,7 @@ import {DataCategory} from 'sentry/types/core';

import {triggerProvisionSubscription} from 'admin/components/provisionSubscriptionAction';
import {RESERVED_BUDGET_QUOTA} from 'getsentry/constants';
import {OnDemandBudgetMode, PlanTier} from 'getsentry/types';
import {OnDemandBudgetMode} from 'getsentry/types';

describe('provisionSubscriptionAction', () => {
const onSuccess = jest.fn();
Expand Down
90 changes: 1 addition & 89 deletions static/gsAdmin/components/trialSubscriptionAction.spec.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,10 @@ import moment from 'moment-timezone';
import {OrganizationFixture} from 'sentry-fixture/organization';

import {SubscriptionFixture} from 'getsentry-test/fixtures/subscription';
import {
renderGlobalModal,
screen,
userEvent,
within,
} from 'sentry-test/reactTestingLibrary';
import {renderGlobalModal, screen, userEvent} from 'sentry-test/reactTestingLibrary';

import {openAdminConfirmModal} from 'admin/components/adminConfirmationModal';
import {TrialSubscriptionAction} from 'admin/components/trialSubscriptionAction';
import {PlanTier} from 'getsentry/types';

describe('TrialSubscriptionAction', () => {
const organization = OrganizationFixture();
Expand Down Expand Up @@ -75,7 +69,6 @@ describe('TrialSubscriptionAction', () => {
expect(onConfirm).toHaveBeenCalledWith({
trialDays: 45,
startEnterpriseTrial: true,
trialTier: PlanTier.AM3,
});
});

Expand Down Expand Up @@ -219,87 +212,6 @@ describe('TrialSubscriptionAction', () => {
);
});

it('displays am3 trial tier option when free plan', async () => {
jest.mock('@sentry/scraps/alert');

openAdminConfirmModal({
onConfirm,
renderModalSpecificContent: deps => (
<TrialSubscriptionAction
subscription={SubscriptionFixture({
organization,
plan: 'am2_f',
isFree: true,
planTier: PlanTier.AM2,
})}
startEnterpriseTrial
{...deps}
/>
),
});

renderGlobalModal();

await userEvent.click(screen.getByTestId('trial-plan-tier-choices'));
const trialTierInputs = within(screen.getByRole('dialog')).getAllByRole('textbox');
await userEvent.click(trialTierInputs[1]!);
expect(screen.getByText('am3')).toBeInTheDocument();
});

it('displays am3 trial tier option when am3 plan', async () => {
jest.mock('@sentry/scraps/alert');

openAdminConfirmModal({
onConfirm,
renderModalSpecificContent: deps => (
<TrialSubscriptionAction
subscription={SubscriptionFixture({
organization,
plan: 'am3_team',
isFree: false,
planTier: PlanTier.AM3,
})}
startEnterpriseTrial
{...deps}
/>
),
});

renderGlobalModal();

await userEvent.click(screen.getByTestId('trial-plan-tier-choices'));
const trialTierInputs = within(screen.getByRole('dialog')).getAllByRole('textbox');
await userEvent.click(trialTierInputs[1]!);
expect(screen.getByText('am3')).toBeInTheDocument();
});

it('displays am3 trial tier option when am2 plan', async () => {
jest.mock('@sentry/scraps/alert');

openAdminConfirmModal({
onConfirm,
renderModalSpecificContent: deps => (
<TrialSubscriptionAction
subscription={SubscriptionFixture({
organization,
plan: 'am2_team',
isFree: false,
planTier: PlanTier.AM2,
})}
startEnterpriseTrial
{...deps}
/>
),
});

renderGlobalModal();

await userEvent.click(screen.getByTestId('trial-plan-tier-choices'));
const trialTierInputs = within(screen.getByRole('dialog')).getAllByRole('textbox');
await userEvent.click(trialTierInputs[1]!);
expect(screen.getByText('am3')).toBeInTheDocument();
});

it('defaults 14-day trial for self-serve', () => {
jest.mock('@sentry/scraps/alert');

Expand Down
39 changes: 6 additions & 33 deletions static/gsAdmin/components/trialSubscriptionAction.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,12 @@ import moment from 'moment-timezone';
import {Alert} from '@sentry/scraps/alert';

import {NumberField} from 'sentry/components/forms/fields/numberField';
import {SelectField} from 'sentry/components/forms/fields/selectField';

import type {
AdminConfirmParams,
AdminConfirmRenderProps,
} from 'admin/components/adminConfirmationModal';
import type {Subscription} from 'getsentry/types';
import {PlanTier} from 'getsentry/types';

type Props = AdminConfirmRenderProps & {
subscription: Subscription;
Expand All @@ -20,7 +18,6 @@ type Props = AdminConfirmRenderProps & {

type State = {
trialDays: number;
trialTier?: PlanTier;
};

/**
Expand All @@ -32,26 +29,24 @@ export class TrialSubscriptionAction extends Component<Props, State> {
this.props.subscription.isEnterpriseTrial || this.props.startEnterpriseTrial
? 28
: 14,
trialTier: PlanTier.AM3,
};

componentDidMount() {
this.props.setConfirmCallback(this.handleConfirm);
}

handleConfirm = (_params: AdminConfirmParams) => {
const {trialDays, trialTier} = this.state;
const {trialDays} = this.state;
const {startEnterpriseTrial, onConfirm} = this.props;

// XXX(epurkhiser): In the original implementation none of the audit params
// were passed, is that an oversight?

//
// The trial tier is resolved server-side (omitting `trialTier` falls back
// to the subscription's default enterprise-trial plan).
const data = {
trialDays,
...(startEnterpriseTrial && {
startEnterpriseTrial,
trialTier,
}),
...(startEnterpriseTrial && {startEnterpriseTrial}),
};

onConfirm?.(data);
Expand All @@ -74,7 +69,7 @@ export class TrialSubscriptionAction extends Component<Props, State> {

render() {
const {subscription, startEnterpriseTrial} = this.props;
const {trialDays, trialTier} = this.state;
const {trialDays} = this.state;

if (!subscription) {
return null;
Expand All @@ -85,12 +80,6 @@ export class TrialSubscriptionAction extends Component<Props, State> {
);
const trialEndDate = currentTrialEnd.add(trialDays, 'days').format('MMMM Do YYYY');

const tierChoices: Array<[string | PlanTier, string | PlanTier]> = [
[PlanTier.AM3, PlanTier.AM3],
[PlanTier.AM2, PlanTier.AM2],
[PlanTier.AM1, PlanTier.AM1],
];

return (
<Fragment>
{startEnterpriseTrial && (
Expand All @@ -114,22 +103,6 @@ export class TrialSubscriptionAction extends Component<Props, State> {
value={trialDays}
onChange={this.onDaysChange}
/>
<div data-test-id="trial-plan-tier-choices">
{startEnterpriseTrial && (
<SelectField
inline={false}
stacked
flexibleControlStateSize
label="Trial Plan Tier"
name="tier"
value={trialTier}
onChange={(val: any) => {
this.setState({trialTier: val});
}}
choices={tierChoices}
/>
)}
</div>
</Fragment>
);
}
Expand Down
3 changes: 2 additions & 1 deletion static/gsAdmin/views/customerDetails.spec.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import {PoliciesFixture} from 'getsentry-test/fixtures/policies';
import {ProjectFixture} from 'getsentry-test/fixtures/project';
import {SeerReservedBudgetFixture} from 'getsentry-test/fixtures/reservedBudget';
import {SubscriptionFixture} from 'getsentry-test/fixtures/subscription';
import {PlanTier} from 'getsentry-test/planTier';
import {initializeOrg} from 'sentry-test/initializeOrg';
import {
render,
Expand All @@ -35,7 +36,7 @@ import type {StatsGroup} from 'admin/components/customers/customerStats';
import {populateChartData, useSeries} from 'admin/components/customers/customerStats';
import {CustomerDetails} from 'admin/views/customerDetails';
import type {Subscription} from 'getsentry/types';
import {BillingType, PlanTier} from 'getsentry/types';
import {BillingType} from 'getsentry/types';

const theme = ThemeFixture();
type Overwrite<T, U> = Pick<T, Exclude<keyof T, keyof U>> & U;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ import {OrganizationFixture} from 'sentry-fixture/organization';
import {BillingConfigFixture} from 'getsentry-test/fixtures/billingConfig';
import {PlanDetailsLookupFixture} from 'getsentry-test/fixtures/planDetailsLookup';
import {SubscriptionFixture} from 'getsentry-test/fixtures/subscription';
import {PlanTier} from 'getsentry-test/planTier';
import {render, screen} from 'sentry-test/reactTestingLibrary';

import {CronsBillingBanner} from 'getsentry/components/crons/cronsBillingBanner';
import {PlanTier} from 'getsentry/types';

describe('CronsBillingBanner', () => {
beforeEach(() => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ import {OrganizationFixture} from 'sentry-fixture/organization';

import {BillingConfigFixture} from 'getsentry-test/fixtures/billingConfig';
import {SubscriptionFixture} from 'getsentry-test/fixtures/subscription';
import {PlanTier} from 'getsentry-test/planTier';
import {render, screen} from 'sentry-test/reactTestingLibrary';

import {InsightsDateRangeQueryLimitFooter} from 'getsentry/components/features/insightsDateRangeQueryLimitFooter';
import {PlanTier} from 'getsentry/types';

describe('InsightsUpsellPage', () => {
const organization = OrganizationFixture();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ import {OrganizationFixture} from 'sentry-fixture/organization';

import {BillingConfigFixture} from 'getsentry-test/fixtures/billingConfig';
import {SubscriptionFixture} from 'getsentry-test/fixtures/subscription';
import {PlanTier} from 'getsentry-test/planTier';
import {render, screen} from 'sentry-test/reactTestingLibrary';

import PageUpsellOverlay from 'getsentry/components/features/pageUpsellOverlay';
import {SubscriptionStore} from 'getsentry/stores/subscriptionStore';
import {PlanTier} from 'getsentry/types';

describe('PageUpsellOverlay', () => {
let wrapper: any;
Expand Down
2 changes: 1 addition & 1 deletion static/gsApp/components/features/planFeature.spec.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ import {OrganizationFixture} from 'sentry-fixture/organization';
import {BillingConfigFixture} from 'getsentry-test/fixtures/billingConfig';
import {PlanDetailsLookupFixture} from 'getsentry-test/fixtures/planDetailsLookup';
import {SubscriptionFixture} from 'getsentry-test/fixtures/subscription';
import {PlanTier} from 'getsentry-test/planTier';
import {render, waitFor} from 'sentry-test/reactTestingLibrary';

import PlanFeature from 'getsentry/components/features/planFeature';
import {SubscriptionStore} from 'getsentry/stores/subscriptionStore';
import {PlanTier} from 'getsentry/types';

describe('PlanFeature', () => {
const organization = OrganizationFixture();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import {OrganizationFixture} from 'sentry-fixture/organization';

import {BillingConfigFixture} from 'getsentry-test/fixtures/billingConfig';
import {SubscriptionFixture} from 'getsentry-test/fixtures/subscription';
import {PlanTier} from 'getsentry-test/planTier';
import {
act,
render,
Expand All @@ -20,7 +21,6 @@ import {ProductSelectionAvailability} from 'getsentry/components/productSelectio
import type {Reservations} from 'getsentry/components/upgradeNowModal/types';
import {usePreviewData} from 'getsentry/components/upgradeNowModal/usePreviewData';
import {SubscriptionStore} from 'getsentry/stores/subscriptionStore';
import {PlanTier} from 'getsentry/types';

jest.mock('getsentry/components/upgradeNowModal/usePreviewData');

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ import {OrganizationFixture} from 'sentry-fixture/organization';
import {BillingConfigFixture} from 'getsentry-test/fixtures/billingConfig';
import {PlanDetailsLookupFixture} from 'getsentry-test/fixtures/planDetailsLookup';
import {SubscriptionFixture} from 'getsentry-test/fixtures/subscription';
import {PlanTier} from 'getsentry-test/planTier';
import {renderHookWithProviders, waitFor} from 'sentry-test/reactTestingLibrary';

import {PreviewDataFixture} from 'getsentry/__fixtures__/previewData';
import {PlanTier} from 'getsentry/types';

import type {Reservations} from './types';
import {usePreviewData} from './usePreviewData';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,9 @@ import {OrganizationFixture} from 'sentry-fixture/organization';
import {BillingConfigFixture} from 'getsentry-test/fixtures/billingConfig';
import {PlanDetailsLookupFixture} from 'getsentry-test/fixtures/planDetailsLookup';
import {SubscriptionFixture} from 'getsentry-test/fixtures/subscription';
import {PlanTier} from 'getsentry-test/planTier';
import {renderHookWithProviders, waitFor} from 'sentry-test/reactTestingLibrary';

import {PlanTier} from 'getsentry/types';

import {useUpgradeNowParams} from './useUpgradeNowParams';

const teamPlan = PlanDetailsLookupFixture('am2_team');
Expand Down
2 changes: 1 addition & 1 deletion static/gsApp/components/upsellModal/details.spec.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ import {OrganizationFixture} from 'sentry-fixture/organization';

import {BillingConfigFixture} from 'getsentry-test/fixtures/billingConfig';
import {SubscriptionFixture} from 'getsentry-test/fixtures/subscription';
import {PlanTier} from 'getsentry-test/planTier';
import {act, render, screen} from 'sentry-test/reactTestingLibrary';

import {Details} from 'getsentry/components/upsellModal/details';
import {PlanTier} from 'getsentry/types';

describe('Upsell Modal Details', () => {
const organization = OrganizationFixture({access: ['org:billing']});
Expand Down
2 changes: 1 addition & 1 deletion static/gsApp/overrides/integrationFeatures.spec.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@ import {UserFixture} from 'sentry-fixture/user';
import {BillingConfigFixture} from 'getsentry-test/fixtures/billingConfig';
import {PlanDetailsLookupFixture} from 'getsentry-test/fixtures/planDetailsLookup';
import {SubscriptionFixture} from 'getsentry-test/fixtures/subscription';
import {PlanTier} from 'getsentry-test/planTier';
import {render, screen, waitFor} from 'sentry-test/reactTestingLibrary';

import {ConfigStore} from 'sentry/stores/configStore';

import {hookIntegrationFeatures} from 'getsentry/overrides/integrationFeatures';
import {SubscriptionStore} from 'getsentry/stores/subscriptionStore';
import {PlanTier} from 'getsentry/types';

describe('hookIntegrationFeatures', () => {
const {FeatureList, IntegrationFeatures} = hookIntegrationFeatures();
Expand Down
Loading
Loading