import { expect } from 'chai' import { screen } from '@testing-library/react' import SubscriptionDashboard from '../../../../../../frontend/js/features/subscription/components/dashboard/subscription-dashboard' import { cleanUpContext, renderWithSubscriptionDashContext, } from '../../helpers/render-with-subscription-dash-context' import { groupPlans, plans } from '../../fixtures/plans' import { annualActiveSubscription } from '../../fixtures/subscriptions' describe('', function () { afterEach(function () { cleanUpContext() }) describe('With an active subscription', function () { beforeEach(function () { renderWithSubscriptionDashContext(, { metaTags: [ { name: 'ol-plans', value: plans }, { name: 'ol-groupPlans', value: groupPlans, }, { name: 'ol-subscription', value: annualActiveSubscription }, { name: 'ol-recommendedCurrency', value: 'USD', }, ], }) }) it('renders the "Get the most out of your" subscription text', function () { screen.getByText( 'Get the most out of your Overleaf subscription by checking out', { exact: false } ) }) }) describe('Free Plan', function () { beforeEach(function () { renderWithSubscriptionDashContext() }) it('does not render the "Get the most out of your" subscription text', function () { const text = screen.queryByText('Get the most out of your', { exact: false, }) expect(text).to.be.null }) it('does not render the contact support message', function () { const text = screen.queryByText( `You’re on an Overleaf Paid plan. Contact`, { exact: false, } ) expect(text).to.be.null }) }) describe('Custom subscription', function () { it('renders the contact support message', function () { renderWithSubscriptionDashContext(, { metaTags: [ { name: 'ol-currentInstitutionsWithLicence', value: [], }, { name: 'ol-hasSubscription', value: true, }, ], }) screen.getByText(`You’re on an Overleaf Paid plan.`, { exact: false, }) screen.getByText(`Contact support`, { exact: false, }) }) }) it('Show a warning when coming from plans page', function () { renderWithSubscriptionDashContext(, { metaTags: [ { name: 'ol-fromPlansPage', value: true, }, ], }) screen.getByText('You already have a subscription') }) })