Skip to content

Commit 33aa68c

Browse files
authored
Added seeEventTriggered function (Codeception#68)
1 parent 5f181e6 commit 33aa68c

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

src/Codeception/Module/Symfony.php

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1133,6 +1133,43 @@ public function grabParameter(string $name)
11331133
return $parameterBag->get($name);
11341134
}
11351135

1136+
/**
1137+
* Make sure events fired during the test.
1138+
*
1139+
* ``` php
1140+
* <?php
1141+
* $I->seeEventTriggered('App\MyEvent');
1142+
* $I->seeEventTriggered(new App\Events\MyEvent());
1143+
* $I->seeEventTriggered(['App\MyEvent', 'App\MyOtherEvent']);
1144+
* ```
1145+
* @param string|object|string[] $expected
1146+
*/
1147+
public function seeEventTriggered($expected)
1148+
{
1149+
$eventCollector = $this->grabCollector('events', __FUNCTION__);
1150+
1151+
$data = $eventCollector->getCalledListeners();
1152+
1153+
if ($data->count() === 0) {
1154+
$this->fail('No event was triggered');
1155+
}
1156+
1157+
$actual = $data->getValue(true);
1158+
$expected = is_array($expected) ? $expected : [$expected];
1159+
1160+
foreach ($expected as $expectedEvent) {
1161+
$triggered = false;
1162+
$expectedEvent = is_object($expectedEvent) ? get_class($expectedEvent) : $expectedEvent;
1163+
1164+
foreach ($actual as $actualEvent) {
1165+
if (strpos($actualEvent['pretty'], $expectedEvent) === 0) {
1166+
$triggered = true;
1167+
}
1168+
}
1169+
$this->assertTrue($triggered, "The '$expectedEvent' event did not trigger");
1170+
}
1171+
}
1172+
11361173
/**
11371174
* Checks that current page matches action
11381175
*

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy