Sha256: 3842c1bd53751c5736560edc165a5739aaabf8b60799452ede42c9b681d4d80b
Contents?: true
Size: 1.7 KB
Versions: 4
Compression:
Stored size: 1.7 KB
Contents
module Lita module RSpec def self.included(base) base.class_eval do let(:robot) { Robot.new } let(:source) { Source.new(user) } let(:user) { User.new("1", name: "Test User") } before do allow(Lita).to receive(:handlers).and_return([described_class]) stub_const("Lita::REDIS_NAMESPACE", "lita.test") keys = Lita.redis.keys("*") Lita.redis.del(keys) unless keys.empty? allow(robot).to receive(:send_messages) end end end def expect_reply(*arguments, invert: false) method = invert ? :not_to : :to expect(robot).public_send( method, receive(:send_messages).with(source, *arguments) ) end alias_method :expect_replies, :expect_reply def expect_no_reply(*arguments) expect_reply(*arguments, invert: true) end alias_method :expect_no_replies, :expect_no_reply def send_test_message(body) message = Message.new(robot, body, source) robot.receive(message) end def routes(message) RouteMatcher.new(self, message) end def does_not_route(message) RouteMatcher.new(self, message, invert: true) end alias_method :doesnt_route, :does_not_route end class RouteMatcher def initialize(context, message_body, invert: false) @context = context @message_body = message_body @method = invert ? :not_to : :to end def to(route) @context.expect_any_instance_of( @context.described_class ).public_send(@method, @context.receive(route)) @context.send_test_message(@message_body) end end end RSpec.configure do |config| config.include Lita::RSpec, lita: true end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
lita-1.1.2 | lib/lita/rspec.rb |
lita-1.1.1 | lib/lita/rspec.rb |
lita-1.1.0 | lib/lita/rspec.rb |
lita-1.0.0 | lib/lita/rspec.rb |