overleaf/services/web/test/frontend/features/subscription/components/dashboard/institution-memberships.test.tsx
Jessica Lawshe 2499ecadcc Merge pull request #11340 from overleaf/jel-react-personal-subscription-dash
[web] Begin to migrate personal subscription dash commons to React

GitOrigin-RevId: 43c096bd72199c8c0a7b40c8fd84a0a12c108217
2023-01-27 09:05:22 +00:00

65 lines
1.9 KiB
TypeScript

import { expect } from 'chai'
import { render, screen } from '@testing-library/react'
import InstitutionMemberships from '../../../../../../frontend/js/features/subscription/components/dashboard/institution-memberships'
const memberships = [
{
id: 9258,
name: 'Test University',
commonsAccount: true,
isUniversity: true,
confirmed: true,
ssoBeta: false,
ssoEnabled: false,
maxConfirmationMonths: 6,
},
{
id: 9259,
name: 'Example Institution',
commonsAccount: true,
isUniversity: true,
confirmed: true,
ssoBeta: false,
ssoEnabled: true,
maxConfirmationMonths: 12,
},
]
describe('<InstitutionMemberships />', function () {
beforeEach(function () {
window.metaAttributesCache = new Map()
})
afterEach(function () {
window.metaAttributesCache = new Map()
})
it('renders all insitutions with license', function () {
render(<InstitutionMemberships memberships={memberships} />)
const elements = screen.getAllByText('You are on our', {
exact: false,
})
expect(elements.length).to.equal(2)
expect(elements[0].textContent).to.equal(
'You are on our Professional plan as a confirmed member of Test University'
)
expect(elements[1].textContent).to.equal(
'You are on our Professional plan as a confirmed member of Example Institution'
)
})
it('renders error message when failed to check commons licenses', function () {
render(<InstitutionMemberships memberships={undefined} />)
screen.getByText(
'Sorry, something went wrong. Subscription information related to institutional affiliations may not be displayed. Please try again later.'
)
})
it('renders the "Get the most out of your" subscription text when a user has a subscription', function () {
render(<InstitutionMemberships memberships={memberships} />)
screen.getByText('Get the most out of your', {
exact: false,
})
})
})