import * as React from 'react'; import expect from 'expect'; import { render, screen } from '@testing-library/react'; import { useTranslate } from './useTranslate'; import { I18nContext } from './I18nContext'; describe('useTranslate', () => { const Component = () => { const translate = useTranslate(); return
{translate('hello')}
; }; it('should not fail when used outside of a translation provider', () => { render(); expect(screen.queryAllByText('hello')).toHaveLength(1); }); it('should use the i18nProvider.translate() method', () => { render( 'hallo', changeLocale: () => Promise.resolve(), getLocale: () => 'de', }} > ); expect(screen.queryAllByText('hello')).toHaveLength(0); expect(screen.queryAllByText('hallo')).toHaveLength(1); }); it('should use the i18n provider when using I18nProvider', () => { render( 'bonjour', changeLocale: () => Promise.resolve(), getLocale: () => 'fr', }} > ); expect(screen.queryAllByText('hello')).toHaveLength(0); expect(screen.queryAllByText('bonjour')).toHaveLength(1); }); });