From 848ee4931ee7fbfa9768c50017c42ba99cbb0240 Mon Sep 17 00:00:00 2001 From: Aaron Gustavo Nieves Date: Tue, 14 Apr 2026 14:45:48 -0500 Subject: [PATCH] Fix inconsistencies across assertion traits --- src/Codeception/Module/Symfony.php | 14 +++++++------- .../Module/Symfony/SessionAssertionsTrait.php | 13 ++++++++----- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src/Codeception/Module/Symfony.php b/src/Codeception/Module/Symfony.php index 451e3677..412d182e 100644 --- a/src/Codeception/Module/Symfony.php +++ b/src/Codeception/Module/Symfony.php @@ -389,10 +389,10 @@ protected function debugResponse(mixed $url): void return; } - $this->debugCollector($profile, DataCollectorName::SECURITY->value); - $this->debugCollector($profile, DataCollectorName::MAILER->value); - $this->debugCollector($profile, DataCollectorName::NOTIFIER->value); - $this->debugCollector($profile, DataCollectorName::TIME->value); + $this->debugCollector($profile, DataCollectorName::SECURITY); + $this->debugCollector($profile, DataCollectorName::MAILER); + $this->debugCollector($profile, DataCollectorName::NOTIFIER); + $this->debugCollector($profile, DataCollectorName::TIME); } protected function doRebootClientKernel(): void @@ -463,13 +463,13 @@ private function debugTimeData(TimeDataCollector $timeCollector): void $this->debugSection('Time', sprintf('%.2f ms', $timeCollector->getDuration())); } - private function debugCollector(Profile $profile, string $name): void + private function debugCollector(Profile $profile, DataCollectorName $name): void { - if (!$profile->hasCollector($name)) { + if (!$profile->hasCollector($name->value)) { return; } - $collector = $profile->getCollector($name); + $collector = $profile->getCollector($name->value); match (true) { $collector instanceof SecurityDataCollector => $this->debugSecurityData($collector), $collector instanceof MessageDataCollector => $this->debugMailerData($collector), diff --git a/src/Codeception/Module/Symfony/SessionAssertionsTrait.php b/src/Codeception/Module/Symfony/SessionAssertionsTrait.php index c0bcd3df..2486a343 100644 --- a/src/Codeception/Module/Symfony/SessionAssertionsTrait.php +++ b/src/Codeception/Module/Symfony/SessionAssertionsTrait.php @@ -20,7 +20,6 @@ use function class_exists; use function get_debug_type; -use function in_array; use function is_int; use function is_string; use function serialize; @@ -125,8 +124,9 @@ public function logoutProgrammatically(): void $cookieJar = $this->getClient()->getCookieJar(); foreach ($cookieJar->all() as $cookie) { - if (in_array($cookie->getName(), ['MOCKSESSID', 'REMEMBERME', $sessionName], true)) { - $cookieJar->expire($cookie->getName()); + $cookieName = $cookie->getName(); + if ($cookieName === 'MOCKSESSID' || $cookieName === 'REMEMBERME' || $cookieName === $sessionName) { + $cookieJar->expire($cookieName); } } $cookieJar->flushExpiredCookies(); @@ -164,15 +164,18 @@ public function seeInSession(string $attribute, mixed $value = null): void */ public function seeSessionHasValues(array $bindings): void { + $session = $this->getCurrentSession(); + foreach ($bindings as $key => $value) { if (!is_int($key)) { - $this->seeInSession($key, $value); + $this->assertTrue($session->has($key), "No session attribute with name '{$key}'"); + $this->assertSame($value, $session->get($key)); continue; } if (!is_string($value)) { throw new InvalidArgumentException(sprintf('Attribute name must be string, %s given.', get_debug_type($value))); } - $this->seeInSession($value); + $this->assertTrue($session->has($value), "No session attribute with name '{$value}'"); } }