lita-onewheel-forecast-io 1.0.3 → 1.1.0
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/lib/lita/handlers/forecasts.rb +18 -0
- data/lib/lita/handlers/irc_handlers.rb +7 -0
- data/lib/lita/handlers/onewheel_forecast_io.rb +2 -0
- data/lita-onewheel-forecast-io.gemspec +1 -1
- data/spec/fixtures/much_warmer.json +1519 -0
- data/spec/lita/handlers/forecast_io_spec.rb +27 -6
- metadata +4 -2
@@ -1,11 +1,14 @@
|
|
1
1
|
require_relative '../../spec_helper'
|
2
2
|
require 'geocoder'
|
3
3
|
|
4
|
+
def mock_up(filename)
|
5
|
+
mock_weather_json = File.open("spec/fixtures/#{filename}.json").read
|
6
|
+
allow(RestClient).to receive(:get) { mock_weather_json }
|
7
|
+
end
|
8
|
+
|
4
9
|
describe Lita::Handlers::OnewheelForecastIo, lita_handler: true do
|
5
10
|
|
6
11
|
before(:each) do
|
7
|
-
# mock_geocoder = ::Geocoder::Result::Google.new({'formatted_address' => 'Portland, OR', 'geometry' => { 'location' => { 'lat' => 45.523452, 'lng' => -122.676207 }}})
|
8
|
-
# allow(::Geocoder).to receive(:search) { [mock_geocoder] } # It expects an array of geocoder objects.
|
9
12
|
Geocoder.configure(:lookup => :test)
|
10
13
|
|
11
14
|
Geocoder::Lookup::Test.add_stub(
|
@@ -106,8 +109,7 @@ describe Lita::Handlers::OnewheelForecastIo, lita_handler: true do
|
|
106
109
|
|
107
110
|
# Mock up the ForecastAPI call.
|
108
111
|
# Todo: add some other mocks to allow more edgy testing (rain percentages, !rain eightball replies, etc
|
109
|
-
|
110
|
-
allow(RestClient).to receive(:get) { mock_weather_json }
|
112
|
+
mock_up('mock_weather')
|
111
113
|
|
112
114
|
registry.configure do |config|
|
113
115
|
config.handlers.onewheel_forecast_io.api_uri = ''
|
@@ -167,6 +169,7 @@ describe Lita::Handlers::OnewheelForecastIo, lita_handler: true do
|
|
167
169
|
it { is_expected.to route_command('dailypressure') }
|
168
170
|
it { is_expected.to route_command('dailybarometer') }
|
169
171
|
it { is_expected.to route_command('neareststorm') }
|
172
|
+
it { is_expected.to route_command('tomorrow') }
|
170
173
|
|
171
174
|
# This is where we test for regex overflow, so !weeklyrain doesn't try to get a forecast for Rain, Germany.
|
172
175
|
it { is_expected.not_to route_command('forecastrain') }
|
@@ -237,13 +240,13 @@ describe Lita::Handlers::OnewheelForecastIo, lita_handler: true do
|
|
237
240
|
end
|
238
241
|
|
239
242
|
it '!ansirain no minutes' do
|
240
|
-
|
243
|
+
mock_up 'mock_weather_no_minute'
|
241
244
|
send_command 'ansirain'
|
242
245
|
expect(replies.last).to include('|No minute-by-minute data available.|')
|
243
246
|
end
|
244
247
|
|
245
248
|
it '!ansiintensity no minutes' do
|
246
|
-
|
249
|
+
mock_up 'mock_weather_no_minute'
|
247
250
|
send_command 'ansiintensity'
|
248
251
|
expect(replies.last).to include('|No minute-by-minute data available.|')
|
249
252
|
end
|
@@ -481,12 +484,30 @@ describe Lita::Handlers::OnewheelForecastIo, lita_handler: true do
|
|
481
484
|
expect(replies.last).to eq('The nearest storm is 158 mi to the S of you.')
|
482
485
|
end
|
483
486
|
|
487
|
+
it '!neareststorm is zero' do
|
488
|
+
mock_up 'heavy_rain'
|
489
|
+
|
490
|
+
send_command 'neareststorm'
|
491
|
+
expect(replies.last).to eq('You\'re in it!')
|
492
|
+
end
|
493
|
+
|
484
494
|
it '!neareststorm with scale' do
|
485
495
|
send_command 'set scale c'
|
486
496
|
send_command 'neareststorm'
|
487
497
|
expect(replies.last).to eq('The nearest storm is 252.8 km to the S of you.')
|
488
498
|
end
|
489
499
|
|
500
|
+
it '!tomorrows' do
|
501
|
+
send_command 'tomorrow'
|
502
|
+
expect(replies.last).to eq('Tomorrow will be warmer than today.')
|
503
|
+
end
|
504
|
+
|
505
|
+
it '!tomorrows' do
|
506
|
+
mock_up 'much_warmer'
|
507
|
+
send_command 'tomorrow'
|
508
|
+
expect(replies.last).to eq('Tomorrow will be much hotter than today.')
|
509
|
+
end
|
510
|
+
|
490
511
|
# it 'colors strings' do
|
491
512
|
# cstr = Lita::Handlers::ForecastIo.get_colored_string([{:key => 1}], :key, 'x', {1 => :blue})
|
492
513
|
# expect(cstr).to equal('x')
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lita-onewheel-forecast-io
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Kreps
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-06-
|
11
|
+
date: 2016-06-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: lita
|
@@ -195,6 +195,7 @@ files:
|
|
195
195
|
- spec/fixtures/mock_weather.json
|
196
196
|
- spec/fixtures/mock_weather_no_minute.json
|
197
197
|
- spec/fixtures/mock_weather_with_snow.json
|
198
|
+
- spec/fixtures/much_warmer.json
|
198
199
|
- spec/lita/handlers/forecast_io_spec.rb
|
199
200
|
- spec/spec_helper.rb
|
200
201
|
homepage: https://github.com/onewheelskyward/lita-onewheel-forecast-io
|
@@ -227,5 +228,6 @@ test_files:
|
|
227
228
|
- spec/fixtures/mock_weather.json
|
228
229
|
- spec/fixtures/mock_weather_no_minute.json
|
229
230
|
- spec/fixtures/mock_weather_with_snow.json
|
231
|
+
- spec/fixtures/much_warmer.json
|
230
232
|
- spec/lita/handlers/forecast_io_spec.rb
|
231
233
|
- spec/spec_helper.rb
|