import { render } from '@testing-library/react'; import { fromPartial } from '@total-typescript/shoehorn'; import { ContainerProvider, useDependencies } from '../../src/container/context'; describe('context', () => { describe('useDependencies', () => { let lastDependencies: unknown[]; function TestComponent({ name}: { name: string }) { // eslint-disable-next-line react-compiler/react-compiler lastDependencies = useDependencies(name); return null; } it('throws when used outside of ContainerProvider', () => { expect(() => render()).toThrowError( 'You cannot use "useDependencies" outside of a ContainerProvider', ); }); it('throws when requested dependency is not found in container', () => { expect(() => render( , )).toThrowError('Dependency with name "foo" not found in container'); }); it('gets dependency from container', () => { render( , ); expect(lastDependencies).toEqual(['the dependency']); }); }); });