import { render, screen } from '@testing-library/react' import * as React from 'react' import { useContext } from 'react' import { FeaturesContext, FeaturesProvider } from './context' const TestConsumer = () => { const store = useContext(FeaturesContext) if (!store) return
no store
const { features } = store.getState() return
{features.moreLikeThis?.enabled ? 'enabled' : 'disabled'}
} describe('FeaturesProvider', () => { it('should provide store to children when FeaturesProvider wraps them', () => { render( , ) expect(screen.getByRole('status')).toHaveTextContent('disabled') }) it('should provide initial features state when features prop is provided', () => { render( , ) expect(screen.getByRole('status')).toHaveTextContent('enabled') }) it('should maintain the same store reference across re-renders', () => { const storeRefs: Array> = [] const StoreRefCollector = () => { const store = useContext(FeaturesContext) storeRefs.push(store) return null } const { rerender } = render( , ) rerender( , ) expect(storeRefs[0]).toBe(storeRefs[1]) }) it('should handle empty features object', () => { render( , ) expect(screen.getByRole('status')).toHaveTextContent('disabled') }) })