Tests: Don't declare nested named function in Tests_Interactivity_API_wpInteractivityAPIFunctions.

Once the `test_process_directives_when_block_is_filtered()` method has run, the named `test_render_block_data()` function declared nested within becomes part of the global namespace, which could cause problems for other tests.

Quite apart from the fact that the name starting with `test_`  is confusing (as methods prefixed with `test_` are supposed to be test methods to be run by PHPUnit).

Using a closure for this callback fixes the issue. Declared as `static` for a micro-optimization.

Follow-up to [57826].

Props jrf, hellofromTonya.
See #61530.

git-svn-id: https://develop.svn.wordpress.org/trunk@58738 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Tonya Mork 2024-07-16 18:20:43 +00:00
parent bd61b0bf23
commit a6d5694cde

View File

@ -332,16 +332,18 @@ class Tests_Interactivity_API_wpInteractivityAPIFunctions extends WP_UnitTestCas
),
)
);
function test_render_block_data( $parsed_block ) {
$test_render_block_data = static function ( $parsed_block ) {
$parsed_block['testKey'] = true;
return $parsed_block;
}
add_filter( 'render_block_data', 'test_render_block_data' );
};
add_filter( 'render_block_data', $test_render_block_data );
$post_content = '<!-- wp:test/custom-directive-block /-->';
$processed_content = do_blocks( $post_content );
$processor = new WP_HTML_Tag_Processor( $processed_content );
$processor->next_tag( array( 'data-wp-interactive' => 'nameSpace' ) );
remove_filter( 'render_block_data', 'test_render_block_data' );
remove_filter( 'render_block_data', $test_render_block_data );
unregister_block_type( 'test/custom-directive-block' );
$this->assertSame( 'test', $processor->get_attribute( 'value' ) );
}