@wordpress/upload-media
Version:
Core media upload logic.
106 lines (97 loc) • 2.16 kB
text/typescript
/**
* 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 );
} );
} );
} );