I have code in my controller like this:
/**
* @param Request $request
* @param $verifiedResponse
* @Route(...)
* @return mixed
*/
public function someAction(Request $request)
{
$session = $request->getSession();
$session->set('key', mt_rand(0, 999));
if ($request->get('key') === $session->get('key')) {
return true;
} else {
return $session->get('key');
}
throw $this->createAccessDeniedException();
}
And here is my 2 unit tests:
public function testSomeActionFirst()
{
$client = static::createClient();
$client->request('POST', $this->generateRoute('my_route'));
return $client->getResponse()->getContent();
}
public function testSomeActionSecond($key)
{
$client = static::createClient();
$client->request('POST', $this->generateRoute('my_route'), [], [
'key' => $key
]);
$this->assertTrue($client->getResponse()->isOk()
}
And second test always fails, because response code is 403
, because sessions does not saving between requests. How I can fix it?