refactor: fix all 105 PHPStan 2 strict type findings across core and modules
Resolve all non-false-positive PHPStan 2 findings, reducing the baseline from 486 to 382 entries (only unused-public false positives remain). Categories fixed: - Remove 39 redundant type checks (is_string, is_array, is_object, method_exists) - Remove 12 no-op array_values() on already-sequential lists - Simplify 13 null-coalesce on guaranteed offsets - Remove 8 always-true instanceof checks - Replace 12 redundant test assertions (assertTrue(true) → addToAssertionCount) - Simplify 6 unnecessary nullsafe operators (?-> → ->) - Fix 6 always-true !== '' comparisons - Fix remaining: unset.offset, return.unusedType, staticMethod narrowing 53 files changed across core/, modules/, pages/, and tests/. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -193,7 +193,7 @@ class BcODataGatewayTest extends TestCase
|
||||
$this->fail('Umlauts should be allowed in search queries');
|
||||
} catch (\RuntimeException) {
|
||||
// Expected: cURL fails against fake URL
|
||||
$this->assertTrue(true);
|
||||
$this->addToAssertionCount(1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -206,7 +206,7 @@ class BcODataGatewayTest extends TestCase
|
||||
$this->fail('Numbers and dashes should be allowed in search queries');
|
||||
} catch (\RuntimeException) {
|
||||
// Expected: cURL fails against fake URL
|
||||
$this->assertTrue(true);
|
||||
$this->addToAssertionCount(1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -242,13 +242,13 @@ class BcODataGatewayTest extends TestCase
|
||||
{
|
||||
$gateway = $this->createGatewayWithSettings();
|
||||
try {
|
||||
$results = $gateway->getContactsForCustomer('10636', 'Behindertenwerkstätten Oberpfalz – Betreuungs GmbH');
|
||||
$this->assertIsArray($results);
|
||||
$gateway->getContactsForCustomer('10636', 'Behindertenwerkstätten Oberpfalz – Betreuungs GmbH');
|
||||
$this->addToAssertionCount(1);
|
||||
} catch (\InvalidArgumentException) {
|
||||
$this->fail('Trusted customer literals should not be rejected for contact loads.');
|
||||
} catch (\RuntimeException) {
|
||||
// Expected: cURL fails against fake URL.
|
||||
$this->assertTrue(true);
|
||||
$this->addToAssertionCount(1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -256,13 +256,13 @@ class BcODataGatewayTest extends TestCase
|
||||
{
|
||||
$gateway = $this->createGatewayWithSettings();
|
||||
try {
|
||||
$results = $gateway->getTicketsForCustomer('10494', "J.G. Knopf´s Sohn Gmbh & Co. KG");
|
||||
$this->assertIsArray($results);
|
||||
$gateway->getTicketsForCustomer('10494', "J.G. Knopf´s Sohn Gmbh & Co. KG");
|
||||
$this->addToAssertionCount(1);
|
||||
} catch (\InvalidArgumentException) {
|
||||
$this->fail('Trusted customer literals should not be rejected for ticket loads.');
|
||||
} catch (\RuntimeException) {
|
||||
// Expected: cURL fails against fake URL.
|
||||
$this->assertTrue(true);
|
||||
$this->addToAssertionCount(1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -396,7 +396,7 @@ class BcODataGatewayTest extends TestCase
|
||||
$threw = true;
|
||||
}
|
||||
// Either cURL failed (expected) or returned empty — both are fine
|
||||
$this->assertTrue(true);
|
||||
$this->addToAssertionCount(1);
|
||||
}
|
||||
|
||||
public function testGetContractLinesForCustomerAcceptsCustomerNoWithDash(): void
|
||||
@@ -410,6 +410,6 @@ class BcODataGatewayTest extends TestCase
|
||||
} catch (\RuntimeException) {
|
||||
$threw = true;
|
||||
}
|
||||
$this->assertTrue(true);
|
||||
$this->addToAssertionCount(1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -537,7 +537,6 @@ class DebitorDetailServiceTest extends TestCase
|
||||
|
||||
$result = DebitorDetailService::buildSupportDashboard($tickets, 48);
|
||||
|
||||
$this->assertTrue($result['ok']);
|
||||
$this->assertSame(4, $result['health']['total_tickets']);
|
||||
$this->assertSame(3, $result['health']['open_tickets']);
|
||||
$this->assertSame(1, $result['health']['critical_tickets']);
|
||||
@@ -566,7 +565,6 @@ class DebitorDetailServiceTest extends TestCase
|
||||
|
||||
$result = DebitorDetailService::buildSupportDashboard($tickets, 48);
|
||||
|
||||
$this->assertTrue($result['ok']);
|
||||
$this->assertSame(0, $result['health']['open_tickets']);
|
||||
$this->assertSame(0, $result['health']['critical_tickets']);
|
||||
$this->assertNull($result['health']['oldest_open_age_hours']);
|
||||
@@ -639,7 +637,6 @@ class DebitorDetailServiceTest extends TestCase
|
||||
'definitions_count' => 15,
|
||||
]);
|
||||
|
||||
$this->assertTrue($result['ok']);
|
||||
$this->assertSame(4, $result['health']['escalation_count']);
|
||||
$this->assertTrue($result['health']['escalation_available']);
|
||||
$this->assertSame(6, $result['meta']['escalation_tickets_considered']);
|
||||
|
||||
@@ -36,8 +36,7 @@ class TicketCommunicationServiceTest extends TestCase
|
||||
$service = new TicketCommunicationService($soapGateway, $odataGateway);
|
||||
$result = $service->loadTicketCommunicationFeed('T26-1216', 40);
|
||||
|
||||
$this->assertTrue($result['ok']);
|
||||
$this->assertIsArray($result['entries']);
|
||||
$this->assertNotEmpty($result['entries']);
|
||||
$this->assertGreaterThanOrEqual(3, count($result['entries']));
|
||||
$this->assertSame(true, $result['meta']['soap_used']);
|
||||
$this->assertSame(false, $result['meta']['fallback_used']);
|
||||
|
||||
Reference in New Issue
Block a user