import {Organization} from 'sentry-fixture/organization';
import {render, screen} from 'sentry-test/reactTestingLibrary';
import HookStore from 'sentry/stores/hookStore';
import HookOrDefault from './hookOrDefault';
describe('HookOrDefault', () => {
beforeEach(() => {
HookStore.init();
});
it('should render default', () => {
const Component = HookOrDefault({
hookName: 'component:replay-onboarding-cta',
defaultComponent: () => (
Default Component
),
});
render(Test);
expect(screen.getByTestId('default-component')).toBeInTheDocument();
expect(screen.getByText('Default Component')).toBeInTheDocument();
});
it('should render from HookStore', () => {
HookStore.add(
'component:replay-onboarding-cta',
() =>
function ({organization}) {
return {organization.slug}
;
}
);
const Component = HookOrDefault({
hookName: 'component:replay-onboarding-cta',
defaultComponent: () => (
Default Component
),
});
render(Test);
expect(screen.getByTestId('hook-component')).toBeInTheDocument();
expect(screen.queryByTestId('default-component')).not.toBeInTheDocument();
expect(screen.getByText('org-slug')).toBeInTheDocument();
});
});