botman/studio-addons

ask() method with a string argument can't be tested with assertQuestion

Opened this issue · 0 comments

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