UNPKG

@wordpress/upload-media

Version:
106 lines (97 loc) 2.16 kB
/** * Internal dependencies */ import { getItems, isUploading, isUploadingById, isUploadingByUrl, } from '../selectors'; import { ItemStatus, type QueueItem, type State } from '../types'; describe( 'selectors', () => { describe( 'getItems', () => { it( 'should return empty array by default', () => { const state: State = { queue: [], queueStatus: 'paused', blobUrls: {}, settings: { mediaUpload: jest.fn(), }, }; expect( getItems( state ) ).toHaveLength( 0 ); } ); } ); describe( 'isUploading', () => { it( 'should return true if there are items in the pipeline', () => { const state: State = { queue: [ { status: ItemStatus.Processing, }, { status: ItemStatus.Processing, }, { status: ItemStatus.Paused, }, ] as QueueItem[], queueStatus: 'paused', blobUrls: {}, settings: { mediaUpload: jest.fn(), }, }; expect( isUploading( state ) ).toBe( true ); } ); } ); describe( 'isUploadingByUrl', () => { it( 'should return true if there are items in the pipeline', () => { const state: State = { queue: [ { status: ItemStatus.Processing, attachment: { url: 'https://example.com/one.jpeg', }, }, { status: ItemStatus.Processing, }, ] as QueueItem[], queueStatus: 'paused', blobUrls: {}, settings: { mediaUpload: jest.fn(), }, }; expect( isUploadingByUrl( state, 'https://example.com/one.jpeg' ) ).toBe( true ); expect( isUploadingByUrl( state, 'https://example.com/three.jpeg' ) ).toBe( false ); } ); } ); describe( 'isUploadingById', () => { it( 'should return true if there are items in the pipeline', () => { const state: State = { queue: [ { status: ItemStatus.Processing, attachment: { id: 123, }, }, ] as QueueItem[], queueStatus: 'paused', blobUrls: {}, settings: { mediaUpload: jest.fn(), }, }; expect( isUploadingById( state, 123 ) ).toBe( true ); expect( isUploadingById( state, 789 ) ).toBe( false ); } ); } ); } );