render-with-subscription-dash-context.tsx 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import { render } from '@testing-library/react'
  2. import _ from 'lodash'
  3. import { SubscriptionDashboardProvider } from '../../../../../frontend/js/features/subscription/context/subscription-dashboard-context'
  4. import fetchMock from 'fetch-mock'
  5. import { SplitTestProvider } from '@/shared/context/split-test-context'
  6. import { MetaTag } from '@/utils/meta'
  7. import { setupSubscriptionDashContext } from './setup-subscription-dash-context'
  8. export function renderWithSubscriptionDashContext(
  9. component: React.ReactElement,
  10. options?: {
  11. metaTags?: MetaTag[]
  12. recurlyNotLoaded?: boolean
  13. queryingRecurly?: boolean
  14. currencyCode?: string
  15. }
  16. ) {
  17. const SubscriptionDashboardProviderWrapper = ({
  18. children,
  19. }: {
  20. children: React.ReactNode
  21. }) => (
  22. <SplitTestProvider>
  23. <SubscriptionDashboardProvider>{children}</SubscriptionDashboardProvider>
  24. </SplitTestProvider>
  25. )
  26. setupSubscriptionDashContext(options)
  27. return render(component, {
  28. wrapper: SubscriptionDashboardProviderWrapper,
  29. })
  30. }
  31. export function cleanUpContext() {
  32. // @ts-ignore
  33. delete global.recurly
  34. fetchMock.removeRoutes().clearHistory()
  35. }