Skip to content

Commit 97af690

Browse files
authored
Merge pull request #312 from mglaman/gh311
Exclude InstallerExistingConfigTestBase from $defaultTheme rule
2 parents dfcef3d + cb173de commit 97af690

File tree

2 files changed

+18
-4
lines changed

2 files changed

+18
-4
lines changed

src/Rules/Drupal/Tests/BrowserTestBaseDefaultThemeRule.php

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use PHPStan\Rules\Rule;
88
use PHPStan\Rules\RuleErrorBuilder;
99
use PHPStan\Type\ObjectType;
10+
use PHPStan\Type\TypeCombinator;
1011

1112
final class BrowserTestBaseDefaultThemeRule implements Rule
1213
{
@@ -31,12 +32,17 @@ public function processNode(Node $node, Scope $scope): array
3132

3233
$classType = $scope->resolveTypeByName($node->namespacedName);
3334
assert($classType instanceof ObjectType);
34-
$browserTestBaseAncestor = $classType->getAncestorWithClassName('Drupal\\Tests\\BrowserTestBase');
35-
if ($browserTestBaseAncestor === null) {
35+
36+
$browserTestBaseType = new ObjectType('Drupal\\Tests\\BrowserTestBase');
37+
if (!$browserTestBaseType->isSuperTypeOf($classType)->yes()) {
3638
return [];
3739
}
38-
$browserTestBaseAncestor = $classType->getAncestorWithClassName('Drupal\\FunctionalTests\\Update\\UpdatePathTestBase');
39-
if ($browserTestBaseAncestor !== null) {
40+
41+
$excludedTestTypes = TypeCombinator::union(
42+
new ObjectType('Drupal\\FunctionalTests\\Update\\UpdatePathTestBase'),
43+
new ObjectType('Drupal\\FunctionalTests\\Installer\\InstallerExistingConfigTestBase')
44+
);
45+
if ($excludedTestTypes->isSuperTypeOf($classType)->yes()) {
4046
return [];
4147
}
4248

tests/src/Rules/BrowserTestBaseDefaultThemeRuleTest.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,14 @@ public function fileData(): \Generator
5757
__DIR__ . '/../../fixtures/drupal/core/tests/Drupal/FunctionalTests/Update/UpdatePathTestBaseTest.php',
5858
[]
5959
];
60+
yield [
61+
__DIR__ . '/../../fixtures/drupal/core/tests/Drupal/FunctionalTests/Installer/InstallerExistingConfigNoSystemSiteTest.php',
62+
[]
63+
];
64+
yield [
65+
__DIR__ . '/../../fixtures/drupal/core/tests/Drupal/FunctionalTests/Installer/InstallerExistingConfigTest.php',
66+
[]
67+
];
6068
}
6169

6270
}

0 commit comments

Comments
 (0)