import {OrganizationFixture} from 'sentry-fixture/organization';
import {SubscriptionFixture} from 'getsentry-test/fixtures/subscription';
import {initializeOrg} from 'sentry-test/initializeOrg';
import {render, screen} from 'sentry-test/reactTestingLibrary';
import SubscriptionStore from 'getsentry/stores/subscriptionStore';
import {PlanTier} from 'getsentry/types';
import RedeemPromoCode from 'getsentry/views/redeemPromoCode';
describe('Redeem promo code', () => {
const organization = OrganizationFixture({access: ['org:billing']});
const {router} = initializeOrg({
organization,
});
beforeEach(function () {
SubscriptionStore.set(organization.slug, {});
});
it('renders redeem promo code page', function () {
const subscription = SubscriptionFixture({
plan: 'am1_f',
planTier: PlanTier.AM1,
organization,
});
SubscriptionStore.set(organization.slug, subscription);
render(
,
{
router,
organization,
}
);
expect(screen.queryAllByText('Redeem Promotional Code')).toHaveLength(2);
});
it('does not render redeem promo code page for YY partnership orgs', async function () {
const subscription = SubscriptionFixture({
plan: 'am2_business',
planTier: 'am2',
partner: {
externalId: 'x123x',
name: 'YY Org',
partnership: {
id: 'YY',
displayName: 'YY',
supportNote: 'foo',
},
isActive: true,
},
organization,
});
SubscriptionStore.set(organization.slug, subscription);
render(
,
{
router,
organization,
}
);
expect(await screen.findByTestId('partnership-note')).toBeInTheDocument();
expect(screen.queryByText('Redeem Promotional Code')).not.toBeInTheDocument();
});
});