Skip to content

Strengthen AbstractPage tests to kill Coalesce mutations #1499

Strengthen AbstractPage tests to kill Coalesce mutations

Strengthen AbstractPage tests to kill Coalesce mutations #1499

Triggered via push June 16, 2026 16:20
Status Success
Total duration 4m 49s
Artifacts 9

ci.yml

on: push
Matrix: behat-lowest-deps
Matrix: behat-symfony-next
Matrix: behat
Matrix: php-cs-fixer
Matrix: phpunit-lowest-deps
Matrix: phpunit-symfony-next
Matrix: phpunit
Fit to window
Zoom out
Zoom in

Annotations

2 errors and 19 warnings
PHPUnit (Symfony NEXT 8.2) (PHP 8.5)
Process completed with exit code 1.
Behat (Symfony 7.4) (PHP 8.5)
Process completed with exit code 255.
PHPUnit (Symfony ^7.4) (PHP 8.5) (lowest dependencies)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/cache@v3, actions/checkout@v3, actions/upload-artifact@v4. Actions will be forced to run with Node.js 24 by default starting June 16th, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
PHP-CS-Fixer (PHP 8.5)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v3. Actions will be forced to run with Node.js 24 by default starting June 16th, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
PHPUnit (Symfony NEXT 8.2) (PHP 8.5)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/cache@v3, actions/checkout@v3, actions/upload-artifact@v4. Actions will be forced to run with Node.js 24 by default starting June 16th, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
PHPUnit (Symfony 8.1) (PHP 8.5)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/cache@v3, actions/checkout@v3, actions/upload-artifact@v4. Actions will be forced to run with Node.js 24 by default starting June 16th, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
PHPUnit (Symfony 7.4) (PHP 8.5)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/cache@v3, actions/checkout@v3, actions/upload-artifact@v4, codecov/codecov-action@v3. Actions will be forced to run with Node.js 24 by default starting June 16th, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
PHPUnit (Symfony 7.4) (PHP 8.5): src/Entity/Core/AbstractPage.php#L124
Escaped Mutant for Mutator "Coalesce": @@ @@ } $visitedIds[] = $parentIdStr; } - $parent = $parent->getParentPage() ?? $parent->getParentPageData(); + $parent = $parent->getParentPageData() ?? $parent->getParentPage(); } } public function getParentPageRoute(): ?Route
PHPUnit (Symfony 7.4) (PHP 8.5): src/Entity/Core/AbstractComponent.php#L50
Escaped Mutant for Mutator "MethodCallRemoval": @@ @@ public function __construct() { $this->componentGroups = new ArrayCollection(); - $this->initComponentGroups(); + $this->componentPositions = new ArrayCollection(); } public function isPositionRestricted(): bool
PHPUnit (Symfony 7.4) (PHP 8.5): src/ApiPlatform/Metadata/Resource/RoutingPrefixResourceMetadataCollectionFactory.php#L77
Escaped Mutant for Mutator "SpreadAssignment": @@ @@ * @var Operation $oldOperation */ foreach ($oldOperations as $key => $oldOperation) { - $subRoutePrefixParts = [...$routePrefixParts]; + $subRoutePrefixParts = $routePrefixParts; if ($currentRoutePrefix = $oldOperation->getRoutePrefix()) { $subRoutePrefixParts[] = trim($currentRoutePrefix, '/'); $subRoutePrefix = '/' . implode('/', $subRoutePrefixParts);
PHPUnit (Symfony 7.4) (PHP 8.5): src/ApiPlatform/Metadata/Resource/RoutingPrefixResourceMetadataCollectionFactory.php#L77
Escaped Mutant for Mutator "SpreadOneItem": @@ @@ * @var Operation $oldOperation */ foreach ($oldOperations as $key => $oldOperation) { - $subRoutePrefixParts = [...$routePrefixParts]; + $subRoutePrefixParts = [[...$routePrefixParts][0]]; if ($currentRoutePrefix = $oldOperation->getRoutePrefix()) { $subRoutePrefixParts[] = trim($currentRoutePrefix, '/'); $subRoutePrefix = '/' . implode('/', $subRoutePrefixParts);
PHPUnit (Symfony 7.4) (PHP 8.5): src/ApiPlatform/Metadata/Resource/RoutingPrefixResourceMetadataCollectionFactory.php#L76
Escaped Mutant for Mutator "Foreach_": @@ @@ * @var string $key * @var Operation $oldOperation */ - foreach ($oldOperations as $key => $oldOperation) { + foreach ([] as $key => $oldOperation) { $subRoutePrefixParts = [...$routePrefixParts]; if ($currentRoutePrefix = $oldOperation->getRoutePrefix()) { $subRoutePrefixParts[] = trim($currentRoutePrefix, '/');
PHPUnit (Symfony 7.4) (PHP 8.5): src/ApiPlatform/Metadata/Resource/RoutingPrefixResourceMetadataCollectionFactory.php#L64
Escaped Mutant for Mutator "SpreadAssignment": @@ @@ $resources = []; /** @var ApiResource $resourceMetadatum */ foreach ($resourceMetadata as $i => $resourceMetadatum) { - $finalRoutePrefixParts = [...$routePrefixParts]; + $finalRoutePrefixParts = $routePrefixParts; if ($currentRoutePrefix = $resourceMetadatum->getRoutePrefix()) { $finalRoutePrefixParts[] = trim($currentRoutePrefix, '/'); }
PHPUnit (Symfony 7.4) (PHP 8.5): src/ApiPlatform/Metadata/Resource/RoutingPrefixResourceMetadataCollectionFactory.php#L64
Escaped Mutant for Mutator "SpreadOneItem": @@ @@ $resources = []; /** @var ApiResource $resourceMetadatum */ foreach ($resourceMetadata as $i => $resourceMetadatum) { - $finalRoutePrefixParts = [...$routePrefixParts]; + $finalRoutePrefixParts = [[...$routePrefixParts][0]]; if ($currentRoutePrefix = $resourceMetadatum->getRoutePrefix()) { $finalRoutePrefixParts[] = trim($currentRoutePrefix, '/'); }
PHPUnit (Symfony 7.4) (PHP 8.5): src/ApiPlatform/Metadata/Resource/RoutingPrefixResourceMetadataCollectionFactory.php#L63
Escaped Mutant for Mutator "Foreach_": @@ @@ { $resources = []; /** @var ApiResource $resourceMetadatum */ - foreach ($resourceMetadata as $i => $resourceMetadatum) { + foreach ([] as $i => $resourceMetadatum) { $finalRoutePrefixParts = [...$routePrefixParts]; if ($currentRoutePrefix = $resourceMetadatum->getRoutePrefix()) { $finalRoutePrefixParts[] = trim($currentRoutePrefix, '/');
PHPUnit (Symfony 7.4) (PHP 8.5): src/ApiPlatform/Metadata/Resource/RoutingPrefixResourceMetadataCollectionFactory.php#L47
Escaped Mutant for Mutator "IfNegation": @@ @@ // underscores for core resources $reflection = new \ReflectionClass($resourceClass); $namespace = $reflection->getNamespaceName(); - if (preg_match("/Silverback\\\\ApiComponentsBundle\\\\(?!Test)[\\w]+/", $namespace)) { + if (!preg_match("/Silverback\\\\ApiComponentsBundle\\\\(?!Test)[\\w]+/", $namespace)) { $routePrefixParts[] = '_'; } }
PHPUnit (Symfony 7.4) (PHP 8.5): src/ApiPlatform/Metadata/Resource/RoutingPrefixResourceMetadataCollectionFactory.php#L41
Escaped Mutant for Mutator "ElseIfNegation": @@ @@ $routePrefixParts = []; if (is_subclass_of($resourceClass, AbstractComponent::class)) { $routePrefixParts[] = 'component'; - } elseif (is_subclass_of($resourceClass, AbstractPageData::class)) { + } elseif (!is_subclass_of($resourceClass, AbstractPageData::class)) { $routePrefixParts[] = 'page_data'; } else { // underscores for core resources
Behat (Symfony ^7.4) (PHP 8.5) (lowest dependencies)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/cache@v3, actions/checkout@v3, actions/upload-artifact@v4. Actions will be forced to run with Node.js 24 by default starting June 16th, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Behat (Symfony NEXT 8.2) (PHP 8.5)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/cache@v3, actions/checkout@v3, actions/upload-artifact@v4. Actions will be forced to run with Node.js 24 by default starting June 16th, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Behat (Symfony 7.4) (PHP 8.5)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/cache@v3, actions/checkout@v3, actions/upload-artifact@v4, codecov/codecov-action@v3. Actions will be forced to run with Node.js 24 by default starting June 16th, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Behat (Symfony 8.1) (PHP 8.5)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/cache@v3, actions/checkout@v3, actions/upload-artifact@v4. Actions will be forced to run with Node.js 24 by default starting June 16th, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/

Artifacts

Produced during runtime
Name Size Digest
behat-logs-php8.5-lowest-deps
6.92 KB
sha256:24b9119ba8d5ecb50b6e0af41656e64f4e298aecf1ad354732e27bc947a877ed
behat-logs-php8.5-symfony7.4
9.49 KB
sha256:353fcf8b099d1c99ebc02ca1642255ff3a84940adfc2753578647afa07ea596e
behat-logs-php8.5-symfony8.1
9.44 KB
sha256:c7877597a066b6396db837b1f141b8dda563106c1aadcc9666efa1aba6825515
behat-logs-php8.5-symfony8.2
9.42 KB
sha256:70b952dbf7a042fa65437fa85f4a3b357b975e0f22cf1b82d5c4888df3278dd6
infection-logs-php8.5
5.24 KB
sha256:6c728de0a4768e3275dbc4e4fd342b293f9eba3087a5c341405bdbbf8cb775e1
phpunit-logs-php8.5-lowest-deps
4.35 KB
sha256:320360dc96ba6ef10c998730c4d1ff10599ebdd6dbf3c76a927bb40fb3b46cb6
phpunit-logs-php8.5-symfony7.4
666 KB
sha256:190e48f1cccce8eaf536f71c4e5d3093ef7aaef1b05d6f3a94fa89ef8be240f4
phpunit-logs-php8.5-symfony8.1
4.36 KB
sha256:c1434a3bf3a3f51964116e3213b011fbc8f2fe7990df9d9fd7d0bb7c5e7bd420
phpunit-logs-php8.5-symfony8.2
4.34 KB
sha256:5cc511b06b4ac3570b6c8b18eabbf28a568209d0608d8aaf1e437e5e33040f72