Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Block bindings: Expose sources in the editor settings to consume them in the client #7020

Closed
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Register sources in unit test
SantosGuillamot committed Jul 22, 2024
commit 2b2bed58356bdfa66e3e7e8682c28d1caa2fcb1e
48 changes: 26 additions & 22 deletions tests/phpunit/tests/blocks/editor.php
Original file line number Diff line number Diff line change
@@ -725,27 +725,31 @@ public function data_block_editor_rest_api_preload_adds_missing_leading_slash()
* @ticket 61641
*/
public function test_get_block_editor_settings_block_bindings_sources() {
$block_editor_context = new WP_Block_Editor_Context();
$settings = get_block_editor_settings( array(), $block_editor_context );
$registered_block_bindings_sources = get_all_registered_block_bindings_sources();

foreach ( $registered_block_bindings_sources as $name => $properties ) {
// Check all the registered sources are exposed.
$this->assertArrayHasKey( $name, $settings['blockBindingsSources'] );

// Check only the expected properties are included, and they have the proper value.
$expected_properties = array(
'label' => $properties->label,
);
// Add optional properties if they are defined.
if ( ! empty( $properties->uses_context ) ) {
$expected_properties['usesContext'] = $properties->uses_context;
}

$this->assertSameSets(
$expected_properties,
$settings['blockBindingsSources'][ $name ]
);
}
$block_editor_context = new WP_Block_Editor_Context();
register_block_bindings_source(
'test/source-one',
array(
'label' => 'Source One',
'get_value_callback' => function () {},
'uses_context' => array( 'postId' ),
)
);
register_block_bindings_source(
'test/source-two',
array(
'label' => 'Source Two',
'get_value_callback' => function () {},
)
);
$settings = get_block_editor_settings( array(), $block_editor_context );
$exposed_sources = $settings['blockBindingsSources'];
SantosGuillamot marked this conversation as resolved.
Show resolved Hide resolved
// It is expected to have 4 sources: the 2 registered sources in the test, and the 2 core sources.
$this->assertCount( 4, $exposed_sources );
$source_one = $exposed_sources['test/source-one'];
$this->assertSame( 'Source One', $source_one['label'] );
$this->assertSameSets( array( 'postId' ), $source_one['usesContext'] );
$source_two = $exposed_sources['test/source-two'];
$this->assertSame( 'Source Two', $source_two['label'] );
$this->assertArrayNotHasKey( 'usesContext', $source_two );
}
}

Unchanged files with check annotations Beta

await expect(
page,
'should redirect to the installation page'
).toHaveURL( /wp-admin\/install\.php$/ );

Check failure on line 40 in tests/e2e/specs/install.test.js

GitHub Actions / Test with SCRIPT_DEBUG disabled / Run E2E tests

[chromium] › install.test.js:34:6 › WordPress installation process › should install WordPress with pre-existing database credentials

1) [chromium] › install.test.js:34:6 › WordPress installation process › should install WordPress with pre-existing database credentials Error: should redirect to the installation page Timed out 5000ms waiting for expect(locator).toHaveURL(expected) Locator: locator(':root') Expected pattern: /wp-admin\/install\.php$/ Received string: "http://localhost:8889/" Call log: - should redirect to the installation page with timeout 5000ms - waiting for locator(':root') - locator resolved to <html lang="en-US">…</html> - unexpected value "http://localhost:8889/" - locator resolved to <html lang="en-US">…</html> - unexpected value "http://localhost:8889/" - locator resolved to <html lang="en-US">…</html> - unexpected value "http://localhost:8889/" - locator resolved to <html lang="en-US">…</html> - unexpected value "http://localhost:8889/" - locator resolved to <html lang="en-US">…</html> - unexpected value "http://localhost:8889/" - locator resolved to <html lang="en-US">…</html> - unexpected value "http://localhost:8889/" - locator resolved to <html lang="en-US">…</html> - unexpected value "http://localhost:8889/" - locator resolved to <html lang="en-US">…</html> - unexpected value "http://localhost:8889/" - locator resolved to <html lang="en-US">…</html> - unexpected value "http://localhost:8889/" 38 | page, 39 | 'should redirect to the installation page' > 40 | ).toHaveURL( /wp-admin\/install\.php$/ ); | ^ 41 | 42 | await expect( 43 | page.getByText( /WordPress database error/ ), at /home/runner/work/wordpress-develop/wordpress-develop/tests/e2e/specs/install.test.js:40:5

Check failure on line 40 in tests/e2e/specs/install.test.js

GitHub Actions / Test with SCRIPT_DEBUG enabled / Run E2E tests

[chromium] › install.test.js:34:6 › WordPress installation process › should install WordPress with pre-existing database credentials

1) [chromium] › install.test.js:34:6 › WordPress installation process › should install WordPress with pre-existing database credentials Error: should redirect to the installation page Timed out 5000ms waiting for expect(locator).toHaveURL(expected) Locator: locator(':root') Expected pattern: /wp-admin\/install\.php$/ Received string: "http://localhost:8889/" Call log: - should redirect to the installation page with timeout 5000ms - waiting for locator(':root') - locator resolved to <html lang="en-US">…</html> - unexpected value "http://localhost:8889/" - locator resolved to <html lang="en-US">…</html> - unexpected value "http://localhost:8889/" - locator resolved to <html lang="en-US">…</html> - unexpected value "http://localhost:8889/" - locator resolved to <html lang="en-US">…</html> - unexpected value "http://localhost:8889/" - locator resolved to <html lang="en-US">…</html> - unexpected value "http://localhost:8889/" - locator resolved to <html lang="en-US">…</html> - unexpected value "http://localhost:8889/" - locator resolved to <html lang="en-US">…</html> - unexpected value "http://localhost:8889/" - locator resolved to <html lang="en-US">…</html> - unexpected value "http://localhost:8889/" - locator resolved to <html lang="en-US">…</html> - unexpected value "http://localhost:8889/" 38 | page, 39 | 'should redirect to the installation page' > 40 | ).toHaveURL( /wp-admin\/install\.php$/ ); | ^ 41 | 42 | await expect( 43 | page.getByText( /WordPress database error/ ), at /home/runner/work/wordpress-develop/wordpress-develop/tests/e2e/specs/install.test.js:40:5
await expect(
page.getByText( /WordPress database error/ ),
}
async create(applicationName = TEST_APPLICATION_NAME) {
await this.admin.visitAdminPage( '/profile.php' );

Check failure on line 110 in tests/e2e/specs/profile/applications-passwords.test.js

GitHub Actions / Test with SCRIPT_DEBUG disabled / Run E2E tests

[chromium] › profile/applications-passwords.test.js:19:6 › Manage applications passwords › should correctly create a new application password

2) [chromium] › profile/applications-passwords.test.js:19:6 › Manage applications passwords › should correctly create a new application password Error: Not logged in 108 | 109 | async create(applicationName = TEST_APPLICATION_NAME) { > 110 | await this.admin.visitAdminPage( '/profile.php' ); | ^ 111 | 112 | const newPasswordField = this.page.getByRole( 'textbox', { name: 'New Application Password Name' } ); 113 | await expect( newPasswordField ).toBeVisible(); at Admin.visitAdminPage (/home/runner/work/wordpress-develop/wordpress-develop/node_modules/@wordpress/e2e-test-utils-playwright/src/admin/visit-admin-page.ts:36:9) at ApplicationPasswords.create (/home/runner/work/wordpress-develop/wordpress-develop/tests/e2e/specs/profile/applications-passwords.test.js:110:3) at /home/runner/work/wordpress-develop/wordpress-develop/tests/e2e/specs/profile/applications-passwords.test.js:23:3

Check failure on line 110 in tests/e2e/specs/profile/applications-passwords.test.js

GitHub Actions / Test with SCRIPT_DEBUG disabled / Run E2E tests

[chromium] › profile/applications-passwords.test.js:19:6 › Manage applications passwords › should correctly create a new application password

2) [chromium] › profile/applications-passwords.test.js:19:6 › Manage applications passwords › should correctly create a new application password Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: Not logged in 108 | 109 | async create(applicationName = TEST_APPLICATION_NAME) { > 110 | await this.admin.visitAdminPage( '/profile.php' ); | ^ 111 | 112 | const newPasswordField = this.page.getByRole( 'textbox', { name: 'New Application Password Name' } ); 113 | await expect( newPasswordField ).toBeVisible(); at Admin.visitAdminPage (/home/runner/work/wordpress-develop/wordpress-develop/node_modules/@wordpress/e2e-test-utils-playwright/src/admin/visit-admin-page.ts:36:9) at ApplicationPasswords.create (/home/runner/work/wordpress-develop/wordpress-develop/tests/e2e/specs/profile/applications-passwords.test.js:110:3) at /home/runner/work/wordpress-develop/wordpress-develop/tests/e2e/specs/profile/applications-passwords.test.js:23:3

Check failure on line 110 in tests/e2e/specs/profile/applications-passwords.test.js

GitHub Actions / Test with SCRIPT_DEBUG enabled / Run E2E tests

[chromium] › profile/applications-passwords.test.js:19:6 › Manage applications passwords › should correctly create a new application password

2) [chromium] › profile/applications-passwords.test.js:19:6 › Manage applications passwords › should correctly create a new application password Error: Not logged in 108 | 109 | async create(applicationName = TEST_APPLICATION_NAME) { > 110 | await this.admin.visitAdminPage( '/profile.php' ); | ^ 111 | 112 | const newPasswordField = this.page.getByRole( 'textbox', { name: 'New Application Password Name' } ); 113 | await expect( newPasswordField ).toBeVisible(); at Admin.visitAdminPage (/home/runner/work/wordpress-develop/wordpress-develop/node_modules/@wordpress/e2e-test-utils-playwright/src/admin/visit-admin-page.ts:36:9) at ApplicationPasswords.create (/home/runner/work/wordpress-develop/wordpress-develop/tests/e2e/specs/profile/applications-passwords.test.js:110:3) at /home/runner/work/wordpress-develop/wordpress-develop/tests/e2e/specs/profile/applications-passwords.test.js:23:3

Check failure on line 110 in tests/e2e/specs/profile/applications-passwords.test.js

GitHub Actions / Test with SCRIPT_DEBUG enabled / Run E2E tests

[chromium] › profile/applications-passwords.test.js:19:6 › Manage applications passwords › should correctly create a new application password

2) [chromium] › profile/applications-passwords.test.js:19:6 › Manage applications passwords › should correctly create a new application password Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: Not logged in 108 | 109 | async create(applicationName = TEST_APPLICATION_NAME) { > 110 | await this.admin.visitAdminPage( '/profile.php' ); | ^ 111 | 112 | const newPasswordField = this.page.getByRole( 'textbox', { name: 'New Application Password Name' } ); 113 | await expect( newPasswordField ).toBeVisible(); at Admin.visitAdminPage (/home/runner/work/wordpress-develop/wordpress-develop/node_modules/@wordpress/e2e-test-utils-playwright/src/admin/visit-admin-page.ts:36:9) at ApplicationPasswords.create (/home/runner/work/wordpress-develop/wordpress-develop/tests/e2e/specs/profile/applications-passwords.test.js:110:3) at /home/runner/work/wordpress-develop/wordpress-develop/tests/e2e/specs/profile/applications-passwords.test.js:23:3
const newPasswordField = this.page.getByRole( 'textbox', { name: 'New Application Password Name' } );
await expect( newPasswordField ).toBeVisible();