Skip to content

Commit cefa48b

Browse files
committed
Add functional tests for the new Symfony module assertions
Cover assertSessionHasFlashMessage, mockService, seeNumQueriesIsLessThan, dontSeeDuplicateQueries, and the Messenger in-memory transport assertions (grab/seeContains/seeQueueCount/consume).
1 parent 1dd76e5 commit cefa48b

4 files changed

Lines changed: 42 additions & 0 deletions

File tree

tests/Functional/DoctrineCest.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,4 +43,11 @@ public function seeNumRecords(FunctionalTester $I)
4343
{
4444
$I->seeNumRecords(1, User::class);
4545
}
46+
47+
public function queryCountAssertions(FunctionalTester $I): void
48+
{
49+
$I->amOnPage('/run-queries');
50+
$I->seeNumQueriesIsLessThan(10);
51+
$I->dontSeeDuplicateQueries();
52+
}
4653
}

tests/Functional/MessengerCest.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,4 +43,17 @@ public function noMessagesDispatched(FunctionalTester $I): void
4343
$I->seeDispatchedMessageCount(0);
4444
$I->assertSame([], $I->grabDispatchedMessageClasses());
4545
}
46+
47+
public function messengerTransport(FunctionalTester $I): void
48+
{
49+
$I->amOnPage('/dispatch-message');
50+
$I->seeMessengerQueueCount(1, 'async');
51+
$I->seeMessengerTransportContains(SendWelcomeMessage::class, 'async');
52+
53+
$envelope = $I->grabMessengerTransport('async')->getSent()[0];
54+
$I->assertInstanceOf(SendWelcomeMessage::class, $envelope->getMessage());
55+
56+
$I->consumeMessengerMessages('async');
57+
$I->assertCount(1, $I->grabMessengerTransport('async')->getAcknowledged());
58+
}
4659
}

tests/Functional/ServicesCest.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
namespace App\Tests\Functional;
66

7+
use App\Service\Greeting;
78
use App\Tests\Support\FunctionalTester;
89
use Symfony\Component\Security\Core\Security;
910

@@ -14,4 +15,17 @@ public function grabService(FunctionalTester $I)
1415
$security = $I->grabService('security.helper');
1516
$I->assertInstanceOf(Security::class, $security);
1617
}
18+
19+
public function mockService(FunctionalTester $I): void
20+
{
21+
$I->mockService(Greeting::class, new class extends Greeting {
22+
public function greet(): string
23+
{
24+
return 'Mocked greeting!';
25+
}
26+
});
27+
28+
$I->amOnPage('/greeting');
29+
$I->see('Mocked greeting!');
30+
}
1731
}

tests/Functional/SessionCest.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,4 +96,12 @@ public function seeSessionHasValues(FunctionalTester $I)
9696

9797
$I->seeSessionHasValues(['_security_main', '_security_main']);
9898
}
99+
100+
public function assertSessionHasFlashMessage(FunctionalTester $I): void
101+
{
102+
$I->stopFollowingRedirects();
103+
$I->amOnPage('/flash');
104+
$I->assertSessionHasFlashMessage('success');
105+
$I->assertSessionHasFlashMessage('success', 'Welcome back!');
106+
}
99107
}

0 commit comments

Comments
 (0)