Make tests pass again on Drupal 11.3: block config schema changed, `ComponentInputsEvolutionTest` needs to handle <=11.2 vs >11.2 differently
## Problem/Motivation The nightly pipeline on `1.x` ([pipeline 855595](https://git.drupalcode.org/project/canvas/-/pipelines/855595)) fails the PHPUnit kernel jobs on Drupal core 11.3 (`DRUPAL_CORE_NEXT_MINOR=11.3.10`). Two kernel test classes fail only on 11.3; they pass on 11.2. ### Failing jobs (11.3, all databases) - `phpunit (11.3 *): [PHPUnit-Kernel, 1, ...]` — `ComponentInputsEvolutionTest` - `phpunit (11.3 *): [PHPUnit-Kernel, 2, ...]` — `HostEntityPropSourceMatcherTest` ## Steps to reproduce ```bash composer require "drupal/core-recommended:~11.3.0" "drupal/core-dev:~11.3.0" --with-all-dependencies -W vendor/bin/phpunit web/modules/contrib/canvas/tests/src/Kernel/ShapeMatcher/HostEntityPropSourceMatcherTest.php vendor/bin/phpunit web/modules/contrib/canvas/tests/src/Kernel/Plugin/Canvas/ComponentSource/ComponentInputsEvolutionTest.php ``` ## Root cause **1. `HostEntityPropSourceMatcherTest` — relocated body field storage.** Drupal 11.3 moves the default `field.storage.node.body` config out of the `node` module into the new deprecated, hidden submodule `node_storage_body_field`. The test module `canvas_test_code_components_content_entity_ref` ships a `field.field.node.news_item.body` instance that depends on that storage. On 11.3 the storage no longer exists at `installConfig()` time: ``` Drupal\Core\Field\FieldException: Attempted to create, modify or delete an instance of field with name body on entity type node when the field storage does not exist. ``` **2. `ComponentInputsEvolutionTest::testBrokenBlockPluginUpdate` — stale version hash.** Component version hashes derive from the `block.settings.*` config schema, which changed between 11.2 and 11.3 (`label_display`). The 11.3 branch of the hardcoded `$active_version` held a stale value (`ecbfb3dfb7ce5717`); the runtime now produces `0b5af0d270d99618` — the same unmodified-block hash `testInvalidBlockPluginUpdate` already asserts. ## Proposed resolution MR !1261: - `HostEntityPropSourceMatcherTest`: install the body field storage from whichever source ships it — `node` on 11.2, `node_storage_body_field` on 11.3: ```php if (\Drupal::service('extension.list.module')->exists('node_storage_body_field')) { $this->enableModules(['node_storage_body_field']); $this->installConfig(['node_storage_body_field']); } ``` - `ComponentInputsEvolutionTest`: align the 11.3 `$active_version` with the actual unmodified-block hash `0b5af0d270d99618`. ## Out of scope These reds are not 11.3 regressions; they reproduce on 11.2 with the same database engines and are unrelated to this change: - `ContentWithComponentTreeTmgmtUiTest` (Functional) — fails on `mysql`/`pgsql`, passes on `mariadb`/`sqlite`. - `ComponentTreeFieldSymmetricalTranslationSynchronizerTest` (Kernel split 2, `test` data sets `bundle field`/`base field`) — fails on `mysql`/`pgsql`/`mariadb` (`Failed asserting that two arrays are identical`, a result-ordering difference), passes on `sqlite`. - `phpstan-is-up-to-date` — a dependency-freshness check, not core-version specific. Tracked separately. ## Remaining tasks - [ ] Review MR !1261 - [ ] Confirm 11.3 kernel jobs pass on all four databases
issue