overleaf/services/web/test/frontend/features/subscription/components/successful-subscription/successful-subscription.test.tsx
ilkin-overleaf 48587a7a62 Merge pull request #12007 from overleaf/ii-react-subscription-dash-thank-you
[web] Successful subscription react migration

GitOrigin-RevId: 1d7d849415f4b7a7f60ddf8a4e18570ff5142196
2023-03-02 09:04:04 +00:00

84 lines
2.9 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { expect } from 'chai'
import { screen, within } from '@testing-library/react'
import SuccessfulSubscription from '../../../../../../frontend/js/features/subscription/components/successful-subscription/successful-subscription'
import { renderWithSubscriptionDashContext } from '../../helpers/render-with-subscription-dash-context'
import { annualActiveSubscription } from '../../fixtures/subscriptions'
describe('successful subscription page', function () {
afterEach(function () {
window.metaAttributesCache = new Map()
})
it('renders the invoices link', function () {
const adminEmail = 'foo@example.com'
const options = {
metaTags: [
{
name: 'ol-ExposedSettings',
value: {
adminEmail,
},
},
{ name: 'ol-subscription', value: annualActiveSubscription },
],
}
renderWithSubscriptionDashContext(<SuccessfulSubscription />, options)
screen.getByRole('heading', { name: /thanks for subscribing/i })
const alert = screen.getByRole('alert')
within(alert).getByText(/to modify your subscription go to/i)
const manageSubscriptionLink = within(alert).getByRole('link', {
name: /manage subscription/i,
})
expect(manageSubscriptionLink.getAttribute('href')).to.equal(
'/user/subscription'
)
screen.getByText(
`Thank you for subscribing to the ${annualActiveSubscription.plan.name} plan.`,
{ exact: false }
)
screen.getByText(
/its support from people like yourself that allows .* to continue to grow and improve/i
)
expect(screen.getByText(/get the most out of your/i).textContent).to.match(
/get the most out of your .* subscription by checking out the list of .*s premium features/i
)
expect(
screen
.getByText(/if there is anything you ever/i)
.textContent?.replace(/\xA0/g, ' ')
).to.equal(
`If there is anything you ever need please feel free to contact us directly at ${adminEmail}.`
)
const contactLink = screen.getByRole('link', {
name: adminEmail,
})
expect(contactLink.getAttribute('href')).to.equal(`mailto:${adminEmail}`)
expect(
screen.getByText(/if you would like to help us improve/i).textContent
).to.match(
/if you would like to help us improve .*, please take a moment to fill out this survey/i
)
const surveyLink = screen.getByRole('link', {
name: /this survey/i,
})
expect(surveyLink.getAttribute('href')).to.equal(
'https://forms.gle/CdLNX9m6NLxkv1yr5'
)
const helpLink = screen.getByRole('link', {
name: /.*s premium features/i,
})
expect(helpLink.getAttribute('href')).to.equal(
'/learn/how-to/Overleaf_premium_features'
)
const backToYourProjectsLink = screen.getByRole('link', {
name: /back to your projects/i,
})
expect(backToYourProjectsLink.getAttribute('href')).to.equal('/project')
})
})