@navinc/base-react-components
Version:
Nav's Pattern Library
56 lines (44 loc) • 1.54 kB
JavaScript
import React from 'react'
import { render } from '@testing-library/react'
import { FeatureProvider, Feature } from './index'
const features = {
dandb: false,
equifax: false,
experian: true,
}
const search = '?dandb=true'
const renderFeature = (feature) => render(<FeatureProvider value={features}>{feature}</FeatureProvider>)
describe('Feature', () => {
it('should return children if feature is on', () => {
const { getByTestId } = renderFeature(
<Feature name="experian" search={search}>
<p data-testid="experian-report">Experian Report</p>
</Feature>
)
expect(getByTestId('experian-report'))
})
it('should return null if feature is not on', () => {
const { queryByTestId } = renderFeature(
<Feature name="equifax" search={search}>
<p data-testid="equifax-report">Equifax Report</p>
</Feature>
)
expect(queryByTestId('equifax-report')).toBeNull()
})
it('should return children if feature is overriden via query params', () => {
const { getByTestId } = renderFeature(
<Feature name="dandb" search={search}>
<p data-testid="dandb-report">DandB Report</p>
</Feature>
)
expect(getByTestId('dandb-report'))
})
it('should return null if feature name does not exist in the data', () => {
const { queryByTestId } = renderFeature(
<Feature name="bureau" search={search}>
<p data-testid="bureau-report">Buerau Report</p>
</Feature>
)
expect(queryByTestId('bureau-report')).toBeNull()
})
})