56 lines
1.3 KiB
JavaScript
56 lines
1.3 KiB
JavaScript
expect.extend( {
|
||
async toRenderBlock( page, block = {} ) {
|
||
const gutenbergNotFoundError = ( await page.content() ).match(
|
||
/Your site doesn’t include support for/gi
|
||
);
|
||
if ( gutenbergNotFoundError !== null ) {
|
||
return {
|
||
message: () =>
|
||
`the ${ block.name ||
|
||
'block' } is not registered and not loading in the editor.`,
|
||
pass: false,
|
||
};
|
||
}
|
||
|
||
const gutenbergValidationError = ( await page.content() ).match(
|
||
/This block contains unexpected or invalid content/gi
|
||
);
|
||
if ( gutenbergValidationError !== null ) {
|
||
return {
|
||
message: () =>
|
||
`the ${ block.name ||
|
||
'block' } had a validation error while trying to render.`,
|
||
pass: false,
|
||
};
|
||
}
|
||
|
||
const errorBoundary = ( await page.content() ).match(
|
||
/There was an error whilst rendering/gi
|
||
);
|
||
if ( errorBoundary !== null ) {
|
||
return {
|
||
message: () =>
|
||
`the ${ block.name ||
|
||
'block' } had a js error that was caught by our errorBoundary.`,
|
||
pass: false,
|
||
};
|
||
}
|
||
|
||
const blockElement = await page.$( block.class );
|
||
if ( blockElement === null ) {
|
||
return {
|
||
message: () =>
|
||
`the ${ block.name || 'block' } with classname \`${
|
||
block.class
|
||
}\` did not render.`,
|
||
pass: false,
|
||
};
|
||
}
|
||
|
||
return {
|
||
message: () => `expected block to render without breaking.`,
|
||
pass: true,
|
||
};
|
||
},
|
||
} );
|