|
require 'rspec/expectations'
|
|
|
|
RSpec::Matchers.define :respond_with_slack_message do |expected|
|
|
match do |actual|
|
|
channel, user, message = parse(actual)
|
|
app = SlackMathbot::App.new
|
|
SlackMathbot.config.user = 'mathbot'
|
|
allow(Giphy).to receive(:random)
|
|
expect(SlackMathbot::Commands::Base).to receive(:send_message).with(channel, expected)
|
|
app.send(:message, text: message, channel: channel, user: user)
|
|
true
|
|
end
|
|
|
|
private
|
|
|
|
def parse(actual)
|
|
actual = { message: actual } unless actual.is_a?(Hash)
|
|
[actual[:channel] || 'channel', actual[:user] || 'user', actual[:message]]
|
|
end
|
|
end
|