slack-ruby-client 0.15.0 → 0.15.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop_todo.yml +19 -7
- data/CHANGELOG.md +6 -0
- data/README.md +2 -1
- data/lib/slack/real_time/client.rb +2 -0
- data/lib/slack/version.rb +1 -1
- data/lib/slack/web/api/mixins/channels.id.rb +1 -3
- data/lib/slack/web/api/mixins/conversations.id.rb +1 -3
- data/lib/slack/web/api/mixins/groups.id.rb +1 -3
- data/lib/slack/web/api/mixins/ids.id.rb +2 -2
- data/lib/slack/web/api/mixins/users.id.rb +1 -3
- data/lib/slack/web/config.rb +2 -0
- data/lib/slack/web/faraday/connection.rb +1 -1
- data/spec/fixtures/slack/web/conversations_setTopic.yml +69 -0
- data/spec/fixtures/slack/web/conversations_setTopic_one_page.yml +142 -0
- data/spec/fixtures/slack/web/conversations_setTopic_paginated.yml +208 -0
- data/spec/slack/real_time/client_spec.rb +17 -0
- data/spec/slack/web/api/mixins/channels_spec.rb +1 -1
- data/spec/slack/web/api/mixins/conversations_list_spec.rb +21 -0
- data/spec/slack/web/api/mixins/conversations_spec.rb +11 -9
- data/spec/slack/web/api/mixins/groups_spec.rb +1 -1
- data/spec/slack/web/api/mixins/users_spec.rb +1 -1
- data/spec/slack/web/client_spec.rb +44 -0
- data/spec/support/vcr.rb +4 -0
- metadata +11 -3
@@ -166,6 +166,23 @@ RSpec.describe Slack::RealTime::Client do # rubocop:disable Metrics/BlockLength
|
|
166
166
|
expect(client.store.team.name).to eq 'New Team Name Inc.'
|
167
167
|
end
|
168
168
|
end
|
169
|
+
|
170
|
+
describe '#run_handlers' do
|
171
|
+
describe 'empty events' do
|
172
|
+
before do
|
173
|
+
@e = client.store.class.events
|
174
|
+
client.store.class.events = nil
|
175
|
+
end
|
176
|
+
|
177
|
+
after do
|
178
|
+
client.store.class.events = @e
|
179
|
+
end
|
180
|
+
|
181
|
+
it 'returns false when event is nil' do
|
182
|
+
expect(client.send(:run_handlers, 'example', {})).to be nil
|
183
|
+
end
|
184
|
+
end
|
185
|
+
end
|
169
186
|
end
|
170
187
|
|
171
188
|
describe '#start_async' do
|
@@ -13,7 +13,7 @@ RSpec.describe Slack::Web::Api::Mixins::Channels do
|
|
13
13
|
end
|
14
14
|
|
15
15
|
before do
|
16
|
-
allow(channels).to receive(:channels_list).
|
16
|
+
allow(channels).to receive(:channels_list).and_yield(
|
17
17
|
Slack::Messages::Message.new(
|
18
18
|
'channels' => [{
|
19
19
|
'id' => 'CDEADBEEF',
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
RSpec.describe Slack::Web::Client do
|
5
|
+
context 'conversations_setTopic' do
|
6
|
+
it 'does not invoke conversations_list', vcr: { cassette_name: 'web/conversations_setTopic' } do
|
7
|
+
rc = subject.conversations_setTopic({ channel: 'C018Y6VH39D', topic: 'new topic' })
|
8
|
+
expect(rc.channel.topic.value).to eq 'new topic'
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'resolves IDs via conversations_list', vcr: { cassette_name: 'web/conversations_setTopic_one_page' } do
|
12
|
+
rc = subject.conversations_setTopic({ channel: '#1', topic: 'new topic' })
|
13
|
+
expect(rc.channel.topic.value).to eq 'new topic'
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'paginates to resolve IDs', vcr: { cassette_name: 'web/conversations_setTopic_paginated' } do
|
17
|
+
rc = subject.conversations_setTopic({ channel: '#topic', topic: 'new topic' })
|
18
|
+
expect(rc.channel.topic.value).to eq 'new topic'
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -9,18 +9,20 @@ RSpec.describe Slack::Web::Api::Mixins::Conversations do
|
|
9
9
|
let(:klass) do
|
10
10
|
Class.new do
|
11
11
|
include Slack::Web::Api::Mixins::Conversations
|
12
|
-
|
13
|
-
def conversations_list
|
14
|
-
Slack::Messages::Message.new(
|
15
|
-
'channels' => [{
|
16
|
-
'id' => 'CDEADBEEF',
|
17
|
-
'name' => 'general'
|
18
|
-
}]
|
19
|
-
)
|
20
|
-
end
|
21
12
|
end
|
22
13
|
end
|
23
14
|
|
15
|
+
before do
|
16
|
+
allow(conversations).to receive(:conversations_list).and_yield(
|
17
|
+
Slack::Messages::Message.new(
|
18
|
+
'channels' => [{
|
19
|
+
'id' => 'CDEADBEEF',
|
20
|
+
'name' => 'general'
|
21
|
+
}]
|
22
|
+
)
|
23
|
+
)
|
24
|
+
end
|
25
|
+
|
24
26
|
describe '#conversations_id' do
|
25
27
|
it 'leaves channels specified by ID alone' do
|
26
28
|
expect(conversations.conversations_id(channel: 'C123456')).to(
|
@@ -150,6 +150,50 @@ RSpec.describe Slack::Web::Client do
|
|
150
150
|
end
|
151
151
|
end
|
152
152
|
|
153
|
+
context 'adapter option' do
|
154
|
+
let(:adapter) { Faraday.default_adapter }
|
155
|
+
let(:adapter_class) { Faraday::Adapter::NetHttp }
|
156
|
+
|
157
|
+
around do |ex|
|
158
|
+
previous_adapter = Faraday.default_adapter
|
159
|
+
# ensure default adapter is set for this spec
|
160
|
+
Faraday.default_adapter = :net_http
|
161
|
+
ex.run
|
162
|
+
Faraday.default_adapter = previous_adapter
|
163
|
+
end
|
164
|
+
|
165
|
+
context 'default adapter' do
|
166
|
+
describe '#initialize' do
|
167
|
+
it 'sets adapter' do
|
168
|
+
expect(client.adapter).to eq adapter
|
169
|
+
end
|
170
|
+
it 'creates a connection with an adapter' do
|
171
|
+
expect(client.send(:connection).adapter).to eq adapter_class
|
172
|
+
end
|
173
|
+
end
|
174
|
+
end
|
175
|
+
|
176
|
+
context 'non default adapter' do
|
177
|
+
let(:adapter) { :typhoeus }
|
178
|
+
let(:adapter_class) { Faraday::Adapter::Typhoeus }
|
179
|
+
|
180
|
+
before do
|
181
|
+
described_class.configure do |config|
|
182
|
+
config.adapter = adapter
|
183
|
+
end
|
184
|
+
end
|
185
|
+
|
186
|
+
describe '#initialize' do
|
187
|
+
it 'sets adapter' do
|
188
|
+
expect(client.adapter).to eq adapter
|
189
|
+
end
|
190
|
+
it 'creates a connection with an adapter' do
|
191
|
+
expect(client.send(:connection).adapter).to eq adapter_class
|
192
|
+
end
|
193
|
+
end
|
194
|
+
end
|
195
|
+
end
|
196
|
+
|
153
197
|
context 'timeout options' do
|
154
198
|
before do
|
155
199
|
described_class.configure do |config|
|
data/spec/support/vcr.rb
CHANGED
@@ -7,4 +7,8 @@ VCR.configure do |config|
|
|
7
7
|
config.hook_into :webmock
|
8
8
|
# config.default_cassette_options = { record: :new_episodes }
|
9
9
|
config.configure_rspec_metadata!
|
10
|
+
config.before_record do |i|
|
11
|
+
i.request.body.gsub!(ENV['SLACK_API_TOKEN'], 'token') if ENV.key?('SLACK_API_TOKEN')
|
12
|
+
i.response.body.force_encoding('UTF-8')
|
13
|
+
end
|
10
14
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slack-ruby-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.15.
|
4
|
+
version: 0.15.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Doubrovkine
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-09-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -479,6 +479,9 @@ files:
|
|
479
479
|
- spec/fixtures/slack/web/auth_test_error.yml
|
480
480
|
- spec/fixtures/slack/web/auth_test_success.yml
|
481
481
|
- spec/fixtures/slack/web/channels_info.yml
|
482
|
+
- spec/fixtures/slack/web/conversations_setTopic.yml
|
483
|
+
- spec/fixtures/slack/web/conversations_setTopic_one_page.yml
|
484
|
+
- spec/fixtures/slack/web/conversations_setTopic_paginated.yml
|
482
485
|
- spec/fixtures/slack/web/groups_info.yml
|
483
486
|
- spec/fixtures/slack/web/paginated_users_list.yml
|
484
487
|
- spec/fixtures/slack/web/rtm_connect.yml
|
@@ -574,6 +577,7 @@ files:
|
|
574
577
|
- spec/slack/web/api/errors/service_unavailable_spec.rb
|
575
578
|
- spec/slack/web/api/errors/slack_error_spec.rb
|
576
579
|
- spec/slack/web/api/mixins/channels_spec.rb
|
580
|
+
- spec/slack/web/api/mixins/conversations_list_spec.rb
|
577
581
|
- spec/slack/web/api/mixins/conversations_spec.rb
|
578
582
|
- spec/slack/web/api/mixins/groups_spec.rb
|
579
583
|
- spec/slack/web/api/mixins/users_spec.rb
|
@@ -606,7 +610,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
606
610
|
- !ruby/object:Gem::Version
|
607
611
|
version: 1.3.6
|
608
612
|
requirements: []
|
609
|
-
rubygems_version: 3.1.
|
613
|
+
rubygems_version: 3.1.3
|
610
614
|
signing_key:
|
611
615
|
specification_version: 4
|
612
616
|
summary: Slack Web and RealTime API client.
|
@@ -616,6 +620,9 @@ test_files:
|
|
616
620
|
- spec/fixtures/slack/web/auth_test_error.yml
|
617
621
|
- spec/fixtures/slack/web/auth_test_success.yml
|
618
622
|
- spec/fixtures/slack/web/channels_info.yml
|
623
|
+
- spec/fixtures/slack/web/conversations_setTopic.yml
|
624
|
+
- spec/fixtures/slack/web/conversations_setTopic_one_page.yml
|
625
|
+
- spec/fixtures/slack/web/conversations_setTopic_paginated.yml
|
619
626
|
- spec/fixtures/slack/web/groups_info.yml
|
620
627
|
- spec/fixtures/slack/web/paginated_users_list.yml
|
621
628
|
- spec/fixtures/slack/web/rtm_connect.yml
|
@@ -711,6 +718,7 @@ test_files:
|
|
711
718
|
- spec/slack/web/api/errors/service_unavailable_spec.rb
|
712
719
|
- spec/slack/web/api/errors/slack_error_spec.rb
|
713
720
|
- spec/slack/web/api/mixins/channels_spec.rb
|
721
|
+
- spec/slack/web/api/mixins/conversations_list_spec.rb
|
714
722
|
- spec/slack/web/api/mixins/conversations_spec.rb
|
715
723
|
- spec/slack/web/api/mixins/groups_spec.rb
|
716
724
|
- spec/slack/web/api/mixins/users_spec.rb
|