Skip to content

Converged naming, failure messages, test structure and comments onto the existing project conventions. - #925

Open
AlexSkrypnyk wants to merge 38 commits into
4.xfrom
feature/improve-261003-0953
Open

AlexSkrypnyk wants to merge 38 commits into
4.xfrom
feature/improve-261003-0953

Conversation

@AlexSkrypnyk

Copy link
Copy Markdown
Member

Summary

Failure messages now read 1 way across the step traits and backends: , but it should not, interpolated values in double quotes, a closing period and The ... does not exist.. Alongside that, messageAssertExistsOfType() throws ElementNotFoundException when the page shows no message of the type, 12 typed-string checks compare with === '' so the string 0 counts as a value, and the meta robots steps read should contain and should not contain.

The same concept was spelled 2 or 3 ways depending on the trait it lived in. 10 hooks were named for their action while the rest were named for their event, 8 assertion and action methods qualified their target with By while the rest used With, collaborator properties such as $reader and $scenarioTags didn't match their ConfigSchemaReader and ScenarioTagRegistry types, and 693 source comments either restated the code or read as prose rather than technical statements. Reading 2 traits side by side meant meeting 2 vocabularies for 1 idea.

Every renamed public method, parameter and hook is listed in MIGRATION.md, STEPS.md and HELPERS.md are regenerated, and no step text changes apart from the meta robots pair. Public names whose convergence needs a maintainer's call, such as the log in spelling, the capability create and delete contracts and the Behat\Manager namespace, stay as they are and are tracked in #907 to #924.

Before / After

BEFORE                                          AFTER
┌─────────────────────────────────────┐         ┌─────────────────────────────────────┐
│ Hooks: action or event names        │         │ Hooks: <prefix><Event>()            │
│   timeCleanup()                     │   ──▶   │   timeAfterScenario()               │
│   watchdogSetScenario()             │         │   watchdogBeforeScenario()          │
│   accessibilityAutoAssess()         │         │   accessibilityAfterStep()          │
├─────────────────────────────────────┤         ├─────────────────────────────────────┤
│ Qualifiers: By and With mixed       │         │ By for lookups, With for the rest   │
│   userAssertExistsByMail()          │   ──▶   │   userAssertExistsWithMail()        │
│   elementClickByIndex()             │         │   elementClickWithIndex()           │
├─────────────────────────────────────┤         ├─────────────────────────────────────┤
│ Messages: 2 or 3 spellings          │         │ Messages: 1 spelling                │
│   '%s' ..., but should not          │   ──▶   │   "%s" ..., but it should not.      │
│   ... isn't configured!             │         │   ... is not configured.            │
├─────────────────────────────────────┤         ├─────────────────────────────────────┤
│ Comments: 4,059                     │         │ Comments: 3,796                     │
│   263 restating the code            │   ──▶   │   263 deleted                       │
│   430 needing rewording             │         │   430 reworded as plain statements  │
└─────────────────────────────────────┘         └─────────────────────────────────────┘

Changes

Each inconsistency class is its own commit, so the branch reviews class by class.

Naming

  • Renamed the hook dispatcher, browser capability resolver, scenario tag registry and config schema reader collaborators after their types (setHookDispatcher(), getBrowserCapabilityResolver(), $scenarioTagRegistry, $configSchemaReader), with docs/http-clients.md and the class-browser diagram updated.
  • Named the 10 hooks that are the only one of their event after the event, as <prefix><Event>(): timeAfterScenario(), watchdogBeforeScenario(), bigPipeBeforeStep(), staticCacheAfterScenario(), entityLifecycleBeforeNodeCreate(), entityLifecycleAfterScenario() and the 4 accessibility*() hooks. The architecture docs and diagrams follow.
  • Renamed the 8 assertion and action methods qualified with By to With (for example userAssertExistsWithMail() and elementClickWithIndex()), leaving By to the Find, Get and Exists lookups.
  • Renamed the bundle parameter of contentBlockCreateSingle() and contentBlockLoadMultiple() to $content_block_type.
  • Renamed the failOnIncomplete accessibility aggregate key to fail_on_incomplete, the name the option, the messages and the locals already use.
  • Smaller locals and test identifiers: $matches, $context, $class_info, named loop variables, call<Method>() test bridges, American spelling, and test names that still called a registry or an authenticator a manager.

Failure messages

  • , but it should not in the 18 messages that said , but should not.
  • Double quotes around interpolated values in the 22 messages that used single quotes.
  • A closing period on the 15 messages that stopped on a value, and is not configured. instead of isn't configured!.
  • The ... does not exist. for the 4 outliers, get_debug_type() instead of gettype() in 3, and the NameHandler messages worded like the other field handlers.

API shape

  • messageAssertExistsOfType() throws ElementNotFoundException when the page shows no message of the type, which is what the project's exception table prescribes for a missing element.
  • Typed strings are compared with === '' instead of empty() at 12 sites, so the string 0 counts as a value.
  • The meta robots steps read should contain and should not contain instead of should include, like every other step trait.
  • docs.php throws \RuntimeException instead of a plain \Exception, TraitOptionResolver takes (config, steps) like its factory, and preg_match() results are compared with === 1.

Structure

  • Data providers sit directly after the test they serve, helper methods after the last test, and the 24 rows of FileDownloadTraitTest::dataProviderIsRegex() carry labels.
  • EntityLifecycleTraitTest calls parent::setUp() and parent::tearDown(), and the 2 file reuse kernel tests compare integer ids with assertSame().
  • Sorted helper trait use statements, fn( without a space, and doubled backslashes in the 30 namespace literals that used single ones.

Comments

  • Rewrote 430 source comments as plain technical statements and deleted 263 that restated the code; the other 3,366 stay as they were.
  • Corrected 77 comments whose claims disagreed with the code.
  • STEPS.md, HELPERS.md and the README.md index are regenerated.

Left for a decision

These need a maintainer's call, so they're filed instead of changed here:

2 small edits are left for a hand change: behat.dist.php still registers both WebContext and DrupalContext (#923), and CLAUDE.md still says the initializer "injects the user manager" (#915).

Verification

  • ahoy test-bdd: 1,203 scenarios and 5,073 steps pass. accessibility.feature was re-run on the last commit, which renames the aggregate key (11 scenarios pass).
  • ahoy test-kernel: 125 tests. 1 assertion still expected the old single-quoted value in the unknown author message; it's fixed here and the class re-runs green.
  • ahoy test-unit: 4,096 tests pass.
  • ahoy lint: phpcs, phpstan, Rector, gherkinlint, the layer check and the trait check all pass.
  • ahoy lint-docs: the generated docs are current.

…enerator gives the same directory elsewhere.
…hdogTrait' and 'BehatCliTrait' after the items they hold.
…rotected method each exposes, like the other 20.
… the record also describes the toolbox classes.
…at used single ones, matching the rest of the codebase.
…odsTest' after their last test, like the other test classes.
… 263 that restated the code, regenerating 'STEPS.md' and 'HELPERS.md'.
…ing 'STEPS.md', 'HELPERS.md' and the 'README.md' index.
…rs: 'positional and named keys' and '. Got %s.'
…tentBlockLoadMultiple()' from '$type' to '$content_block_type'.
…registry and config schema reader collaborators after their types.
…lTrait' message, the 'MappingTrait' option and 7 comments.
…he 3 messages that used it, like the other 14.
…s that used single quotes, like the other 500.
…ith a period, and reworded 'isn't configured!' as 'is not configured.'
…' instead of 'should include', like the other step traits.
…uthor()', as the unknown author message now quotes it.
…agListenerTest' data set that rejects a hook name in a skip tag.
…n_incomplete', the name the option, the messages and the locals use.
@coderabbitai

coderabbitai Bot commented Oct 3, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 311 files, which is 11 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: 30907049-0bb8-4966-882a-b8dbd51ec753
📥 Commits

Reviewing files that changed from the base of the PR and between 0d37f60 and e0ebb56.

⛔ Files ignored due to path filters (3)
  • docs/architecture/class-browser.svg is excluded by !**/*.svg
  • docs/architecture/class-context.svg is excluded by !**/*.svg
  • docs/architecture/dataflow-step.svg is excluded by !**/*.svg
📒 Files selected for processing (311)
  • CONTRIBUTING.md
  • HELPERS.md
  • MIGRATION.md
  • README.md
  • STEPS.md
  • behat.dist.php
  • behat.php
  • docs.php
  • docs/architecture/README.md
  • docs/architecture/class-browser.puml
  • docs/architecture/class-context.puml
  • docs/architecture/dataflow-step.puml
  • docs/http-clients.md
  • rector.php
  • scripts/check-coverage.php
  • scripts/lint-layers.php
  • scripts/lint-traits.php
  • scripts/merge-coverage.php
  • scripts/provision.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/BlackboxBackendInterface.php
  • src/Backend/Capability/BlockCapabilityInterface.php
  • src/Backend/Capability/ConfigCapabilityInterface.php
  • src/Backend/Capability/CoreCapabilityInterface.php
  • src/Backend/Capability/CreationAliasCapabilityInterface.php
  • src/Backend/Capability/DrushCapabilityInterface.php
  • src/Backend/Capability/ModuleCapabilityInterface.php
  • src/Backend/Capability/StateCapabilityInterface.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/DateRecurHandler.php
  • src/Backend/Core/Field/DefaultHandler.php
  • src/Backend/Core/Field/EntityReferenceHandler.php
  • src/Backend/Core/Field/EntityReferenceRevisionsHandler.php
  • src/Backend/Core/Field/FieldClassifierInterface.php
  • src/Backend/Core/Field/FieldShapeClassifier.php
  • src/Backend/Core/Field/FieldShapeClassifierInterface.php
  • src/Backend/Core/Field/FileHandler.php
  • src/Backend/Core/Field/LinkHandler.php
  • src/Backend/Core/Field/NameHandler.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/ReferenceTarget.php
  • src/Backend/Core/Field/SmartdateHandler.php
  • src/Backend/DrupalBackend.php
  • src/Backend/Drush/DrushResult.php
  • src/Backend/DrushBackend.php
  • src/Backend/Entity/EntityStub.php
  • src/Backend/Entity/EntityStubInterface.php
  • src/Backend/Exception/CreationAliasResolutionException.php
  • src/Behat/Config/ConfigSchemaReader.php
  • src/Behat/Config/GroupName.php
  • src/Behat/Config/Option.php
  • src/Behat/Config/TagOverrides.php
  • src/Behat/Config/TraitOptionResolver.php
  • src/Behat/Config/TraitOptionResolverFactory.php
  • src/Behat/Config/TraitOptionResolverFactoryInterface.php
  • src/Behat/Context/BackendAwareInterface.php
  • src/Behat/Context/DrupalContext.php
  • src/Behat/Context/Initializer/BackendAwareInitializer.php
  • src/Behat/Context/WebContext.php
  • src/Behat/Context/WebRawContext.php
  • src/Behat/Hook/Attribute/DrupalHookInterface.php
  • src/Behat/Http/HttpClientFactoryInterface.php
  • src/Behat/Http/HttpIdentity.php
  • src/Behat/Listener/BackendListener.php
  • src/Behat/Manager/Authenticator.php
  • src/Behat/Manager/BackendRegistry.php
  • src/Behat/Manager/BackendRegistryInterface.php
  • src/Behat/Manager/BasicAuthenticator.php
  • src/Behat/Manager/BasicAuthenticatorInterface.php
  • src/Behat/Manager/ScenarioTagRegistry.php
  • src/Behat/Mink/Adapter/BrowserKitAdapter.php
  • src/Behat/Mink/BrowserAdapterBase.php
  • src/Behat/Mink/BrowserAdapterInterface.php
  • src/Behat/Mink/BrowserCapabilityResolver.php
  • src/Behat/Mink/Capability/CookieCapabilityInterface.php
  • src/Behat/Mink/Capability/HttpClientCapabilityInterface.php
  • src/Behat/Mink/Capability/JavascriptCapabilityInterface.php
  • src/Behat/Mink/Capability/RequestHeaderCapabilityInterface.php
  • src/Behat/Mink/Element/DocumentElement.php
  • src/Behat/Mink/ServiceContainer/Driver/BrowserKitFactory.php
  • src/Behat/MinkAwareTrait.php
  • src/Behat/ParametersTrait.php
  • src/Behat/Prerequisite/Prerequisite.php
  • src/Behat/Selector/RegionSelector.php
  • src/Behat/ServiceContainer/BehatStepsExtension.php
  • src/Behat/Tag.php
  • src/Helper/Drupal/AuthTrait.php
  • src/Helper/Drupal/EntityLifecycleTrait.php
  • src/Helper/Drupal/FixtureFileTrait.php
  • src/Helper/Drupal/StaticCacheTrait.php
  • src/Helper/Web/RequestHeadersTrait.php
  • src/Helper/Web/TableTransposeTrait.php
  • src/Steps/Drupal/BatchTrait.php
  • src/Steps/Drupal/BigPipeTrait.php
  • src/Steps/Drupal/BlockTrait.php
  • src/Steps/Drupal/CacheTrait.php
  • src/Steps/Drupal/ConfigOverrideTrait.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/ParagraphsTrait.php
  • src/Steps/Drupal/RedirectTrait.php
  • src/Steps/Drupal/SearchApiTrait.php
  • src/Steps/Drupal/StateTrait.php
  • src/Steps/Drupal/TaxonomyTrait.php
  • src/Steps/Drupal/TimeTrait.php
  • src/Steps/Drupal/UserTrait.php
  • src/Steps/Drupal/WatchdogTrait.php
  • src/Steps/Web/AccessibilityTrait.php
  • src/Steps/Web/CommandTrait.php
  • src/Steps/Web/CookieTrait.php
  • src/Steps/Web/DateTrait.php
  • src/Steps/Web/DiagnosticsTrait.php
  • src/Steps/Web/DropzoneTrait.php
  • src/Steps/Web/ElementTrait.php
  • src/Steps/Web/FieldTrait.php
  • src/Steps/Web/FileDownloadTrait.php
  • src/Steps/Web/IframeTrait.php
  • src/Steps/Web/JavascriptTrait.php
  • src/Steps/Web/JsonTrait.php
  • src/Steps/Web/KeyboardTrait.php
  • src/Steps/Web/LinkTrait.php
  • src/Steps/Web/MappingTrait.php
  • src/Steps/Web/MessageTrait.php
  • src/Steps/Web/MetatagTrait.php
  • src/Steps/Web/PathTrait.php
  • src/Steps/Web/RandomTrait.php
  • src/Steps/Web/RegionTrait.php
  • src/Steps/Web/ResponseTrait.php
  • src/Steps/Web/ResponsiveTrait.php
  • src/Steps/Web/TableTrait.php
  • src/Steps/Web/WaitTrait.php
  • src/Steps/Web/XmlTrait.php
  • tests/behat/bootstrap/BehatCliTrait.php
  • tests/behat/bootstrap/FeatureContext.php
  • tests/behat/bootstrap/FeatureContextTrait.php
  • tests/behat/features/drupal_block.feature
  • tests/behat/features/drupal_config.feature
  • tests/behat/features/drupal_content.feature
  • tests/behat/features/drupal_content_block.feature
  • tests/behat/features/drupal_file.feature
  • tests/behat/features/drupal_user.feature
  • tests/behat/features/element.feature
  • tests/behat/features/field.feature
  • tests/behat/features/file_download.feature
  • tests/behat/features/json.feature
  • tests/behat/features/link.feature
  • tests/behat/features/message.feature
  • tests/behat/features/metatag.feature
  • tests/behat/features/path.feature
  • tests/behat/features/region.feature
  • tests/behat/features/response.feature
  • tests/behat/features/responsive.feature
  • tests/phpunit/src/ContextCompositionTest.php
  • tests/phpunit/src/DataProviderConventionTest.php
  • tests/phpunit/src/DocsTest.php
  • tests/phpunit/src/Fixtures/StepCoverage/StepCoverageTrait.php
  • tests/phpunit/src/Fixtures/UnwritableStream.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/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/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/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/ContentBlockTraitKernelTest.php
  • tests/phpunit/src/Kernel/Steps/Drupal/EckTraitKernelTest.php
  • tests/phpunit/src/Kernel/Steps/Drupal/FileTraitKernelTest.php
  • tests/phpunit/src/Kernel/Steps/Drupal/MediaTraitKernelTest.php
  • tests/phpunit/src/Kernel/Steps/Drupal/TaxonomyTraitKernelTest.php
  • tests/phpunit/src/Kernel/Steps/Drupal/UserTraitKernelTest.php
  • tests/phpunit/src/LintLayersTest.php
  • tests/phpunit/src/LintTraitsTest.php
  • tests/phpunit/src/MemberOrderTest.php
  • tests/phpunit/src/PrerequisiteDeclarationsTest.php
  • tests/phpunit/src/ProvisionTest.php
  • tests/phpunit/src/PublicSurfaceTest.php
  • tests/phpunit/src/SkipGuardTest.php
  • tests/phpunit/src/StepScenarioCoverageTest.php
  • tests/phpunit/src/TagReadTest.php
  • tests/phpunit/src/TraitMethodNamingTest.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/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/DatetimeHandlerTest.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/FileBackedHandlerTestBase.php
  • tests/phpunit/src/Unit/Backend/Core/Field/FileHandlerTest.php
  • tests/phpunit/src/Unit/Backend/Core/Field/NameHandlerTest.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/ArgumentsExposingDrushBackend.php
  • tests/phpunit/src/Unit/Backend/Fixtures/RecordingDrushBackend.php
  • tests/phpunit/src/Unit/Behat/Config/GroupNameTest.php
  • tests/phpunit/src/Unit/Behat/Config/TagOverridesTest.php
  • tests/phpunit/src/Unit/Behat/Config/TraitOptionResolverTest.php
  • tests/phpunit/src/Unit/Behat/Context/Attribute/HookAttributeReaderTest.php
  • tests/phpunit/src/Unit/Behat/Context/ContextConfigTest.php
  • tests/phpunit/src/Unit/Behat/Context/Initializer/BackendAwareInitializerTest.php
  • tests/phpunit/src/Unit/Behat/Context/WebContextTest.php
  • tests/phpunit/src/Unit/Behat/Context/WebRawContextTest.php
  • tests/phpunit/src/Unit/Behat/Fixtures/BareMinkContext.php
  • tests/phpunit/src/Unit/Behat/Fixtures/ConfigurableContext.php
  • tests/phpunit/src/Unit/Behat/Fixtures/DuplicateOptionConfigContext.php
  • tests/phpunit/src/Unit/Behat/Fixtures/ForeignMinkExtension.php
  • tests/phpunit/src/Unit/Behat/Fixtures/HookedContext.php
  • tests/phpunit/src/Unit/Behat/Fixtures/PrerequisiteReaderHost.php
  • tests/phpunit/src/Unit/Behat/Fixtures/SampleExtraConfigTrait.php
  • tests/phpunit/src/Unit/Behat/Fixtures/ThrowingHookReader.php
  • tests/phpunit/src/Unit/Behat/Fixtures/UnmappedHook.php
  • tests/phpunit/src/Unit/Behat/Listener/BackendListenerTest.php
  • tests/phpunit/src/Unit/Behat/Listener/SkipTagListenerTest.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/Mink/BrowserCapabilityResolverTest.php
  • tests/phpunit/src/Unit/Behat/Mink/Fixtures/AnyDriverAdapter.php
  • tests/phpunit/src/Unit/Behat/ParametersTraitTest.php
  • tests/phpunit/src/Unit/Behat/Selector/RegionSelectorTest.php
  • tests/phpunit/src/Unit/Behat/ServiceContainer/BackendPassTest.php
  • tests/phpunit/src/Unit/Helper/Drupal/EntityLifecycleTraitTest.php
  • tests/phpunit/src/Unit/Helper/Drupal/FixtureFileTraitTest.php
  • tests/phpunit/src/Unit/Helper/Web/RequestHeadersTraitTest.php
  • tests/phpunit/src/Unit/Helper/Web/StringTraitTest.php
  • tests/phpunit/src/Unit/Steps/Drupal/EmailTraitTest.php
  • tests/phpunit/src/Unit/Steps/Drupal/WatchdogTraitTest.php
  • tests/phpunit/src/Unit/Steps/OptionDeclarationsTest.php
  • tests/phpunit/src/Unit/Steps/Web/AccessibilityTraitTest.php
  • tests/phpunit/src/Unit/Steps/Web/DateTraitTest.php
  • tests/phpunit/src/Unit/Steps/Web/DiagnosticsTraitTest.php
  • tests/phpunit/src/Unit/Steps/Web/FieldTraitTest.php
  • tests/phpunit/src/Unit/Steps/Web/FileDownloadTraitTest.php
  • tests/phpunit/src/Unit/Steps/Web/MappingTraitTest.php
  • tests/phpunit/src/Unit/Steps/Web/MetatagTraitTest.php
  • tests/phpunit/src/Unit/Steps/Web/ModalTraitTest.php
  • tests/phpunit/src/Unit/Steps/Web/RandomTraitTest.php
  • tests/phpunit/src/Unit/Steps/Web/ResponsiveTraitTest.php
  • tests/phpunit/src/Unit/Steps/Web/XmlTraitTest.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

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

@codecov

codecov Bot commented Oct 3, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 91.09948% with 17 lines in your changes missing coverage. Please review.
✅ Project coverage is 95.96%. Comparing base (0d37f60) to head (e0ebb56).

Files with missing lines Patch % Lines
src/Steps/Web/AccessibilityTrait.php 87.17% 5 Missing ⚠️
...rc/Backend/Core/Field/Parser/EntityFieldParser.php 66.66% 3 Missing ⚠️
src/Backend/Core/Alias/AuthorAlias.php 33.33% 2 Missing ⚠️
src/Backend/Core/Alias/ParentTermAlias.php 50.00% 2 Missing ⚠️
docs.php 98.00% 1 Missing ⚠️
src/Backend/Core/Field/EntityReferenceHandler.php 50.00% 1 Missing ⚠️
src/Backend/DrupalBackend.php 50.00% 1 Missing ⚠️
src/Backend/DrushBackend.php 87.50% 1 Missing ⚠️
src/Steps/Web/RegionTrait.php 0.00% 1 Missing ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##              4.x     #925   +/-   ##
=======================================
  Coverage   95.96%   95.96%           
=======================================
  Files         164      164           
  Lines        8402     8402           
=======================================
  Hits         8063     8063           
  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 3, 2026
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