lita 3.3.1 → 4.0.0.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +1 -1
- data/.travis.yml +3 -0
- data/lib/lita.rb +45 -97
- data/lib/lita/adapter.rb +38 -17
- data/lib/lita/adapters/shell.rb +5 -3
- data/lib/lita/authorization.rb +109 -60
- data/lib/lita/builder.rb +38 -0
- data/lib/lita/callback.rb +37 -0
- data/lib/lita/cli.rb +2 -0
- data/lib/lita/config.rb +1 -18
- data/lib/lita/configurable.rb +29 -0
- data/lib/lita/configuration.rb +179 -0
- data/lib/lita/configuration_validator.rb +66 -0
- data/lib/lita/daemon.rb +4 -11
- data/lib/lita/default_configuration.rb +146 -0
- data/lib/lita/errors.rb +9 -0
- data/lib/lita/handler.rb +5 -264
- data/lib/lita/handler/chat_router.rb +130 -0
- data/lib/lita/handler/common.rb +114 -0
- data/lib/lita/handler/event_router.rb +77 -0
- data/lib/lita/handler/http_router.rb +26 -0
- data/lib/lita/handlers/authorization.rb +13 -18
- data/lib/lita/handlers/deprecation_check.rb +24 -0
- data/lib/lita/handlers/help.rb +5 -3
- data/lib/lita/handlers/info.rb +2 -2
- data/lib/lita/http_callback.rb +29 -0
- data/lib/lita/http_route.rb +41 -26
- data/lib/lita/namespace.rb +23 -0
- data/lib/lita/rack_app.rb +29 -2
- data/lib/lita/registry.rb +133 -0
- data/lib/lita/robot.rb +58 -20
- data/lib/lita/route_validator.rb +12 -4
- data/lib/lita/rspec.rb +23 -14
- data/lib/lita/rspec/handler.rb +93 -23
- data/lib/lita/rspec/matchers/chat_route_matcher.rb +48 -0
- data/lib/lita/rspec/matchers/deprecated.rb +36 -0
- data/lib/lita/rspec/matchers/event_route_matcher.rb +27 -0
- data/lib/lita/rspec/matchers/http_route_matcher.rb +18 -60
- data/lib/lita/user.rb +0 -6
- data/lib/lita/util.rb +1 -8
- data/lib/lita/version.rb +1 -1
- data/lita.gemspec +1 -0
- data/spec/lita/adapter_spec.rb +25 -7
- data/spec/lita/adapters/shell_spec.rb +24 -4
- data/spec/lita/authorization_spec.rb +57 -38
- data/spec/lita/builder_spec.rb +39 -0
- data/spec/lita/config_spec.rb +0 -24
- data/spec/lita/configuration_spec.rb +222 -0
- data/spec/lita/configuration_validator_spec.rb +112 -0
- data/spec/lita/daemon_spec.rb +2 -2
- data/spec/lita/default_configuration_spec.rb +254 -0
- data/spec/lita/handler/chat_router_spec.rb +192 -0
- data/spec/lita/handler/common_spec.rb +272 -0
- data/spec/lita/handler/event_router_spec.rb +54 -0
- data/spec/lita/handler/http_router_spec.rb +106 -0
- data/spec/lita/handler_spec.rb +20 -291
- data/spec/lita/handlers/authorization_spec.rb +9 -11
- data/spec/lita/handlers/deprecation_check_spec.rb +21 -0
- data/spec/lita/handlers/help_spec.rb +31 -9
- data/spec/lita/handlers/info_spec.rb +2 -2
- data/spec/lita/handlers/room_spec.rb +5 -3
- data/spec/lita/robot_spec.rb +30 -11
- data/spec/lita/rspec_spec.rb +71 -31
- data/spec/lita/user_spec.rb +2 -2
- data/spec/lita_spec.rb +62 -4
- data/spec/spec_helper.rb +7 -0
- data/templates/locales/en.yml +56 -4
- data/templates/plugin/gemspec.tt +1 -0
- data/templates/plugin/spec/spec_helper.tt +4 -0
- metadata +54 -8
- data/lib/lita/rspec/matchers/event_subscription_matcher.rb +0 -67
- data/lib/lita/rspec/matchers/route_matcher.rb +0 -69
- data/spec/lita/rack_app_spec.rb +0 -92
data/lib/lita/robot.rb
CHANGED
@@ -4,10 +4,17 @@ module Lita
|
|
4
4
|
# registered handlers. Can send outgoing chat messages and set the topic
|
5
5
|
# of chat rooms.
|
6
6
|
class Robot
|
7
|
+
extend Forwardable
|
8
|
+
|
7
9
|
# A +Rack+ application used for the built-in web server.
|
8
10
|
# @return [Rack::Builder] The +Rack+ app.
|
9
11
|
attr_reader :app
|
10
12
|
|
13
|
+
# The {Authorization} object for the currently running robot.
|
14
|
+
# @return [Lita::Authorization] The authorization object.
|
15
|
+
# @since 4.0.0
|
16
|
+
attr_reader :auth
|
17
|
+
|
11
18
|
# The name the robot will look for in incoming messages to determine if it's
|
12
19
|
# being addressed.
|
13
20
|
# @return [String] The mention name.
|
@@ -22,12 +29,21 @@ module Lita
|
|
22
29
|
# @return [String] The robot's name.
|
23
30
|
attr_reader :name
|
24
31
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
32
|
+
# The {Registry} for the currently running robot.
|
33
|
+
# @return [Lita::Registry] The registry.
|
34
|
+
# @since 4.0.0
|
35
|
+
attr_reader :registry
|
36
|
+
|
37
|
+
def_delegators :registry, :config, :adapters, :handlers, :hooks
|
38
|
+
|
39
|
+
# @param registry [Lita::Registry] The registry for the robot's configuration and plugins.
|
40
|
+
def initialize(registry = Lita)
|
41
|
+
@registry = registry
|
42
|
+
@name = config.robot.name
|
43
|
+
@mention_name = config.robot.mention_name || @name
|
44
|
+
@alias = config.robot.alias
|
45
|
+
@app = RackApp.build(self)
|
46
|
+
@auth = Authorization.new(config)
|
31
47
|
trigger(:loaded)
|
32
48
|
end
|
33
49
|
|
@@ -36,7 +52,13 @@ module Lita
|
|
36
52
|
# @param message [Lita::Message] The incoming message.
|
37
53
|
# @return [void]
|
38
54
|
def receive(message)
|
39
|
-
|
55
|
+
matched = handlers.map do |handler|
|
56
|
+
next unless handler.respond_to?(:dispatch)
|
57
|
+
|
58
|
+
handler.dispatch(self, message)
|
59
|
+
end.any?
|
60
|
+
|
61
|
+
trigger(:unhandled_message, message: message) unless matched
|
40
62
|
end
|
41
63
|
|
42
64
|
# Starts the robot, booting the web server and delegating to the adapter to
|
@@ -44,7 +66,7 @@ module Lita
|
|
44
66
|
# @return [void]
|
45
67
|
def run
|
46
68
|
run_app
|
47
|
-
|
69
|
+
adapter.run
|
48
70
|
rescue Interrupt
|
49
71
|
shut_down
|
50
72
|
end
|
@@ -54,7 +76,7 @@ module Lita
|
|
54
76
|
# @return [void]
|
55
77
|
# @since 3.0.0
|
56
78
|
def join(room_id)
|
57
|
-
|
79
|
+
adapter.join(room_id)
|
58
80
|
end
|
59
81
|
|
60
82
|
# Makes the robot part from the room with the specified ID.
|
@@ -62,7 +84,7 @@ module Lita
|
|
62
84
|
# @return [void]
|
63
85
|
# @since 3.0.0
|
64
86
|
def part(room_id)
|
65
|
-
|
87
|
+
adapter.part(room_id)
|
66
88
|
end
|
67
89
|
|
68
90
|
# Sends one or more messages to a user or room.
|
@@ -72,7 +94,7 @@ module Lita
|
|
72
94
|
# @param strings [String, Array<String>] One or more strings to send.
|
73
95
|
# @return [void]
|
74
96
|
def send_messages(target, *strings)
|
75
|
-
|
97
|
+
adapter.send_messages(target, strings.flatten)
|
76
98
|
end
|
77
99
|
alias_method :send_message, :send_messages
|
78
100
|
|
@@ -89,7 +111,7 @@ module Lita
|
|
89
111
|
|
90
112
|
mention_name = target.user.mention_name
|
91
113
|
prefixed_strings = strings.map do |s|
|
92
|
-
"#{
|
114
|
+
"#{adapter.mention_format(mention_name).strip} #{s}"
|
93
115
|
end
|
94
116
|
|
95
117
|
send_messages(target, *prefixed_strings)
|
@@ -101,7 +123,7 @@ module Lita
|
|
101
123
|
# @param topic [String] The new topic message to set.
|
102
124
|
# @return [void]
|
103
125
|
def set_topic(target, topic)
|
104
|
-
|
126
|
+
adapter.set_topic(target, topic)
|
105
127
|
end
|
106
128
|
|
107
129
|
# Gracefully shuts the robot down, stopping the web server and delegating
|
@@ -112,7 +134,7 @@ module Lita
|
|
112
134
|
trigger(:shut_down_started)
|
113
135
|
@server.stop(true) if @server
|
114
136
|
@server_thread.join if @server_thread
|
115
|
-
|
137
|
+
adapter.shut_down
|
116
138
|
trigger(:shut_down_complete)
|
117
139
|
end
|
118
140
|
|
@@ -123,33 +145,49 @@ module Lita
|
|
123
145
|
# @param payload [Hash] An optional hash of arbitrary data.
|
124
146
|
# @return [void]
|
125
147
|
def trigger(event_name, payload = {})
|
126
|
-
|
148
|
+
handlers.each do |handler|
|
149
|
+
next unless handler.respond_to?(:trigger)
|
150
|
+
|
127
151
|
handler.trigger(self, event_name, payload)
|
128
152
|
end
|
129
153
|
end
|
130
154
|
|
131
155
|
private
|
132
156
|
|
157
|
+
# Loads and caches the adapter on first access.
|
158
|
+
def adapter
|
159
|
+
@adapter ||= load_adapter
|
160
|
+
end
|
161
|
+
|
133
162
|
# Loads the selected adapter.
|
134
163
|
def load_adapter
|
135
|
-
adapter_name =
|
136
|
-
adapter_class =
|
164
|
+
adapter_name = config.robot.adapter
|
165
|
+
adapter_class = adapters[adapter_name.to_sym]
|
137
166
|
|
138
167
|
unless adapter_class
|
139
168
|
Lita.logger.fatal I18n.t("lita.robot.unknown_adapter", adapter: adapter_name)
|
140
169
|
abort
|
141
170
|
end
|
142
171
|
|
143
|
-
|
172
|
+
adapter_class.new(self)
|
144
173
|
end
|
145
174
|
|
146
175
|
# Starts the web server.
|
147
176
|
def run_app
|
148
|
-
http_config =
|
177
|
+
http_config = config.http
|
149
178
|
|
150
179
|
@server_thread = Thread.new do
|
151
180
|
@server = Puma::Server.new(app)
|
152
|
-
|
181
|
+
begin
|
182
|
+
@server.add_tcp_listener(http_config.host, http_config.port.to_i)
|
183
|
+
rescue Errno::EADDRINUSE, Errno::EACCES => e
|
184
|
+
Lita.logger.fatal I18n.t(
|
185
|
+
"lita.http.exception",
|
186
|
+
message: e.message,
|
187
|
+
backtrace: e.backtrace.join("\n")
|
188
|
+
)
|
189
|
+
abort
|
190
|
+
end
|
153
191
|
@server.min_threads = http_config.min_threads
|
154
192
|
@server.max_threads = http_config.max_threads
|
155
193
|
@server.run
|
data/lib/lita/route_validator.rb
CHANGED
@@ -14,6 +14,10 @@ module Lita
|
|
14
14
|
# The route being checked.
|
15
15
|
attr_reader :route
|
16
16
|
|
17
|
+
# @param handler [Lita::Handler] The handler the route belongs to.
|
18
|
+
# @param route [Lita::Handler::ChatRouter::Route] The route being validated.
|
19
|
+
# @param message [Lita::Message] The incoming message.
|
20
|
+
# @param robot [Lita::Robot] The currently running robot.
|
17
21
|
def initialize(handler, route, message, robot)
|
18
22
|
@handler = handler
|
19
23
|
@route = route
|
@@ -27,7 +31,7 @@ module Lita
|
|
27
31
|
return unless command_satisfied?(route, message)
|
28
32
|
return if from_self?(message, robot)
|
29
33
|
return unless matches_pattern?(route, message)
|
30
|
-
return unless authorized?(message.user, route.required_groups)
|
34
|
+
return unless authorized?(robot, message.user, route.required_groups)
|
31
35
|
return unless passes_route_hooks?(route, message, robot)
|
32
36
|
|
33
37
|
true
|
@@ -52,15 +56,19 @@ module Lita
|
|
52
56
|
|
53
57
|
# Allow custom route hooks to reject the route
|
54
58
|
def passes_route_hooks?(route, message, robot)
|
55
|
-
|
59
|
+
robot.hooks[:validate_route].all? do |hook|
|
56
60
|
hook.call(handler: handler, route: route, message: message, robot: robot)
|
57
61
|
end
|
58
62
|
end
|
59
63
|
|
60
64
|
# User must be in auth group if route is restricted.
|
61
|
-
def authorized?(user, required_groups)
|
65
|
+
def authorized?(robot, user, required_groups)
|
62
66
|
required_groups.nil? || required_groups.any? do |group|
|
63
|
-
|
67
|
+
if Lita.version_3_compatibility_mode?
|
68
|
+
Lita::Authorization.user_in_group?(user, group)
|
69
|
+
else
|
70
|
+
robot.auth.user_in_group?(user, group)
|
71
|
+
end
|
64
72
|
end
|
65
73
|
end
|
66
74
|
end
|
data/lib/lita/rspec.rb
CHANGED
@@ -9,6 +9,7 @@ end
|
|
9
9
|
major, *_unused = RSpec::Core::Version::STRING.split(/\./)
|
10
10
|
abort I18n.t("lita.rspec.version_3_required") if major.to_i < 3
|
11
11
|
|
12
|
+
require_relative "../lita"
|
12
13
|
require_relative "rspec/handler"
|
13
14
|
|
14
15
|
module Lita
|
@@ -23,26 +24,21 @@ module Lita
|
|
23
24
|
# @return [void]
|
24
25
|
def included(base)
|
25
26
|
base.class_eval do
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
27
|
+
let(:registry) do
|
28
|
+
if Lita.version_3_compatibility_mode?
|
29
|
+
Lita
|
30
|
+
else
|
31
|
+
Registry.new
|
32
|
+
end
|
30
33
|
end
|
31
|
-
end
|
32
34
|
|
33
|
-
prepare_redis(base)
|
34
|
-
end
|
35
|
-
|
36
|
-
private
|
37
|
-
|
38
|
-
# Set up Redis to use the test namespace and clear out before each
|
39
|
-
# example.
|
40
|
-
def prepare_redis(base)
|
41
|
-
base.class_eval do
|
42
35
|
before do
|
36
|
+
logger = double("Logger").as_null_object
|
37
|
+
allow(Lita).to receive(:logger).and_return(logger)
|
43
38
|
stub_const("Lita::REDIS_NAMESPACE", "lita.test")
|
44
39
|
keys = Lita.redis.keys("*")
|
45
40
|
Lita.redis.del(keys) unless keys.empty?
|
41
|
+
registry.clear_config if Lita.version_3_compatibility_mode?
|
46
42
|
end
|
47
43
|
end
|
48
44
|
end
|
@@ -50,7 +46,20 @@ module Lita
|
|
50
46
|
end
|
51
47
|
end
|
52
48
|
|
49
|
+
Lita.test_mode = true
|
50
|
+
Lita.version_3_compatibility_mode = true
|
51
|
+
|
53
52
|
RSpec.configure do |config|
|
54
53
|
config.include Lita::RSpec, lita: true
|
55
54
|
config.include Lita::RSpec::Handler, lita_handler: true
|
55
|
+
|
56
|
+
config.before(:suite) do
|
57
|
+
if Lita.version_3_compatibility_mode?
|
58
|
+
if RSpec.configuration.color_enabled?
|
59
|
+
warn "\e[31m" + I18n.t("lita.rspec.lita_3_compatibility_mode") + "\e[0m"
|
60
|
+
else
|
61
|
+
warn I18n.t("lita.rspec.lita_3_compatibility_mode")
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
56
65
|
end
|
data/lib/lita/rspec/handler.rb
CHANGED
@@ -1,17 +1,20 @@
|
|
1
|
-
require_relative "matchers/
|
1
|
+
require_relative "matchers/chat_route_matcher"
|
2
2
|
require_relative "matchers/http_route_matcher"
|
3
|
-
require_relative "matchers/
|
3
|
+
require_relative "matchers/event_route_matcher"
|
4
|
+
require_relative "matchers/deprecated"
|
4
5
|
|
5
6
|
module Lita
|
6
7
|
module RSpec
|
7
8
|
# Extras for +RSpec+ to facilitate testing Lita handlers.
|
8
9
|
module Handler
|
10
|
+
include Matchers::ChatRouteMatcher
|
11
|
+
include Matchers::HTTPRouteMatcher
|
12
|
+
include Matchers::EventRouteMatcher
|
13
|
+
|
9
14
|
class << self
|
10
15
|
# Sets up the RSpec environment to easily test Lita handlers.
|
11
16
|
def included(base)
|
12
|
-
base.
|
13
|
-
include Lita::RSpec
|
14
|
-
end
|
17
|
+
base.send(:include, Lita::RSpec)
|
15
18
|
|
16
19
|
prepare_handlers(base)
|
17
20
|
prepare_let_blocks(base)
|
@@ -24,14 +27,20 @@ module Lita
|
|
24
27
|
# Stub Lita.handlers.
|
25
28
|
def prepare_handlers(base)
|
26
29
|
base.class_eval do
|
27
|
-
before
|
30
|
+
before do
|
31
|
+
if Lita.version_3_compatibility_mode?
|
32
|
+
allow(Lita).to receive(:handlers).and_return(Set.new([described_class]))
|
33
|
+
else
|
34
|
+
registry.register_handler(described_class)
|
35
|
+
end
|
36
|
+
end
|
28
37
|
end
|
29
38
|
end
|
30
39
|
|
31
40
|
# Create common test objects.
|
32
41
|
def prepare_let_blocks(base)
|
33
42
|
base.class_eval do
|
34
|
-
let(:robot) { Robot.new }
|
43
|
+
let(:robot) { Robot.new(registry) }
|
35
44
|
let(:source) { Source.new(user: user) }
|
36
45
|
let(:user) { User.create("1", name: "Test User") }
|
37
46
|
let(:replies) { [] }
|
@@ -82,41 +91,78 @@ module Lita
|
|
82
91
|
send_message("#{robot.mention_name}: #{body}", as: as)
|
83
92
|
end
|
84
93
|
|
94
|
+
# Returns a Faraday connection hooked up to the currently running robot's Rack app.
|
95
|
+
# @return [Faraday::Connection] The connection.
|
96
|
+
# @since 4.0.0
|
97
|
+
def http
|
98
|
+
begin
|
99
|
+
require "rack/test"
|
100
|
+
rescue LoadError
|
101
|
+
raise LoadError, I18n.t("lita.rspec.rack_test_required")
|
102
|
+
end unless Rack.const_defined?(:Test)
|
103
|
+
|
104
|
+
Faraday::Connection.new { |c| c.adapter(:rack, robot.app) }
|
105
|
+
end
|
106
|
+
|
85
107
|
# Starts a chat routing test chain, asserting that a message should
|
86
108
|
# trigger a route.
|
87
109
|
# @param message [String] The message that should trigger the route.
|
88
|
-
# @return [Matchers::
|
110
|
+
# @return [Matchers::Deprecated] A {Matchers::Deprecated} that should have +to+
|
89
111
|
# called on it to complete the test.
|
112
|
+
# @deprecated Will be removed in Lita 5.0. Use +is_expected.to route+ instead.
|
90
113
|
def routes(message)
|
91
|
-
|
114
|
+
STDERR.puts I18n.t(
|
115
|
+
"lita.rspec.matcher_deprecated",
|
116
|
+
old_method: "routes",
|
117
|
+
new_method: "is_expected.to route",
|
118
|
+
)
|
119
|
+
Matchers::Deprecated.new(self, :route, true, message)
|
92
120
|
end
|
93
121
|
|
94
122
|
# Starts a chat routing test chain, asserting that a message should not
|
95
123
|
# trigger a route.
|
96
124
|
# @param message [String] The message that should not trigger the route.
|
97
|
-
# @return [Matchers::
|
125
|
+
# @return [Matchers::Deprecated] A {Matchers::Deprecated} that should have +to+
|
98
126
|
# called on it to complete the test.
|
127
|
+
# @deprecated Will be removed in Lita 5.0. Use +is_expected.not_to route+ instead.
|
99
128
|
def does_not_route(message)
|
100
|
-
|
129
|
+
STDERR.puts I18n.t(
|
130
|
+
"lita.rspec.matcher_deprecated",
|
131
|
+
old_method: "does_not_route",
|
132
|
+
new_method: "is_expected.not_to route",
|
133
|
+
)
|
134
|
+
Matchers::Deprecated.new(self, :route, false, message)
|
101
135
|
end
|
102
136
|
alias_method :doesnt_route, :does_not_route
|
103
137
|
|
104
138
|
# Starts a chat routing test chain, asserting that a "command" message
|
105
139
|
# should trigger a route.
|
106
140
|
# @param message [String] The message that should trigger the route.
|
107
|
-
# @return [Matchers::
|
141
|
+
# @return [Matchers::Deprecated] A {Matchers::Deprecated} that should have +to+
|
108
142
|
# called on it to complete the test.
|
143
|
+
# @deprecated Will be removed in Lita 5.0. Use +is_expected.to route_command+ instead.
|
109
144
|
def routes_command(message)
|
110
|
-
|
145
|
+
STDERR.puts I18n.t(
|
146
|
+
"lita.rspec.matcher_deprecated",
|
147
|
+
old_method: "routes_command",
|
148
|
+
new_method: "is_expected.to route_command",
|
149
|
+
)
|
150
|
+
Matchers::Deprecated.new(self, :route_command, true, message)
|
111
151
|
end
|
112
152
|
|
113
153
|
# Starts a chat routing test chain, asserting that a "command" message
|
114
154
|
# should not trigger a route.
|
115
155
|
# @param message [String] The message that should not trigger the route.
|
116
|
-
# @return [Matchers::
|
156
|
+
# @return [Matchers::Deprecated] A {Matchers::Deprecated} that should have +to+
|
117
157
|
# called on it to complete the test.
|
158
|
+
# @deprecated Will be removed in Lita 5.0. Use +is_expected.not_to route_command+ instead.
|
118
159
|
def does_not_route_command(message)
|
119
|
-
|
160
|
+
STDERR.puts I18n.t(
|
161
|
+
"lita.rspec.matcher_deprecated",
|
162
|
+
old_method: "does_not_route_command",
|
163
|
+
new_method: "is_expected.not_to route_command",
|
164
|
+
)
|
165
|
+
Matchers::Deprecated.new(self, :route_command, false, message)
|
120
166
|
end
|
121
167
|
alias_method :doesnt_route_command, :does_not_route_command
|
122
168
|
|
@@ -126,10 +172,16 @@ module Lita
|
|
126
172
|
# the route.
|
127
173
|
# @param path [String] The path URL component that should trigger the
|
128
174
|
# route.
|
129
|
-
# @return [Matchers::
|
175
|
+
# @return [Matchers::Deprecated] A {Matchers::Deprecated} that should
|
130
176
|
# have +to+ called on it to complete the test.
|
177
|
+
# @deprecated Will be removed in Lita 5.0. Use +is_expected.to route_http+ instead.
|
131
178
|
def routes_http(http_method, path)
|
132
|
-
|
179
|
+
STDERR.puts I18n.t(
|
180
|
+
"lita.rspec.matcher_deprecated",
|
181
|
+
old_method: "routes_http",
|
182
|
+
new_method: "is_expected.to route_http",
|
183
|
+
)
|
184
|
+
Matchers::Deprecated.new(self, :route_http, true, http_method, path)
|
133
185
|
end
|
134
186
|
|
135
187
|
# Starts an HTTP routing test chain, asserting that a request to the given
|
@@ -138,10 +190,16 @@ module Lita
|
|
138
190
|
# trigger the route.
|
139
191
|
# @param path [String] The path URL component that should not trigger the
|
140
192
|
# route.
|
141
|
-
# @return [Matchers::
|
193
|
+
# @return [Matchers::Deprecated] A {Matchers::Deprecated} that should
|
142
194
|
# have +to+ called on it to complete the test.
|
195
|
+
# @deprecated Will be removed in Lita 5.0. Use +is_expected.not_to route_http+ instead.
|
143
196
|
def does_not_route_http(http_method, path)
|
144
|
-
|
197
|
+
STDERR.puts I18n.t(
|
198
|
+
"lita.rspec.matcher_deprecated",
|
199
|
+
old_method: "does_not_route_http",
|
200
|
+
new_method: "is_expected.not_to route_http",
|
201
|
+
)
|
202
|
+
Matchers::Deprecated.new(self, :route_http, false, http_method, path)
|
145
203
|
end
|
146
204
|
alias_method :doesnt_route_http, :does_not_route_http
|
147
205
|
|
@@ -149,20 +207,32 @@ module Lita
|
|
149
207
|
# trigger the target method.
|
150
208
|
# @param event_name [String, Symbol] The name of the event that should
|
151
209
|
# be triggered.
|
152
|
-
# @return [Matchers::
|
210
|
+
# @return [Matchers::Deprecated] A {Matchers::Deprecated} that
|
153
211
|
# should have +to+ called on it to complete the test.
|
212
|
+
# @deprecated Will be removed in Lita 5.0. Use +is_expected.to route_event+ instead.
|
154
213
|
def routes_event(event_name)
|
155
|
-
|
214
|
+
STDERR.puts I18n.t(
|
215
|
+
"lita.rspec.matcher_deprecated",
|
216
|
+
old_method: "routes_event",
|
217
|
+
new_method: "is_expected.to route_event",
|
218
|
+
)
|
219
|
+
Matchers::Deprecated.new(self, :route_event, true, event_name)
|
156
220
|
end
|
157
221
|
|
158
222
|
# Starts an event subscription test chain, asserting that an event should
|
159
223
|
# not trigger the target method.
|
160
224
|
# @param event_name [String, Symbol] The name of the event that should
|
161
225
|
# not be triggered.
|
162
|
-
# @return [Matchers::
|
226
|
+
# @return [Matchers::Deprecated] A {Matchers::Deprecated} that
|
163
227
|
# should have +to+ called on it to complete the test.
|
228
|
+
# @deprecated Will be removed in Lita 5.0. Use +is_expected.not_to route_event+ instead.
|
164
229
|
def does_not_route_event(event_name)
|
165
|
-
|
230
|
+
STDERR.puts I18n.t(
|
231
|
+
"lita.rspec.matcher_deprecated",
|
232
|
+
old_method: "does_not_route_event",
|
233
|
+
new_method: "is_expected.not_to route_event",
|
234
|
+
)
|
235
|
+
Matchers::Deprecated.new(self, :route_event, false, event_name)
|
166
236
|
end
|
167
237
|
alias_method :doesnt_route_event, :does_not_route_event
|
168
238
|
end
|