From d6c27cf533ce7a0350be39442f14f014164af3d2 Mon Sep 17 00:00:00 2001 From: George Mamadashvili Date: Sun, 14 Jul 2024 11:53:10 +0400 Subject: [PATCH] Fix unit tests --- .../src/block/test/edit.native.js | 8 +++-- .../src/image/test/edit.native.js | 1 + .../src/hooks/test/use-entity-record.js | 8 +++-- packages/core-data/src/test/resolvers.js | 35 +++++++++++-------- packages/editor/src/store/test/actions.js | 12 +++++-- 5 files changed, 41 insertions(+), 23 deletions(-) diff --git a/packages/block-library/src/block/test/edit.native.js b/packages/block-library/src/block/test/edit.native.js index f184fa164ce71b..46c6d39034f8b0 100644 --- a/packages/block-library/src/block/test/edit.native.js +++ b/packages/block-library/src/block/test/edit.native.js @@ -158,7 +158,9 @@ describe( 'Synced patterns', () => { if ( path.startsWith( endpoint ) ) { response = getMockedReusableBlock( id ); } - return Promise.resolve( response ); + return Promise.resolve( { + json: () => Promise.resolve( response ), + } ); } ); const screen = await initializeEditor( { @@ -229,7 +231,9 @@ describe( 'Synced patterns', () => { response.content.raw = `
`; - return Promise.resolve( response ); + return Promise.resolve( { + json: () => Promise.resolve( response ), + } ); } ); const screen = await initializeEditor( { diff --git a/packages/block-library/src/image/test/edit.native.js b/packages/block-library/src/image/test/edit.native.js index 7a0fd15c854470..5cf653321b2be0 100644 --- a/packages/block-library/src/image/test/edit.native.js +++ b/packages/block-library/src/image/test/edit.native.js @@ -48,6 +48,7 @@ function mockGetMedia( media ) { const FETCH_MEDIA = { request: { path: `/wp/v2/media/1?context=edit`, + parse: false, }, response: { source_url: 'https://cldup.com/cXyG__fTLN.jpg', diff --git a/packages/core-data/src/hooks/test/use-entity-record.js b/packages/core-data/src/hooks/test/use-entity-record.js index 1bfb13f38ac156..d83957abe06a1b 100644 --- a/packages/core-data/src/hooks/test/use-entity-record.js +++ b/packages/core-data/src/hooks/test/use-entity-record.js @@ -27,10 +27,11 @@ describe( 'useEntityRecord', () => { } ); const TEST_RECORD = { id: 1, hello: 'world' }; + const TEST_RECORD_RESPONSE = { json: () => Promise.resolve( TEST_RECORD ) }; it( 'resolves the entity record when missing from the state', async () => { // Provide response - triggerFetch.mockImplementation( () => TEST_RECORD ); + triggerFetch.mockImplementation( () => TEST_RECORD_RESPONSE ); let data; const TestComponent = () => { @@ -60,6 +61,7 @@ describe( 'useEntityRecord', () => { await waitFor( () => expect( triggerFetch ).toHaveBeenCalledWith( { path: '/wp/v2/widgets/1?context=edit', + parse: false, } ) ); @@ -79,7 +81,7 @@ describe( 'useEntityRecord', () => { it( 'applies edits to the entity record', async () => { // Provide response - triggerFetch.mockImplementation( () => TEST_RECORD ); + triggerFetch.mockImplementation( () => TEST_RECORD_RESPONSE ); let widget; const TestComponent = () => { @@ -119,7 +121,7 @@ describe( 'useEntityRecord', () => { } ); it( 'does not resolve entity record when disabled via options', async () => { - triggerFetch.mockImplementation( () => TEST_RECORD ); + triggerFetch.mockImplementation( () => TEST_RECORD_RESPONSE ); let data; const TestComponent = ( { enabled } ) => { diff --git a/packages/core-data/src/test/resolvers.js b/packages/core-data/src/test/resolvers.js index 35c3f10b89e076..fa0d53d79aa7d8 100644 --- a/packages/core-data/src/test/resolvers.js +++ b/packages/core-data/src/test/resolvers.js @@ -19,6 +19,7 @@ import { describe( 'getEntityRecord', () => { const POST_TYPE = { slug: 'post' }; + const POST_TYPE_RESPONSE = { json: () => Promise.resolve( POST_TYPE ) }; const ENTITIES = [ { name: 'postType', @@ -27,28 +28,37 @@ describe( 'getEntityRecord', () => { baseURLParams: { context: 'edit' }, }, ]; + const registry = { batch: ( callback ) => callback() }; + let dispatch; beforeEach( async () => { - triggerFetch.mockReset(); - } ); - - it( 'yields with requested post type', async () => { - const dispatch = Object.assign( jest.fn(), { + dispatch = Object.assign( jest.fn(), { receiveEntityRecords: jest.fn(), __unstableAcquireStoreLock: jest.fn(), __unstableReleaseStoreLock: jest.fn(), + receiveUserPermission: jest.fn(), + finishResolution: jest.fn(), } ); + triggerFetch.mockReset(); + } ); + + it( 'yields with requested post type', async () => { // Provide entities dispatch.mockReturnValueOnce( ENTITIES ); // Provide response - triggerFetch.mockImplementation( () => POST_TYPE ); + triggerFetch.mockImplementation( () => POST_TYPE_RESPONSE ); - await getEntityRecord( 'root', 'postType', 'post' )( { dispatch } ); + await getEntityRecord( + 'root', + 'postType', + 'post' + )( { dispatch, registry } ); // Fetch request should have been issued. expect( triggerFetch ).toHaveBeenCalledWith( { path: '/wp/v2/types/post?context=edit', + parse: false, } ); // The record should have been received. @@ -75,24 +85,18 @@ describe( 'getEntityRecord', () => { const select = { hasEntityRecords: jest.fn( () => {} ), }; - - const dispatch = Object.assign( jest.fn(), { - receiveEntityRecords: jest.fn(), - __unstableAcquireStoreLock: jest.fn(), - __unstableReleaseStoreLock: jest.fn(), - } ); // Provide entities dispatch.mockReturnValueOnce( ENTITIES ); // Provide response - triggerFetch.mockImplementation( () => POST_TYPE ); + triggerFetch.mockImplementation( () => POST_TYPE_RESPONSE ); await getEntityRecord( 'root', 'postType', 'post', query - )( { dispatch, select } ); + )( { dispatch, select, registry } ); // Check resolution cache for an existing entity that fulfills the request with query. expect( select.hasEntityRecords ).toHaveBeenCalledWith( @@ -104,6 +108,7 @@ describe( 'getEntityRecord', () => { // Trigger apiFetch, test that the query is present in the url. expect( triggerFetch ).toHaveBeenCalledWith( { path: '/wp/v2/types/post?context=view&_envelope=1', + parse: false, } ); // The record should have been received. diff --git a/packages/editor/src/store/test/actions.js b/packages/editor/src/store/test/actions.js index a2e683cc23cc99..fae30c6fc271ec 100644 --- a/packages/editor/src/store/test/actions.js +++ b/packages/editor/src/store/test/actions.js @@ -90,7 +90,9 @@ describe( 'Post actions', () => { method === 'GET' && path.startsWith( '/wp/v2/types/post' ) ) { - return {}; + return { + json: () => Promise.resolve( {} ), + }; } throw { @@ -178,7 +180,9 @@ describe( 'Post actions', () => { path.startsWith( '/wp/v2/types/post' ) || path.startsWith( `/wp/v2/posts/${ postId }` ) ) { - return {}; + return { + json: () => Promise.resolve( {} ), + }; } } @@ -262,7 +266,9 @@ describe( 'Post actions', () => { method === 'GET' && path.startsWith( '/wp/v2/types/post' ) ) { - return {}; + return { + json: () => Promise.resolve( {} ), + }; } throw {