Пришлось писать функциональный септ в codeception. Он просто создает 2 разговора и нажимает кнопку удаления на одном из них и проверяет, был ли удален правильный разговор. Я написал тест, чтобы убедиться, что все работает правильно, но это не так. Логика теста следующая:
- Вход пользователя
- Пользователь отправляет 2 сообщения разным пользователям (будет создано 2 диалога).
- Пользователь нажимает кнопку «Удалить беседу» на одном из них.
- Пользователь проверяет, был ли удален нужный разговор.
<?php
$I = new FunctionalTester($scenario);
$I->am('a user');
$I->wantTo('delete existing conversation');
$user = $I->signIn();
$I->sendMessage('other', 'some random message');
$I->sendMessage('AnotherUser', 'other random message');
dd($user->conversations->count());
$I->click('Delete conversation');
$I->seeCurrentUrlEquals('/inbox');
$I->dontSee('other random message');
$I->see('some random message');
Но проблема в том, что количество разговоров пользователя всегда равно 1. Независимо от того, сколько сообщений я отправил новым пользователям, dd($user->conversations->count())
всегда равно 1. Но сообщение было отправлено (однако, чтобы отправить сообщение, вы должны создать разговор). Я не знаю, как это возможно? Я написал интеграционный тест, чтобы проверить, правильно ли работает функция, которая создает диалог. И это. Я не знаю, как проверить логику приложения.