studio-addons icon indicating copy to clipboard operation
studio-addons copied to clipboard

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

Open chimit opened this issue 5 years ago • 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

chimit avatar Dec 09 '20 04:12 chimit