Skip to content

[#893] Renamed the backend drivers to backends so their names stop colliding with Mink's. - #896

Merged
AlexSkrypnyk merged 4 commits into
4.xfrom
feature/893-rename-drivers
Oct 2, 2026
Merged

AlexSkrypnyk merged 4 commits into
4.xfrom
feature/893-rename-drivers

Conversation

@AlexSkrypnyk

@AlexSkrypnyk AlexSkrypnyk commented Oct 1, 2026 •

Copy link
Copy Markdown
Member

Closes #893

Summary

Every name this package owns for the Drupal, Drush and Blackbox backends now says "backend": src/Driver is src/Backend, DriverInterface is BackendInterface, WebRawContext::driverFor() is backendFor(), the drivers key under behat_steps is backends, and the @driver:NAME tag is @backend:NAME. "Driver" in one of our identifiers now only ever means Mink's browser driver, which steps reach through browserDriverFor().

3 of our names collided with Mink's: DrevOps\BehatSteps\Driver\DriverInterface with Behat\Mink\Driver\DriverInterface, our UnsupportedDriverActionException with Mink's, and $this->getDriver('drupal') with $this->getSession()->getDriver(). Any file touching both kinds had to alias one side, and a reader had to know the "a bare driver means the backend" rule from CONTRIBUTING.md to tell the 2 getDriver() calls apart. Each of these is a public name, a configuration key or a tag, so they had to change before 4.0 ships and semver covers them.

After merge, a drivers key fails the container build and a @driver: tag fails its scenario at the start, each with a message naming its replacement, and MIGRATION.md maps every renamed class, method, constant, service ID and parameter. SubDriverFinderInterface and DrupalDriver::getSubDriverPaths() are removed rather than renamed. No step text changes, no capability interface is renamed, and the browser side keeps its names: browserDriverFor(), browserDriverHas(), BrowserAdapterBase and BrowserCapabilityResolver.

Before / After

BEFORE - our backend and Mink's driver share the word "driver"

  ours                                    Mink's
  --------------------------------------  ------------------------------------
  Driver\DriverInterface              <=> Driver\DriverInterface
  Driver\Exception\                   <=> Exception\
    UnsupportedDriverActionException        UnsupportedDriverActionException
  $this->getDriver('drupal')          <=> $this->getSession()->getDriver()
  'drivers' key, @driver:NAME tag

AFTER - each kind has a word of its own

  ours: backends                          Mink's: browser drivers
  --------------------------------------  ------------------------------------
  Backend\BackendInterface                Driver\DriverInterface
  Backend\Exception\                      Exception\
    UnsupportedBackendActionException       UnsupportedDriverActionException
  $this->getBackend('drupal')             $this->getSession()->getDriver()
  'backends' key, @backend:NAME tag

  'drivers' key  ---> container build fails, naming 'backends'
  @driver:NAME   ---> scenario fails at its start, naming @backend:NAME

Changes

Backend layer (src/Backend, formerly src/Driver)

  • Every class moved from DrevOps\BehatSteps\Driver to DrevOps\BehatSteps\Backend. DriverInterface, DrupalDriver, DrushDriver, BlackboxDriver and their interfaces are now BackendInterface, DrupalBackend, DrushBackend, BlackboxBackend and theirs. The capability interfaces, Core, the field handlers, EntityStub and the creation aliases keep their names.
  • UnsupportedDriverActionException is now UnsupportedBackendActionException, and the base exception's getDriver() is getBackend().
  • SubDriverFinderInterface and DrupalBackend::getSubDriverPaths() are removed. They served the Drupal Extension's subcontext discovery, which this package doesn't do, and nothing called them.

Integration layer (src/Behat)

  • DriverRegistry, DriverAwareInterface, DriverAwareInitializer, DriverListener and DriverPass are now BackendRegistry, BackendAwareInterface, BackendAwareInitializer, BackendListener and BackendPass, with their methods renamed to match (getBackendFor(), setScenarioBackends(), registerBackend() and so on).
  • BehatStepsExtension reads a backends key and loads config/backends/*.yml. The service IDs and parameters move from behat_steps.driver* to behat_steps.backend*, and the service tag from behat_steps.driver to behat_steps.backend.
  • BehatStepsExtension::rejectRenamedKeys() fails a drivers key from a beforeNormalization() hook. The tree rejects an undeclared root key before load() runs, so the existing rejectMovedKeys() would never see it.
  • BackendListener fails a scenario whose own tags or whose feature's tags carry @driver:NAME, naming @backend:NAME.
  • Prerequisite::capability() now describes a prerequisite as "a backend in the scenario's list provides ...", and the failure messages say "backend" wherever they said "driver".

Contexts and traits

  • WebRawContext exposes backendFor(), getBackend(), getBackendRegistry() and the protected anyBackendFor().
  • Step and helper traits resolve their capabilities through backendFor(). ContentTrait, EmailTrait and SearchApiTrait check whether an optional module is enabled through anyBackendFor(), which reuses a backend the scenario already reached. DrushTrait::drushGetDriver() is now drushGetBackend().

Tests and fixtures

  • Tests moved to tests/phpunit/src/Unit/Backend and tests/phpunit/src/Kernel/Backend, fixtures to tests/phpunit/fixtures/backend, and the driver_field_test fixture module in both Drupal fixtures is now backend_field_test.
  • New unit tests in BehatStepsExtensionTest and BackendListenerTest cover both rejections, and 2 new behatcli.feature scenarios prove a real nested run fails on a @driver: tag and on a drivers key.
  • Feature files use @backend:, driver.feature and driver_feature_tag.feature are now backend.feature and backend_feature_tag.feature, and the harness steps read a configuration listing the backend(s) :backends and the scenario backend order should be :order.
  • Tests that aliased Mink's DriverInterface or UnsupportedDriverActionException to avoid the collision import them under their own names.

Tooling

  • composer.json autoload-dev, scripts/lint-layers.php, the path-scoped ignore in phpstan.neon (src/Driver/* is now src/Backend/*, with no rule added or widened) and the docs.php tag registry follow the move.

Documentation

  • CONTRIBUTING.md's vocabulary section is now "Backend, browser driver and HTTP client".
  • MIGRATION.md has a new section mapping every renamed name, with before/after configuration in PHP, YAML and Gherkin. The earlier sections now use the final names, so a reader coming from 3.x or the Drupal Extension never meets drivers at all.
  • README.md, CLAUDE.md, docs/configuration.md, docs/http-clients.md, docs/usage.md and the update-architecture-docs skill are updated, STEPS.md and HELPERS.md are regenerated, and docs/architecture is re-traced: class-drivers.* is now class-backends.*.

Worth a second look

  1. Removing SubDriverFinderInterface instead of renaming it. A "sub-backend" would name a concept that doesn't exist here. MIGRATION.md points to getCore()->getExtensionPathList() for anyone who read those paths.
  2. Test-only names followed the rename too, including the fixture module and the harness step text.
  3. Old service IDs and *.class parameters aren't detected. Only the config key and the tag fail loudly, which is the scope the issue asked for. MIGRATION.md says a parameter under its old name is simply never read again.
  4. Import blocks were re-sorted where Backend now sorts ahead of Behat, each in the order its file already followed.

Testing

  • ahoy lint and ahoy lint-docs pass.
  • ahoy test-unit passes: 4,096 tests.
  • ahoy test-kernel passes: 125 tests.
  • ahoy test-bdd passes: 1,203 scenarios and 5,073 steps.

@coderabbitai

coderabbitai Bot commented Oct 1, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 324 files, which is 24 over the limit of 300.

To get a review, reduce the PR to 300 files or fewer by splitting it into smaller PRs or changing its base branch.

Usage-priced reviews support at most 300 files.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: ASSERTIVE

Plan: Team

Run ID: 5f6b08e2-1caa-4fce-ae3a-97e5a68a3def

📥 Commits

Reviewing files that changed from the base of the PR and between ed36757 and cc5c284.

⛔ Files ignored due to path filters (8)
  • docs/architecture/architecture.svg is excluded by !**/*.svg
  • docs/architecture/class-backends.svg is excluded by !**/*.svg
  • docs/architecture/class-context.svg is excluded by !**/*.svg
  • docs/architecture/class-drivers.svg is excluded by !**/*.svg
  • docs/architecture/class-traits.svg is excluded by !**/*.svg
  • docs/architecture/dataflow-step.svg is excluded by !**/*.svg
  • tests/phpunit/fixtures/backend/files/fixture.bin is excluded by !**/*.bin
  • tests/phpunit/fixtures/backend/files/sample.jpg is excluded by !**/*.jpg
📒 Files selected for processing (324)
  • .claude/skills/update-architecture-docs/SKILL.md
  • CLAUDE.md
  • CONTRIBUTING.md
  • HELPERS.md
  • MIGRATION.md
  • README.md
  • STEPS.md
  • behat.dist.php
  • behat.php
  • composer.json
  • docs.php
  • docs/architecture/README.md
  • docs/architecture/architecture.puml
  • docs/architecture/class-backends.puml
  • docs/architecture/class-context.puml
  • docs/architecture/class-traits.puml
  • docs/architecture/dataflow-step.puml
  • docs/configuration.md
  • docs/http-clients.md
  • docs/usage.md
  • phpstan.neon
  • phpunit.xml
  • scripts/lint-layers.php
  • src/Backend/Alias/CreationAliasInterface.php
  • src/Backend/Alias/CreationAliasRegistryTrait.php
  • src/Backend/Alias/PostCreateAliasInterface.php
  • src/Backend/Alias/PreCreateAliasInterface.php
  • src/Backend/Alias/RolesAlias.php
  • src/Backend/BackendInterface.php
  • src/Backend/BlackboxBackend.php
  • src/Backend/BlackboxBackendInterface.php
  • src/Backend/Capability/AuthenticationCapabilityInterface.php
  • src/Backend/Capability/BatchCapabilityInterface.php
  • src/Backend/Capability/BlockCapabilityInterface.php
  • src/Backend/Capability/CacheCapabilityInterface.php
  • src/Backend/Capability/ConfigCapabilityInterface.php
  • src/Backend/Capability/ContentCapabilityInterface.php
  • src/Backend/Capability/CoreCapabilityInterface.php
  • src/Backend/Capability/CreationAliasCapabilityInterface.php
  • src/Backend/Capability/CronCapabilityInterface.php
  • src/Backend/Capability/DrushCapabilityInterface.php
  • src/Backend/Capability/LanguageCapabilityInterface.php
  • src/Backend/Capability/MailCapabilityInterface.php
  • src/Backend/Capability/ModuleCapabilityInterface.php
  • src/Backend/Capability/RoleCapabilityInterface.php
  • src/Backend/Capability/StateCapabilityInterface.php
  • src/Backend/Capability/UserCapabilityInterface.php
  • src/Backend/Core/Alias/AuthorAlias.php
  • src/Backend/Core/Alias/ParentTermAlias.php
  • src/Backend/Core/Alias/VocabularyMachineNameAlias.php
  • src/Backend/Core/Core.php
  • src/Backend/Core/CoreInterface.php
  • src/Backend/Core/Field/AbstractHandler.php
  • src/Backend/Core/Field/AddressHandler.php
  • src/Backend/Core/Field/BooleanHandler.php
  • src/Backend/Core/Field/DateRecurHandler.php
  • src/Backend/Core/Field/DaterangeHandler.php
  • src/Backend/Core/Field/DatetimeHandler.php
  • src/Backend/Core/Field/DefaultHandler.php
  • src/Backend/Core/Field/EmbridgeAssetItemHandler.php
  • src/Backend/Core/Field/EntityReferenceHandler.php
  • src/Backend/Core/Field/EntityReferenceRevisionsHandler.php
  • src/Backend/Core/Field/FieldClassifier.php
  • src/Backend/Core/Field/FieldClassifierInterface.php
  • src/Backend/Core/Field/FieldHandlerInterface.php
  • src/Backend/Core/Field/FieldShapeClassifier.php
  • src/Backend/Core/Field/FieldShapeClassifierInterface.php
  • src/Backend/Core/Field/FileHandler.php
  • src/Backend/Core/Field/ImageHandler.php
  • src/Backend/Core/Field/LinkHandler.php
  • src/Backend/Core/Field/ListFloatHandler.php
  • src/Backend/Core/Field/ListHandlerBase.php
  • src/Backend/Core/Field/ListIntegerHandler.php
  • src/Backend/Core/Field/ListStringHandler.php
  • src/Backend/Core/Field/NameHandler.php
  • src/Backend/Core/Field/OgStandardReferenceHandler.php
  • src/Backend/Core/Field/Parser/EntityFieldParser.php
  • src/Backend/Core/Field/Parser/EntityFieldParserInterface.php
  • src/Backend/Core/Field/Parser/Exception/MultipleParseException.php
  • src/Backend/Core/Field/Parser/Exception/ParseException.php
  • src/Backend/Core/Field/README.md
  • src/Backend/Core/Field/ReferenceTarget.php
  • src/Backend/Core/Field/SmartdateHandler.php
  • src/Backend/Core/Field/SupportedImageHandler.php
  • src/Backend/Core/Field/TimeHandler.php
  • src/Backend/DrupalBackend.php
  • src/Backend/DrupalBackendInterface.php
  • src/Backend/Drush/DrushResult.php
  • src/Backend/DrushBackend.php
  • src/Backend/DrushBackendInterface.php
  • src/Backend/Entity/EntityStub.php
  • src/Backend/Entity/EntityStubInterface.php
  • src/Backend/Exception/BootstrapException.php
  • src/Backend/Exception/CreationAliasResolutionException.php
  • src/Backend/Exception/Exception.php
  • src/Backend/Exception/UnsupportedBackendActionException.php
  • src/Behat/Context/BackendAwareInterface.php
  • src/Behat/Context/Initializer/BackendAwareInitializer.php
  • src/Behat/Context/WebRawContext.php
  • src/Behat/Hook/Scope/BaseEntityScope.php
  • src/Behat/Hook/Scope/EntityScopeInterface.php
  • src/Behat/Listener/BackendListener.php
  • src/Behat/Listener/DriverListener.php
  • src/Behat/Manager/Authenticator.php
  • src/Behat/Manager/AuthenticatorInterface.php
  • src/Behat/Manager/BackendRegistry.php
  • src/Behat/Manager/BackendRegistryInterface.php
  • src/Behat/Manager/DriverRegistry.php
  • src/Behat/Manager/DriverRegistryInterface.php
  • src/Behat/Manager/ScenarioTagRegistry.php
  • src/Behat/Manager/UserRegistry.php
  • src/Behat/Manager/UserRegistryInterface.php
  • src/Behat/Mink/BrowserCapabilityResolver.php
  • src/Behat/ParametersTrait.php
  • src/Behat/Prerequisite/Prerequisite.php
  • src/Behat/ServiceContainer/BackendPass.php
  • src/Behat/ServiceContainer/BehatStepsExtension.php
  • src/Behat/ServiceContainer/config/backends/blackbox.yml
  • src/Behat/ServiceContainer/config/backends/drupal.yml
  • src/Behat/ServiceContainer/config/backends/drush.yml
  • src/Behat/ServiceContainer/config/drivers/blackbox.yml
  • src/Behat/ServiceContainer/config/drivers/drupal.yml
  • src/Behat/ServiceContainer/config/drivers/drush.yml
  • src/Behat/ServiceContainer/config/services.yml
  • src/Driver/BlackboxDriverInterface.php
  • src/Driver/DrupalDriverInterface.php
  • src/Driver/DrushDriverInterface.php
  • src/Driver/Exception/Exception.php
  • src/Driver/Exception/UnsupportedDriverActionException.php
  • src/Driver/SubDriverFinderInterface.php
  • src/Helper/Drupal/AuthTrait.php
  • src/Helper/Drupal/EntityLifecycleTrait.php
  • src/Helper/Drupal/FixtureFileTrait.php
  • src/Helper/Drupal/QueryTrait.php
  • src/Helper/Drupal/StaticCacheTrait.php
  • src/Steps/Drupal/BlockTrait.php
  • src/Steps/Drupal/CacheTrait.php
  • src/Steps/Drupal/ConfigTrait.php
  • src/Steps/Drupal/ContentBlockTrait.php
  • src/Steps/Drupal/ContentTrait.php
  • src/Steps/Drupal/DraggableviewsTrait.php
  • src/Steps/Drupal/DrushTrait.php
  • src/Steps/Drupal/EckTrait.php
  • src/Steps/Drupal/EmailTrait.php
  • src/Steps/Drupal/EntityTrait.php
  • src/Steps/Drupal/FileTrait.php
  • src/Steps/Drupal/LanguageTrait.php
  • src/Steps/Drupal/MediaTrait.php
  • src/Steps/Drupal/MenuTrait.php
  • src/Steps/Drupal/ModuleTrait.php
  • src/Steps/Drupal/ParagraphsTrait.php
  • src/Steps/Drupal/QueueTrait.php
  • src/Steps/Drupal/RedirectTrait.php
  • src/Steps/Drupal/SearchApiTrait.php
  • src/Steps/Drupal/StateTrait.php
  • src/Steps/Drupal/TaxonomyTrait.php
  • src/Steps/Drupal/TestmodeTrait.php
  • src/Steps/Drupal/TimeTrait.php
  • src/Steps/Drupal/UserTrait.php
  • src/Steps/Drupal/WatchdogTrait.php
  • src/Steps/Drupal/WebformTrait.php
  • src/Steps/Web/MappingTrait.php
  • src/Steps/Web/RandomTrait.php
  • tests/behat/bootstrap/BehatCliTrait.php
  • tests/behat/bootstrap/FeatureContextTrait.php
  • tests/behat/features/backend.feature
  • tests/behat/features/backend_feature_tag.feature
  • tests/behat/features/behatcli.feature
  • tests/behat/features/driver_feature_tag.feature
  • tests/behat/features/drupal_config.feature
  • tests/behat/features/drupal_module.feature
  • tests/behat/features/drupal_state.feature
  • tests/behat/features/drupal_watchdog.feature
  • tests/behat/fixtures_drupal/d11/web/modules/custom/backend_field_test/backend_field_test.info.yml
  • tests/behat/fixtures_drupal/d11/web/modules/custom/backend_field_test/src/Plugin/Field/FieldType/BackendTestReferenceItem.php
  • tests/behat/fixtures_drupal/d11/web/modules/custom/backend_field_test/src/Plugin/Field/FieldType/BackendTestScalarItem.php
  • tests/behat/fixtures_drupal/d11/web/modules/custom/driver_field_test/driver_field_test.info.yml
  • tests/behat/fixtures_drupal/d12/web/modules/custom/backend_field_test/backend_field_test.info.yml
  • tests/behat/fixtures_drupal/d12/web/modules/custom/backend_field_test/src/Plugin/Field/FieldType/BackendTestReferenceItem.php
  • tests/behat/fixtures_drupal/d12/web/modules/custom/backend_field_test/src/Plugin/Field/FieldType/BackendTestScalarItem.php
  • tests/behat/fixtures_drupal/d12/web/modules/custom/driver_field_test/driver_field_test.info.yml
  • tests/phpunit/fixtures/backend/ConsumerProject/Backend/ConsumerCore.php
  • tests/phpunit/fixtures/backend/ConsumerProject/Backend/Field/StringLongHandler.php
  • tests/phpunit/fixtures/backend/ConsumerProject/Backend/Field/TextLongHandler.php
  • tests/phpunit/fixtures/backend/Core99/Core.php
  • tests/phpunit/fixtures/backend/drupal-root/autoload.php
  • tests/phpunit/fixtures/backend/drupal-root/core/includes/bootstrap.inc
  • tests/phpunit/fixtures/backend/files/sample.txt
  • tests/phpunit/fixtures/docs/Web/DocumentedPrerequisitesFixture.php
  • tests/phpunit/fixtures/driver/ConsumerProject/Driver/ConsumerCore.php
  • tests/phpunit/src/DocsTest.php
  • tests/phpunit/src/Kernel/Backend/Core/CoreAuthenticationMethodsKernelTest.php
  • tests/phpunit/src/Kernel/Backend/Core/CoreBlockMethodsKernelTest.php
  • tests/phpunit/src/Kernel/Backend/Core/CoreCacheMethodsKernelTest.php
  • tests/phpunit/src/Kernel/Backend/Core/CoreConfigMethodsKernelTest.php
  • tests/phpunit/src/Kernel/Backend/Core/CoreEntityCreateCommerceKernelTest.php
  • tests/phpunit/src/Kernel/Backend/Core/CoreEntityCreateModerationStateKernelTest.php
  • tests/phpunit/src/Kernel/Backend/Core/CoreEntityMethodsKernelTest.php
  • tests/phpunit/src/Kernel/Backend/Core/CoreMailMethodsKernelTest.php
  • tests/phpunit/src/Kernel/Backend/Core/CoreNodeMethodsKernelTest.php
  • tests/phpunit/src/Kernel/Backend/Core/CoreSystemMethodsKernelTest.php
  • tests/phpunit/src/Kernel/Backend/Core/CoreTermMethodsKernelTest.php
  • tests/phpunit/src/Kernel/Backend/Core/CoreUserMethodsKernelTest.php
  • tests/phpunit/src/Kernel/Backend/Core/Field/AbstractHandlerFieldNotFoundKernelTest.php
  • tests/phpunit/src/Kernel/Backend/Core/Field/AddressHandlerKernelTest.php
  • tests/phpunit/src/Kernel/Backend/Core/Field/BooleanHandlerKernelTest.php
  • tests/phpunit/src/Kernel/Backend/Core/Field/CustomCoreKernelTest.php
  • tests/phpunit/src/Kernel/Backend/Core/Field/CustomModuleFieldKernelTest.php
  • tests/phpunit/src/Kernel/Backend/Core/Field/DateRecurHandlerKernelTest.php
  • tests/phpunit/src/Kernel/Backend/Core/Field/DaterangeHandlerKernelTest.php
  • tests/phpunit/src/Kernel/Backend/Core/Field/DatetimeHandlerKernelTest.php
  • tests/phpunit/src/Kernel/Backend/Core/Field/DefaultHandlerKernelTest.php
  • tests/phpunit/src/Kernel/Backend/Core/Field/EntityReferenceHandlerEdgeCasesKernelTest.php
  • tests/phpunit/src/Kernel/Backend/Core/Field/EntityReferenceHandlerKernelTest.php
  • tests/phpunit/src/Kernel/Backend/Core/Field/FieldHandlerKernelTestBase.php
  • tests/phpunit/src/Kernel/Backend/Core/Field/FieldHandlerRegistryKernelTest.php
  • tests/phpunit/src/Kernel/Backend/Core/Field/FieldTypeCoverageKernelTest.php
  • tests/phpunit/src/Kernel/Backend/Core/Field/FileHandlerKernelTest.php
  • tests/phpunit/src/Kernel/Backend/Core/Field/FileHandlerReuseKernelTest.php
  • tests/phpunit/src/Kernel/Backend/Core/Field/ImageHandlerKernelTest.php
  • tests/phpunit/src/Kernel/Backend/Core/Field/ImageHandlerReuseKernelTest.php
  • tests/phpunit/src/Kernel/Backend/Core/Field/LinkHandlerKernelTest.php
  • tests/phpunit/src/Kernel/Backend/Core/Field/ListFloatHandlerKernelTest.php
  • tests/phpunit/src/Kernel/Backend/Core/Field/ListIntegerHandlerKernelTest.php
  • tests/phpunit/src/Kernel/Backend/Core/Field/ListStringHandlerKernelTest.php
  • tests/phpunit/src/Kernel/Backend/Core/Field/NameHandlerKernelTest.php
  • tests/phpunit/src/Kernel/Backend/Core/Field/SmartdateHandlerKernelTest.php
  • tests/phpunit/src/Kernel/Backend/Core/Field/SupportedImageHandlerKernelTest.php
  • tests/phpunit/src/Kernel/Backend/Core/Field/TimeHandlerKernelTest.php
  • tests/phpunit/src/Kernel/Backend/DrupalBackendConstructionKernelTest.php
  • tests/phpunit/src/Kernel/Helper/Drupal/EntityLifecycleTraitVocabularyKernelTest.php
  • tests/phpunit/src/Kernel/Steps/Drupal/StepTraitKernelTestBase.php
  • tests/phpunit/src/LintLayersTest.php
  • tests/phpunit/src/LintTraitsTest.php
  • tests/phpunit/src/PrerequisiteDeclarationsTest.php
  • tests/phpunit/src/ProvisionTest.php
  • tests/phpunit/src/Unit/Backend/Alias/RolesAliasTest.php
  • tests/phpunit/src/Unit/Backend/BlackboxBackendCreationAliasesTest.php
  • tests/phpunit/src/Unit/Backend/BlackboxBackendTest.php
  • tests/phpunit/src/Unit/Backend/Core/Alias/AuthorAliasTest.php
  • tests/phpunit/src/Unit/Backend/Core/Alias/ParentTermAliasTest.php
  • tests/phpunit/src/Unit/Backend/Core/Alias/VocabularyMachineNameAliasTest.php
  • tests/phpunit/src/Unit/Backend/Core/CoreCronMethodsTest.php
  • tests/phpunit/src/Unit/Backend/Core/CoreErrorPathsTest.php
  • tests/phpunit/src/Unit/Backend/Core/CoreFieldHandlerLookupTest.php
  • tests/phpunit/src/Unit/Backend/Core/CoreFieldMethodsTest.php
  • tests/phpunit/src/Unit/Backend/Core/CorePermissionsTest.php
  • tests/phpunit/src/Unit/Backend/Core/Field/AbstractHandlerErrorPathsTest.php
  • tests/phpunit/src/Unit/Backend/Core/Field/AbstractHandlerNormalizeTest.php
  • tests/phpunit/src/Unit/Backend/Core/Field/AddressHandlerTest.php
  • tests/phpunit/src/Unit/Backend/Core/Field/BooleanHandlerTest.php
  • tests/phpunit/src/Unit/Backend/Core/Field/DateRecurHandlerTest.php
  • tests/phpunit/src/Unit/Backend/Core/Field/DaterangeHandlerTest.php
  • tests/phpunit/src/Unit/Backend/Core/Field/DatetimeHandlerTest.php
  • tests/phpunit/src/Unit/Backend/Core/Field/DefaultHandlerTest.php
  • tests/phpunit/src/Unit/Backend/Core/Field/EntityReferenceHandlerTest.php
  • tests/phpunit/src/Unit/Backend/Core/Field/EntityReferenceRevisionsHandlerTest.php
  • tests/phpunit/src/Unit/Backend/Core/Field/FieldClassifierTest.php
  • tests/phpunit/src/Unit/Backend/Core/Field/FieldHandlerUnitTestBase.php
  • tests/phpunit/src/Unit/Backend/Core/Field/FieldShapeClassifierTest.php
  • tests/phpunit/src/Unit/Backend/Core/Field/FileBackedHandlerTestBase.php
  • tests/phpunit/src/Unit/Backend/Core/Field/FileHandlerTest.php
  • tests/phpunit/src/Unit/Backend/Core/Field/ImageHandlerTest.php
  • tests/phpunit/src/Unit/Backend/Core/Field/LinkHandlerTest.php
  • tests/phpunit/src/Unit/Backend/Core/Field/ListFloatHandlerTest.php
  • tests/phpunit/src/Unit/Backend/Core/Field/ListIntegerHandlerTest.php
  • tests/phpunit/src/Unit/Backend/Core/Field/ListStringHandlerTest.php
  • tests/phpunit/src/Unit/Backend/Core/Field/NameHandlerTest.php
  • tests/phpunit/src/Unit/Backend/Core/Field/SmartdateHandlerTest.php
  • tests/phpunit/src/Unit/Backend/Core/Field/SupportedImageHandlerTest.php
  • tests/phpunit/src/Unit/Backend/Core/Field/TimeHandlerTest.php
  • tests/phpunit/src/Unit/Backend/CoreLookupTest.php
  • tests/phpunit/src/Unit/Backend/DrupalBackendCreationAliasesTest.php
  • tests/phpunit/src/Unit/Backend/DrupalBackendDelegationTest.php
  • tests/phpunit/src/Unit/Backend/DrupalBackendTest.php
  • tests/phpunit/src/Unit/Backend/DrushBackendCreationAliasesTest.php
  • tests/phpunit/src/Unit/Backend/DrushBackendMethodsTest.php
  • tests/phpunit/src/Unit/Backend/DrushBackendResultTest.php
  • tests/phpunit/src/Unit/Backend/DrushBackendTest.php
  • tests/phpunit/src/Unit/Backend/Entity/EntityStubTest.php
  • tests/phpunit/src/Unit/Backend/Exception/UnsupportedBackendActionExceptionTest.php
  • tests/phpunit/src/Unit/Backend/Fixtures/AliasCapableCoreInterface.php
  • tests/phpunit/src/Unit/Backend/Fixtures/ArgumentsExposingDrushBackend.php
  • tests/phpunit/src/Unit/Backend/Fixtures/AuthCapableCoreInterface.php
  • tests/phpunit/src/Unit/Backend/Fixtures/FakeUser.php
  • tests/phpunit/src/Unit/Backend/Fixtures/FakeVersionDrupalBackend.php
  • tests/phpunit/src/Unit/Backend/Fixtures/ProcessStubDrushBackend.php
  • tests/phpunit/src/Unit/Backend/Fixtures/RecordingDrushBackend.php
  • tests/phpunit/src/Unit/Backend/Fixtures/RecordingUserCapability.php
  • tests/phpunit/src/Unit/Backend/Fixtures/TestDrushBackend.php
  • tests/phpunit/src/Unit/Behat/Context/Initializer/BackendAwareInitializerTest.php
  • tests/phpunit/src/Unit/Behat/Context/WebRawContextTest.php
  • tests/phpunit/src/Unit/Behat/Fixtures/CountedPrerequisiteTrait.php
  • tests/phpunit/src/Unit/Behat/Fixtures/PrerequisiteContext.php
  • tests/phpunit/src/Unit/Behat/Fixtures/RedeclaringPrerequisiteReaderHost.php
  • tests/phpunit/src/Unit/Behat/Fixtures/SamplePrerequisiteTrait.php
  • tests/phpunit/src/Unit/Behat/Fixtures/StepPrerequisiteTrait.php
  • tests/phpunit/src/Unit/Behat/Fixtures/TestableRawContext.php
  • tests/phpunit/src/Unit/Behat/Hook/CallTest.php
  • tests/phpunit/src/Unit/Behat/Hook/ScopeTest.php
  • tests/phpunit/src/Unit/Behat/Listener/BackendListenerTest.php
  • tests/phpunit/src/Unit/Behat/Listener/DriverListenerTest.php
  • tests/phpunit/src/Unit/Behat/Manager/AuthenticatorTest.php
  • tests/phpunit/src/Unit/Behat/Manager/BackendRegistryTest.php
  • tests/phpunit/src/Unit/Behat/Manager/BasicAuthenticatorTest.php
  • tests/phpunit/src/Unit/Behat/Manager/DriverRegistryTest.php
  • tests/phpunit/src/Unit/Behat/Manager/UserRegistryTest.php
  • tests/phpunit/src/Unit/Behat/Prerequisite/PrerequisiteReaderTest.php
  • tests/phpunit/src/Unit/Behat/Prerequisite/PrerequisiteTest.php
  • tests/phpunit/src/Unit/Behat/ServiceContainer/BackendPassTest.php
  • tests/phpunit/src/Unit/Behat/ServiceContainer/BehatStepsExtensionTest.php
  • tests/phpunit/src/Unit/Behat/ServiceContainer/DriverPassTest.php
  • tests/phpunit/src/Unit/Behat/TagTest.php
  • tests/phpunit/src/Unit/Driver/BlackboxDriverCreationAliasesTest.php
  • tests/phpunit/src/Unit/Driver/CoreLookupTest.php
  • tests/phpunit/src/Unit/Driver/DrupalDriverCreationAliasesTest.php
  • tests/phpunit/src/Unit/Driver/Exception/UnsupportedDriverActionExceptionTest.php
  • tests/phpunit/src/Unit/Helper/Drupal/EntityLifecycleTraitTest.php
  • tests/phpunit/src/Unit/Helper/Drupal/FixtureFileTraitTest.php
  • tests/phpunit/src/Unit/Steps/Drupal/EmailTraitTest.php
  • tests/phpunit/src/Unit/Steps/Drupal/ModuleTraitTest.php
  • tests/phpunit/src/Unit/Steps/Drupal/TestmodeTraitTest.php
  • tests/phpunit/src/Unit/Steps/Drupal/WatchdogTraitTest.php
  • tests/phpunit/src/UnitTestCase.php

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Autopilot is currently an internal CodeRabbit preview.


Comment @coderabbitai help to get the list of available commands.

@AlexSkrypnyk AlexSkrypnyk added this to the 4.0 milestone Oct 1, 2026
@codecov

codecov Bot commented Oct 1, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 99.68553% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 95.96%. Comparing base (ed36757) to head (cc5c284).

Files with missing lines Patch % Lines
src/Behat/Listener/BackendListener.php 96.66% 1 Missing ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##              4.x     #896   +/-   ##
=======================================
  Coverage   95.96%   95.96%           
=======================================
  Files         164      164           
  Lines        8395     8401    +6     
=======================================
+ Hits         8056     8062    +6     
  Misses        339      339           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@AlexSkrypnyk AlexSkrypnyk added the Needs review Pull request needs a review from assigned developers label Oct 1, 2026
@AlexSkrypnyk
AlexSkrypnyk merged commit 79270fe into 4.x Oct 2, 2026
21 checks passed
@AlexSkrypnyk
AlexSkrypnyk deleted the feature/893-rename-drivers branch October 2, 2026 09:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Needs review Pull request needs a review from assigned developers

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant