studio-addons
studio-addons copied to clipboard
ask() method with a string argument can't be tested with assertQuestion
If you ask a question by providing a simple string as a question the assertQuestion fails, but assertReply passes. So it looks like the ask() method produces replies (BotMan\BotMan\Messages\Outgoing\OutgoingMessage) instead of questions (BotMan\BotMan\Messages\Outgoing\Question) if you pass strings to it.
// Conversation 1
$this->ask('How are you?', function (Answer $answer) {
// ...
});
// Test
$this->bot->assertQuestion('How are you?'); // fails
$this->bot->assertReply('How are you?'); // passes
// Conversation 2
$this->ask(Question::create('How are you?'), function (Answer $answer) {
// ...
});
// Test
$this->bot->assertQuestion('How are you?'); // passes
$this->bot->assertReply('How are you?'); // fails