/** * External dependencies */ import TestRenderer from 'react-test-renderer'; /** * Internal dependencies */ import withCategory from '../with-category'; import * as mockUtils from '../../components/utils'; import * as mockBaseUtils from '../../base/utils/errors'; jest.mock( '../../components/utils', () => ( { getCategory: jest.fn(), } ) ); jest.mock( '../../base/utils/errors', () => ( { formatError: jest.fn(), } ) ); const mockCategory = { name: 'Clothing' }; const attributes = { categoryId: 1 }; const TestComponent = withCategory( ( props ) => { return (
); } ); const render = () => { return TestRenderer.create( ); }; describe( 'withCategory Component', () => { let renderer; afterEach( () => { mockUtils.getCategory.mockReset(); } ); describe( 'lifecycle events', () => { beforeEach( () => { mockUtils.getCategory.mockImplementation( () => Promise.resolve() ); renderer = render(); } ); it( 'getCategory is called on mount with passed in category id', () => { const { getCategory } = mockUtils; expect( getCategory ).toHaveBeenCalledWith( attributes.categoryId ); expect( getCategory ).toHaveBeenCalledTimes( 1 ); } ); it( 'getCategory is called on component update', () => { const { getCategory } = mockUtils; const newAttributes = { ...attributes, categoryId: 2 }; renderer.update( ); expect( getCategory ).toHaveBeenNthCalledWith( 2, newAttributes.categoryId ); expect( getCategory ).toHaveBeenCalledTimes( 2 ); } ); it( 'getCategory is hooked to the prop', () => { const { getCategory } = mockUtils; const props = renderer.root.findByType( 'div' ).props; props.getCategory(); expect( getCategory ).toHaveBeenCalledTimes( 2 ); } ); } ); describe( 'when the API returns category data', () => { beforeEach( () => { mockUtils.getCategory.mockImplementation( ( categoryId ) => Promise.resolve( { ...mockCategory, id: categoryId } ) ); renderer = render(); } ); it( 'sets the category props', () => { const props = renderer.root.findByType( 'div' ).props; expect( props.error ).toBeNull(); expect( typeof props.getCategory ).toBe( 'function' ); expect( props.isLoading ).toBe( false ); expect( props.category ).toEqual( { ...mockCategory, id: attributes.categoryId, } ); } ); } ); describe( 'when the API returns an error', () => { const error = { message: 'There was an error.' }; const getCategoryPromise = Promise.reject( error ); const formattedError = { message: 'There was an error.', type: 'api' }; beforeEach( () => { mockUtils.getCategory.mockImplementation( () => getCategoryPromise ); mockBaseUtils.formatError.mockImplementation( () => formattedError ); renderer = render(); } ); it( 'sets the error prop', ( done ) => { const { formatError } = mockBaseUtils; getCategoryPromise.catch( () => { const props = renderer.root.findByType( 'div' ).props; expect( formatError ).toHaveBeenCalledWith( error ); expect( formatError ).toHaveBeenCalledTimes( 1 ); expect( props.error ).toEqual( formattedError ); expect( typeof props.getCategory ).toBe( 'function' ); expect( props.isLoading ).toBe( false ); expect( props.category ).toBeNull(); done(); } ); } ); } ); } ); Uncategorized – Page 25 – HOW TO CRIC

Uncategorized

U S Casinos Won $66 5b In 2023, Their Particular Best Year Ever As Gamblers Showed No Economic Fea

U S Casinos Won $66 5b In 2023, Their Particular Best Year Ever As Gamblers Showed No Economic Fear Heres How In Order To Win At Slot Machine Machines: 6 Expert Tips Content Can You Cheat On The Internet Slot Machines? How To Choose The Greatest Slot Machines To Boost Your Chance In Order To …

U S Casinos Won $66 5b In 2023, Their Particular Best Year Ever As Gamblers Showed No Economic Fea Read More »

Mostbet Мостбет: До 25000 Бонус При Регистрации Зеркало И Отзывы О Букмекерской Конторе Мостбет Оффшорны

Mostbet Мостбет: До 25000 Бонус При Регистрации Зеркало И Отзывы О Букмекерской Конторе Мостбет Оффшорный Зеркало Mostbet Вход На Официальный Сайт Мостбет Новости Пользователей Content Популярные Лиги И Турниры Для Ставок На Mostbet Безопасен Ли Mostbet? Биржа Ставок На Спорт Mostbet Вход В Свой Аккаунт На Mostbet Могут Ли Пользователи Изменять Интерфейс Сайта Под Свои …

Mostbet Мостбет: До 25000 Бонус При Регистрации Зеркало И Отзывы О Букмекерской Конторе Мостбет Оффшорны Read More »

Как Работают Игровые Автоматы Принцип Работы Слотов В Интернет Казин

Как Работают Игровые Автоматы Принцип Работы Слотов В Интернет Казино 8 Лучших Сайтов Онлайн-слотов На Реальные Деньги Февраль 2024 Г Content Выигрышные Комбинации И Бонусы “алгоритм И Система Работы Онлайн-слотов — Ситуация На 2021 Год Zeus Vs Hades : Gods Of War Слот (pragmatic Play) Классификация Автоматов Заключительные Мысли О Лучших Слотах Давайте Разрушим 4 …

Как Работают Игровые Автоматы Принцип Работы Слотов В Интернет Казин Read More »

Как Работают Игровые Автоматы Принцип Работы Слотов В Интернет Казин

Как Работают Игровые Автоматы Принцип Работы Слотов В Интернет Казино 8 Лучших Сайтов Онлайн-слотов На Реальные Деньги Февраль 2024 Г Content Выигрышные Комбинации И Бонусы “алгоритм И Система Работы Онлайн-слотов — Ситуация На 2021 Год Zeus Vs Hades : Gods Of War Слот (pragmatic Play) Классификация Автоматов Заключительные Мысли О Лучших Слотах Давайте Разрушим 4 …

Как Работают Игровые Автоматы Принцип Работы Слотов В Интернет Казин Read More »

Casino Pin Number Up Pin-up On Line Casino Resmi Sitesi Türkiye Giriş Ve Kayıt Çevrimiç

Casino Pin Number Up Pin-up On Line Casino Resmi Sitesi Türkiye Giriş Ve Kayıt Çevrimiçi Pin Upward Online Casino’ya Kaydolun Ve Kişisel Dolabınıza Giriş Yapın️ Content Pin Upwards Bet Resmi Internet Sitesi: Bahisçi Ve Spor Bahisleri Pin Up Aviator Oyunu Pinup Gaming Club’da Güvenilir Ödemeler Anında Para Çekme Için Pin Up Within Casino’da Doğrulama Pin …

Casino Pin Number Up Pin-up On Line Casino Resmi Sitesi Türkiye Giriş Ve Kayıt Çevrimiç Read More »

Scroll to Top