/** * 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(); } ); } ); } ); } ); Formal Veb Saytı Bağlayın️ Iti Ödənişlər, Gündəlik Bonuslar, ümumən Bunlar Sizi Pin Up Casinoda Gözləyir – HOW TO CRIC

Formal Veb Saytı Bağlayın️ Iti Ödənişlər, Gündəlik Bonuslar, ümumən Bunlar Sizi Pin Up Casinoda Gözləyir

Formal Veb Saytı Bağlayın️ Iti Ödənişlər, Gündəlik Bonuslar, ümumən Bunlar Sizi Pin Up Casinoda GözləyirBu, oyunun heyranlığını artırır və oyuncuları daha da bax: cəzb edir.

Oyuncular, bir sıra uçurumlu bahis seçimləri arasında seçim edə bilərlər. Bu seçimlər təyyarənin bəlli bir məsafəyə uçmasını, izhar vahid sürətə çatmasını və ya bəlli bir hündürlüyə çıxmasını tələb edən seçimləri əhatə edir. Oyuncular bahis qoyurlar və sonra pərvaz nəticəsini gözləyirlər. Oyuncular, oyun zamanı təyyarənin mövqeyini və başqa oyuncuların bahislərini bədii üçün bilirlər.

Pin Up Aviator, yüksək davamlı grafika və subyektiv hədis xüsusiyyətləri ilə oyunculara təsirli bir imtahan təqdim edir. 2024 © Bütün hüquqlar qorunur | Pinupaviator.world

Бонус За Регистрацию В Pin Up?

Aviator, oyunçulara təmtəraqlı sürətli bir uçuş təcrübəsi olaraq bir təyyarə pilotu kimi təklif edir. Bu oyun, obrazli görsellər və tərəqqi oyun xüsusiyyətləri ilə oyunçulara praktik uçuş təcrübəsi yaşadır. Pin Up Aviator, sadə vahid oyun dinamikası təqdim edir və oyunçular üçün asanlıqla əlçatan bir yoxlama sunur. Oyunun əsl məqsədi, təyyarənin harada enəcəyini təxmin etməkdir. Oyuncular, müxtəlif uçuş marşrutları üzrə bahis qoyub və təyyarənin hədəfə irişmə ehtimalını təxmin edə bilirlər.

  • Oyunun əsas məqsədi, təyyarənin harada enəcəyini təxmin etməkdir.
  • Pin Up Aviator, təntənəli davamlı grafika və subyektiv oyun xüsusiyyətləri ilə oyunculara atəşin vahid imtahan təqdim edir.
  • Oyuncular, Pin Up Qumar’da rahatlıqla oynaya və Pin Up Aviator kimi oyunların keyfini çıxara bilərlər.
  • Bu, oyunun heyranlığını artırır və oyuncuları ən da cəlb edir.

Rəyimiz vasitəsilə kazinon dünyasını axtarmaq və cazibədar bonuslar şəklində üstüörtülü xəzinələri aşkar görmək üçün səyahətə çıxın. Etibarlı kazino reytinqimizi izləyərək, onlayn kazinoların ətraflı seçimi ilə gəzə və təhlükəsizlik hindistan pulu manat və ümidlilik üçün vahid nüfuz qazananları seçə bilərsiniz. Pin Up Aviator, Pin Up Qumar’nun bir hissəsi olan vahid çevrimiçi qumar təcrübəsidir.

Pin Up Formal Veb-saytı – Imkanların Icmalı

Bu, oyunun heyranlığını artırır və oyuncuları daha da cəlb edir. Pin Up Aviator, Pin Up Qumar’nun güvənilir vahid oyun platformasında təqdim edilən bir oyun seçimidir. Bundan əlavə, oyunun ədalətli vahid şəkildə oynandığını aramaq üçün özbaşina auditlər həyata keçirilir. Oyuncular, Pin Up Qumar’da rahatlıqla oynaya və Pin Up Aviator kimi oyunların keyfini çıxara bilərlər.

  • Rəyimiz vasitəsilə kazinon dünyasını axtarmaq və cazibədar bonuslar şəklində incə xəzinələri aydın etmək üçün səyahətə çıxın.
  • Bu seçimlər təyyarənin bəlli vahid məsafəyə uçmasını, bəlli bir sürətə çatmasını və ya bəlli vahid hündürlüyə çıxmasını tələb edən seçimləri əhatə edir.
  • Oyuncular, oyun zamanı təyyarənin mövqeyini və digər oyuncuların bahislərini obrazli görə bilirlər.
  • Bundan izafi, oyunun adil bir şəkildə oynandığını yoxlamaq ötrü müstəqil auditlər həyata keçirilir.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top