Skip to content

Commit 32f357c

Browse files
authored
Added dontSeeEventTriggered function (#83)
1 parent da74bed commit 32f357c

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

src/Codeception/Module/Symfony.php

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1279,6 +1279,41 @@ public function seeEventTriggered($expected): void
12791279
}
12801280
}
12811281

1282+
/**
1283+
* Make sure events did not fire during the test.
1284+
*
1285+
* ``` php
1286+
* <?php
1287+
* $I->dontSeeEventTriggered('App\MyEvent');
1288+
* $I->dontSeeEventTriggered(new App\Events\MyEvent());
1289+
* $I->dontSeeEventTriggered(['App\MyEvent', 'App\MyOtherEvent']);
1290+
* ```
1291+
* @param string|object|string[] $expected
1292+
*/
1293+
public function dontSeeEventTriggered($expected): void
1294+
{
1295+
/** @var EventDataCollector $eventCollector */
1296+
$eventCollector = $this->grabCollector('events', __FUNCTION__);
1297+
1298+
/** @var Data $data */
1299+
$data = $eventCollector->getNotCalledListeners();
1300+
1301+
$actual = $data->getValue(true);
1302+
$expected = is_array($expected) ? $expected : [$expected];
1303+
1304+
foreach ($expected as $expectedEvent) {
1305+
$notTriggered = false;
1306+
$expectedEvent = is_object($expectedEvent) ? get_class($expectedEvent) : $expectedEvent;
1307+
1308+
foreach ($actual as $actualEvent) {
1309+
if (strpos($actualEvent['pretty'], $expectedEvent) === 0) {
1310+
$notTriggered = true;
1311+
}
1312+
}
1313+
$this->assertTrue($notTriggered, "The '$expectedEvent' event triggered");
1314+
}
1315+
}
1316+
12821317
/**
12831318
* Checks that current page matches action
12841319
*

0 commit comments

Comments
 (0)