diff --git a/services/web/test/frontend/features/subscription/components/dashboard/premium-features-link.test.tsx b/services/web/test/frontend/features/subscription/components/dashboard/premium-features-link.test.tsx index b8a6713218..6e392ec120 100644 --- a/services/web/test/frontend/features/subscription/components/dashboard/premium-features-link.test.tsx +++ b/services/web/test/frontend/features/subscription/components/dashboard/premium-features-link.test.tsx @@ -1,9 +1,14 @@ import { expect } from 'chai' import sinon from 'sinon' -import { fireEvent, render, screen, within } from '@testing-library/react' +import { fireEvent, screen, within } from '@testing-library/react' import * as eventTracking from '../../../../../../frontend/js/infrastructure/event-tracking' import PremiumFeaturesLink from '../../../../../../frontend/js/features/subscription/components/dashboard/premium-features-link' import * as useLocationModule from '../../../../../../frontend/js/shared/hooks/use-location' +import { + cleanUpContext, + renderWithSubscriptionDashContext, +} from '../../helpers/render-with-subscription-dash-context' +import { annualActiveSubscription } from '../../fixtures/subscriptions' describe('', function () { const originalLocation = window.location @@ -16,7 +21,6 @@ describe('', function () { ] beforeEach(function () { - window.metaAttributesCache = new Map() sendMBSpy = sinon.spy(eventTracking, 'sendMB') this.locationStub = sinon.stub(useLocationModule, 'useLocation').returns({ assign: sinon.stub(), @@ -25,24 +29,32 @@ describe('', function () { }) afterEach(function () { - window.metaAttributesCache = new Map() sendMBSpy.restore() this.locationStub.restore() + cleanUpContext() + }) + + describe('without an active valid subscription', function () { + it('returns an empty container', function () { + const { container } = renderWithSubscriptionDashContext( + + ) + expect(container.firstChild).to.be.null + }) }) for (const variant of variants) { describe(`${variant.name} variant`, function () { - beforeEach(function () { - window.metaAttributesCache.set('ol-splitTestVariants', { - 'features-page': variant.name, - }) - }) - afterEach(function () { - window.metaAttributesCache.delete('ol-splitTestVariants') - }) - it('renders the premium features link and sends analytics event', function () { - render() + renderWithSubscriptionDashContext(, { + metaTags: [ + { name: 'ol-subscription', value: annualActiveSubscription }, + { + name: 'ol-splitTestVariants', + value: { 'features-page': variant.name }, + }, + ], + }) const premiumText = screen.getByText('Get the most out of your', { exact: false, })