123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- import {OrganizationFixture} from 'sentry-fixture/organization';
- import {SubscriptionFixture} from 'getsentry-test/fixtures/subscription';
- import {render, screen} from 'sentry-test/reactTestingLibrary';
- import {resetMockDate, setMockDate} from 'sentry-test/utils';
- import TrialAlert from 'getsentry/views/subscriptionPage/trialAlert';
- describe('Subscription > TrialAlert', function () {
- const organization = OrganizationFixture();
- const subscription = SubscriptionFixture({organization});
- beforeEach(() => {
- setMockDate(new Date('2021-01-01'));
- });
- afterEach(() => {
- resetMockDate();
- });
- it('does not render not on trial', function () {
- const sub = {
- ...subscription,
- isTrial: false,
- onDemandMaxSpend: 1000,
- onDemandSpendUsed: 0,
- };
- render(<TrialAlert subscription={sub} organization={organization} />);
- expect(screen.queryByRole('button')).not.toBeInTheDocument();
- });
- it('renders 1 day left', function () {
- const sub = {
- ...subscription,
- isTrial: true,
- onDemandMaxSpend: 1000,
- onDemandSpendUsed: 0,
- trialEnd: '2021-01-02',
- };
- render(<TrialAlert subscription={sub} organization={organization} />);
- expect(screen.getByText('1 Day Left')).toBeInTheDocument();
- expect(screen.getByRole('button')).toBeInTheDocument();
- });
- it('renders 14 days left', function () {
- const sub = {
- ...subscription,
- isTrial: true,
- onDemandMaxSpend: 1000,
- onDemandSpendUsed: 0,
- trialEnd: '2021-01-15',
- };
- render(<TrialAlert subscription={sub} organization={organization} />);
- expect(screen.getByText('14 Days Left')).toBeInTheDocument();
- expect(screen.getByRole('button')).toBeInTheDocument();
- });
- it('does not render negative days left', function () {
- const sub = {
- ...subscription,
- isTrial: true,
- onDemandMaxSpend: 1000,
- onDemandSpendUsed: 0,
- trialEnd: '2020-12-01',
- };
- render(<TrialAlert subscription={sub} organization={organization} />);
- expect(screen.queryByRole('button')).not.toBeInTheDocument();
- });
- it('renders enterprise trial', function () {
- const sub = {
- ...subscription,
- isTrial: true,
- isEnterpriseTrial: true,
- onDemandMaxSpend: 1000,
- onDemandSpendUsed: 0,
- };
- render(<TrialAlert subscription={sub} organization={organization} />);
- expect(screen.getByText('Enterprise Trial')).toBeInTheDocument();
- expect(
- screen.getByText(
- "With your trial you have access to Sentry's business plan features, and unlimited errors, transactions, replays, attachments, cron monitors, and uptime monitors."
- )
- ).toBeInTheDocument();
- });
- it('renders am3 enterprise trial', function () {
- const am3_sub = SubscriptionFixture({organization, plan: 'am3_f'});
- const sub = {
- ...am3_sub,
- isTrial: true,
- isEnterpriseTrial: true,
- onDemandMaxSpend: 1000,
- onDemandSpendUsed: 0,
- };
- render(<TrialAlert subscription={sub} organization={organization} />);
- expect(screen.getByText('Enterprise Trial')).toBeInTheDocument();
- expect(
- screen.getByText(
- "With your trial you have access to Sentry's business plan features, and unlimited errors, replays, attachments, cron monitors, spans, profile hours, and uptime monitors."
- )
- ).toBeInTheDocument();
- });
- it('renders plan trial', function () {
- const sub = {
- ...subscription,
- isTrial: true,
- isEnterpriseTrial: false,
- isPerformancePlanTrial: false,
- onDemandMaxSpend: 1000,
- onDemandSpendUsed: 0,
- };
- render(<TrialAlert subscription={sub} organization={organization} />);
- expect(screen.getByText('Business Plan Trial')).toBeInTheDocument();
- expect(
- screen.getByText(
- "With your trial you have access to Sentry's business plan features."
- )
- ).toBeInTheDocument();
- expect(screen.queryByText(/unlimited errors/)).not.toBeInTheDocument();
- });
- it('renders performance trial', function () {
- const sub = {
- ...subscription,
- isTrial: true,
- isEnterpriseTrial: false,
- isPerformancePlanTrial: true,
- onDemandMaxSpend: 1000,
- onDemandSpendUsed: 0,
- };
- render(<TrialAlert subscription={sub} organization={organization} />);
- expect(screen.getByText('Performance Trial')).toBeInTheDocument();
- expect(
- screen.getByText(
- `With your trial you have access to Sentry's performance features, and unlimited transactions and attachments.`
- )
- ).toBeInTheDocument();
- });
- });
|