Hi,
So I’m trying to implement a test to verify that a submission is deleted. Trying to stick with best practices, I use a simple AJAX script to send a POST request to delete an entry from a table. Once the request is executed, the browser is supposed to redirect to another page. In my browser, it behaves exactly as expected, however, in Codeception, the test fails.
What do I need to do in Codeception so that this test passes correctly?
Here is the function for the deletion
public function actionDelete()
{
if (Yii::$app->request->isAjax && Yii::$app->request->isPost) {
$today = Today::findOne(['user_id' => Yii::$app->user->id]);
if ($today->delete()) {
return $this->redirect('new-today');
}
}
}
And here is the test function in Codeception
public function deleteTodaysResponse(FunctionalTester $I)
{
$user = $I->grabFixture('user', 'user1');
$today = $I->grabFixture('today', '1');
$I->amLoggedInAs($user);
$I->amOnRoute('today/my-today');
$I->see($today['response']);
$I->click('delete');
$I->seeInCurrentUrl('today/new-today');
$I->dontSeeRecord('frontend\models\Today', array('user_id' => $user['id']));
}
I’ve also tried replacing
$I->click('delete');
With
$I->sendAjaxPostRequest('delete');
Still no luck. Fails at “$I->seeInCurrentUrl(‘today/new-today’);” in either case.
What am I doing wrong here?