slack-ruby-client 0.16.0 → 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.
Files changed (234) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/danger.yml +19 -0
  3. data/.github/workflows/integtest.yml +25 -0
  4. data/.github/workflows/rubocop.yml +13 -0
  5. data/.github/workflows/test.yml +34 -0
  6. data/.gitignore +5 -3
  7. data/.rubocop.yml +6 -0
  8. data/.rubocop_todo.yml +137 -43
  9. data/CHANGELOG.md +34 -3
  10. data/CONTRIBUTING.md +4 -4
  11. data/Gemfile +18 -1
  12. data/Gemfile.danger +6 -0
  13. data/LICENSE.md +1 -1
  14. data/README.md +13 -12
  15. data/RELEASING.md +1 -1
  16. data/UPGRADING.md +42 -0
  17. data/bin/commands/admin_analytics.rb +2 -1
  18. data/bin/commands/admin_apps.rb +11 -0
  19. data/bin/commands/admin_apps_requests.rb +12 -0
  20. data/bin/commands/admin_auth_policy.rb +39 -0
  21. data/bin/commands/admin_conversations.rb +2 -1
  22. data/bin/commands/admin_conversations_restrictAccess.rb +1 -1
  23. data/bin/commands/admin_emoji.rb +2 -2
  24. data/bin/commands/admin_teams.rb +1 -1
  25. data/bin/commands/admin_users.rb +1 -0
  26. data/bin/commands/admin_users_session.rb +40 -0
  27. data/bin/commands/admin_users_unsupportedVersions.rb +15 -0
  28. data/bin/commands/apps_manifest.rb +52 -0
  29. data/bin/commands/bookmarks.rb +52 -0
  30. data/bin/commands/channels.rb +0 -157
  31. data/bin/commands/chat.rb +14 -9
  32. data/bin/commands/conversations.rb +61 -4
  33. data/bin/commands/dnd.rb +3 -1
  34. data/bin/commands/files.rb +2 -1
  35. data/bin/commands/groups.rb +0 -163
  36. data/bin/commands/im.rb +0 -62
  37. data/bin/commands/mpim.rb +0 -60
  38. data/bin/commands/oauth.rb +0 -13
  39. data/bin/commands/oauth_v2.rb +13 -1
  40. data/bin/commands/openid_connect.rb +27 -0
  41. data/bin/commands/pins.rb +2 -2
  42. data/bin/commands/reminders.rb +6 -0
  43. data/bin/commands/rtm.rb +2 -2
  44. data/bin/commands/search.rb +2 -1
  45. data/bin/commands/stars.rb +7 -6
  46. data/bin/commands/team.rb +1 -0
  47. data/bin/commands/team_billing.rb +13 -0
  48. data/bin/commands/team_preferences.rb +13 -0
  49. data/bin/commands/tooling_tokens.rb +14 -0
  50. data/bin/commands/usergroups.rb +1 -1
  51. data/bin/commands/users.rb +1 -1
  52. data/bin/commands/views.rb +1 -1
  53. data/bin/commands.rb +8 -9
  54. data/lib/slack/config.rb +1 -2
  55. data/lib/slack/events/request.rb +5 -3
  56. data/lib/slack/real_time/client.rb +6 -7
  57. data/lib/slack/real_time/concurrency/async.rb +6 -8
  58. data/lib/slack/real_time/config.rb +3 -13
  59. data/lib/slack/real_time/socket.rb +1 -2
  60. data/lib/slack/real_time/stores/base.rb +1 -6
  61. data/lib/slack/real_time/stores/starter.rb +6 -3
  62. data/lib/slack/real_time/stores/store.rb +5 -0
  63. data/lib/slack/version.rb +1 -1
  64. data/lib/slack/web/api/endpoints/admin_analytics.rb +5 -3
  65. data/lib/slack/web/api/endpoints/admin_apps.rb +21 -5
  66. data/lib/slack/web/api/endpoints/admin_apps_approved.rb +2 -2
  67. data/lib/slack/web/api/endpoints/admin_apps_requests.rb +20 -2
  68. data/lib/slack/web/api/endpoints/admin_apps_restricted.rb +2 -2
  69. data/lib/slack/web/api/endpoints/admin_auth_policy.rb +72 -0
  70. data/lib/slack/web/api/endpoints/admin_barriers.rb +6 -6
  71. data/lib/slack/web/api/endpoints/admin_conversations.rb +28 -26
  72. data/lib/slack/web/api/endpoints/admin_conversations_ekm.rb +4 -4
  73. data/lib/slack/web/api/endpoints/admin_emoji.rb +11 -11
  74. data/lib/slack/web/api/endpoints/admin_inviteRequests.rb +7 -7
  75. data/lib/slack/web/api/endpoints/admin_inviteRequests_approved.rb +3 -3
  76. data/lib/slack/web/api/endpoints/admin_inviteRequests_denied.rb +2 -2
  77. data/lib/slack/web/api/endpoints/admin_teams.rb +7 -7
  78. data/lib/slack/web/api/endpoints/admin_teams_admins.rb +2 -2
  79. data/lib/slack/web/api/endpoints/admin_teams_owners.rb +2 -2
  80. data/lib/slack/web/api/endpoints/admin_teams_settings.rb +5 -5
  81. data/lib/slack/web/api/endpoints/admin_usergroups.rb +10 -10
  82. data/lib/slack/web/api/endpoints/admin_users.rb +20 -18
  83. data/lib/slack/web/api/endpoints/admin_users_session.rb +65 -9
  84. data/lib/slack/web/api/endpoints/admin_users_unsupportedVersions.rb +25 -0
  85. data/lib/slack/web/api/endpoints/api.rb +1 -1
  86. data/lib/slack/web/api/endpoints/apps.rb +2 -2
  87. data/lib/slack/web/api/endpoints/apps_event_authorizations.rb +3 -3
  88. data/lib/slack/web/api/endpoints/apps_manifest.rb +77 -0
  89. data/lib/slack/web/api/endpoints/auth.rb +1 -1
  90. data/lib/slack/web/api/endpoints/auth_teams.rb +3 -3
  91. data/lib/slack/web/api/endpoints/bookmarks.rb +86 -0
  92. data/lib/slack/web/api/endpoints/bots.rb +2 -2
  93. data/lib/slack/web/api/endpoints/calls.rb +15 -15
  94. data/lib/slack/web/api/endpoints/calls_participants.rb +4 -4
  95. data/lib/slack/web/api/endpoints/channels.rb +0 -265
  96. data/lib/slack/web/api/endpoints/chat.rb +67 -57
  97. data/lib/slack/web/api/endpoints/chat_scheduledMessages.rb +3 -3
  98. data/lib/slack/web/api/endpoints/conversations.rb +117 -27
  99. data/lib/slack/web/api/endpoints/dialog.rb +2 -2
  100. data/lib/slack/web/api/endpoints/dnd.rb +6 -3
  101. data/lib/slack/web/api/endpoints/files.rb +16 -14
  102. data/lib/slack/web/api/endpoints/files_comments.rb +1 -1
  103. data/lib/slack/web/api/endpoints/files_remote.rb +20 -20
  104. data/lib/slack/web/api/endpoints/groups.rb +0 -273
  105. data/lib/slack/web/api/endpoints/im.rb +0 -107
  106. data/lib/slack/web/api/endpoints/migration.rb +3 -3
  107. data/lib/slack/web/api/endpoints/mpim.rb +0 -102
  108. data/lib/slack/web/api/endpoints/oauth.rb +5 -27
  109. data/lib/slack/web/api/endpoints/oauth_v2.rb +24 -6
  110. data/lib/slack/web/api/endpoints/openid_connect.rb +42 -0
  111. data/lib/slack/web/api/endpoints/pins.rb +4 -4
  112. data/lib/slack/web/api/endpoints/reactions.rb +12 -12
  113. data/lib/slack/web/api/endpoints/reminders.rb +17 -5
  114. data/lib/slack/web/api/endpoints/rtm.rb +10 -10
  115. data/lib/slack/web/api/endpoints/search.rb +24 -16
  116. data/lib/slack/web/api/endpoints/stars.rb +11 -9
  117. data/lib/slack/web/api/endpoints/team.rb +10 -8
  118. data/lib/slack/web/api/endpoints/team_billing.rb +21 -0
  119. data/lib/slack/web/api/endpoints/team_preferences.rb +21 -0
  120. data/lib/slack/web/api/endpoints/team_profile.rb +1 -1
  121. data/lib/slack/web/api/endpoints/tooling_tokens.rb +24 -0
  122. data/lib/slack/web/api/endpoints/usergroups.rb +19 -19
  123. data/lib/slack/web/api/endpoints/usergroups_users.rb +7 -7
  124. data/lib/slack/web/api/endpoints/users.rb +16 -16
  125. data/lib/slack/web/api/endpoints/users_profile.rb +4 -4
  126. data/lib/slack/web/api/endpoints/views.rb +12 -12
  127. data/lib/slack/web/api/endpoints/workflows.rb +9 -9
  128. data/lib/slack/web/api/endpoints.rb +16 -20
  129. data/lib/slack/web/api/errors/server_error.rb +37 -0
  130. data/lib/slack/web/api/errors/too_many_requests_error.rb +1 -4
  131. data/lib/slack/web/api/errors.rb +232 -16
  132. data/lib/slack/web/api/mixins.rb +0 -2
  133. data/lib/slack/web/api/patches/chat.1.patch +7 -9
  134. data/lib/slack/web/api/templates/endpoints.erb +0 -2
  135. data/lib/slack/web/faraday/connection.rb +5 -5
  136. data/lib/slack/web/faraday/request.rb +4 -1
  137. data/lib/slack/web/faraday/response/raise_error.rb +2 -14
  138. data/lib/slack/web/faraday/response/wrap_error.rb +11 -5
  139. data/lib/slack/web/pagination/cursor.rb +1 -5
  140. data/lib/slack-ruby-client.rb +3 -2
  141. data/lib/tasks/real_time.rake +1 -3
  142. data/lib/tasks/web.rake +4 -0
  143. data/slack-ruby-client.gemspec +5 -14
  144. data/spec/fixtures/slack/web/429_error.yml +50 -54
  145. data/spec/fixtures/slack/web/auth_test_error.yml +51 -18
  146. data/spec/fixtures/slack/web/auth_test_success.yml +50 -26
  147. data/spec/fixtures/slack/web/conversations_info.yml +167 -0
  148. data/spec/fixtures/slack/web/conversations_setTopic.yml +42 -27
  149. data/spec/fixtures/slack/web/conversations_setTopic_one_page.yml +89 -59
  150. data/spec/fixtures/slack/web/conversations_setTopic_paginated.yml +131 -86
  151. data/spec/fixtures/slack/web/paginated_users_list.yml +501 -69
  152. data/spec/fixtures/slack/web/rtm_connect.yml +267 -30
  153. data/spec/fixtures/slack/web/rtm_start.yml +771 -60
  154. data/spec/fixtures/slack/web/users_info.yml +153 -69
  155. data/spec/fixtures/slack/web/users_list.yml +102 -41
  156. data/spec/fixtures/slack/web/views_open_error.yml +49 -42
  157. data/spec/integration/integration_spec.rb +1 -1
  158. data/spec/slack/events/request_spec.rb +7 -6
  159. data/spec/slack/real_time/client_spec.rb +37 -39
  160. data/spec/slack/real_time/concurrency/with_concurrency_spec.rb +10 -0
  161. data/spec/slack/real_time/concurrency/without_concurrency_spec.rb +10 -0
  162. data/spec/slack/real_time/event_handlers/bot_spec.rb +1 -1
  163. data/spec/slack/real_time/event_handlers/channel_spec.rb +9 -9
  164. data/spec/slack/real_time/event_handlers/group_spec.rb +2 -2
  165. data/spec/slack/real_time/event_handlers/im_spec.rb +7 -7
  166. data/spec/slack/real_time/event_handlers/user_spec.rb +2 -2
  167. data/spec/slack/real_time/rtm_connect_spec.rb +1 -1
  168. data/spec/slack/real_time/rtm_start_spec.rb +1 -1
  169. data/spec/slack/real_time/store_spec.rb +2 -2
  170. data/spec/slack/slack_spec.rb +7 -5
  171. data/spec/slack/version_spec.rb +1 -1
  172. data/spec/slack/web/api/endpoints/admin_apps_requests_spec.rb +5 -0
  173. data/spec/slack/web/api/endpoints/admin_apps_spec.rb +5 -0
  174. data/spec/slack/web/api/endpoints/admin_auth_policy_spec.rb +35 -0
  175. data/spec/slack/web/api/endpoints/admin_conversations_spec.rb +9 -9
  176. data/spec/slack/web/api/endpoints/admin_teams_settings_spec.rb +1 -1
  177. data/spec/slack/web/api/endpoints/admin_usergroups_spec.rb +6 -6
  178. data/spec/slack/web/api/endpoints/admin_users_session_spec.rb +22 -2
  179. data/spec/slack/web/api/endpoints/admin_users_spec.rb +8 -8
  180. data/spec/slack/web/api/endpoints/admin_users_unsupportedVersions_spec.rb +8 -0
  181. data/spec/slack/web/api/endpoints/apps_manifest_spec.rb +36 -0
  182. data/spec/slack/web/api/endpoints/apps_spec.rb +2 -2
  183. data/spec/slack/web/api/endpoints/bookmarks_spec.rb +40 -0
  184. data/spec/slack/web/api/endpoints/calls_participants_spec.rb +4 -4
  185. data/spec/slack/web/api/endpoints/calls_spec.rb +2 -2
  186. data/spec/slack/web/api/endpoints/custom_specs/auth_spec.rb +4 -6
  187. data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +28 -16
  188. data/spec/slack/web/api/endpoints/custom_specs/conversations_spec.rb +13 -0
  189. data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +4 -2
  190. data/spec/slack/web/api/endpoints/custom_specs/users_spec.rb +2 -2
  191. data/spec/slack/web/api/endpoints/custom_specs/views_spec.rb +22 -14
  192. data/spec/slack/web/api/endpoints/dnd_spec.rb +0 -5
  193. data/spec/slack/web/api/endpoints/files_comments_spec.rb +2 -2
  194. data/spec/slack/web/api/endpoints/files_remote_spec.rb +3 -3
  195. data/spec/slack/web/api/endpoints/oauth_spec.rb +0 -11
  196. data/spec/slack/web/api/endpoints/oauth_v2_spec.rb +6 -3
  197. data/spec/slack/web/api/endpoints/{apps_permissions_scopes_spec.rb → openid_connect_spec.rb} +1 -1
  198. data/spec/slack/web/api/endpoints/reactions_spec.rb +3 -3
  199. data/spec/slack/web/api/endpoints/reminders_spec.rb +2 -2
  200. data/spec/slack/web/api/endpoints/{apps_permissions_resources_spec.rb → team_billing_spec.rb} +1 -1
  201. data/spec/slack/web/api/endpoints/team_preferences_spec.rb +8 -0
  202. data/spec/slack/web/api/endpoints/tooling_tokens_spec.rb +13 -0
  203. data/spec/slack/web/api/endpoints/usergroups_users_spec.rb +2 -2
  204. data/spec/slack/web/api/error_spec.rb +5 -7
  205. data/spec/slack/web/api/errors/slack_error_spec.rb +21 -26
  206. data/spec/slack/web/api/mixins/conversations_list_spec.rb +1 -1
  207. data/spec/slack/web/api/pagination/cursor_spec.rb +8 -10
  208. data/spec/slack/web/client_spec.rb +46 -32
  209. data/spec/slack/web/faraday/request_spec.rb +80 -0
  210. data/spec/slack/web/faraday/response/raise_error_spec.rb +2 -1
  211. data/spec/spec_helper.rb +1 -1
  212. data/spec/support/real_time/connected_client.rb +2 -8
  213. data/spec/support/vcr.rb +33 -2
  214. metadata +50 -297
  215. data/.travis.yml +0 -28
  216. data/lib/slack/web/api/errors/internal_error.rb +0 -14
  217. data/lib/slack/web/api/mixins/channels.id.json +0 -20
  218. data/lib/slack/web/api/mixins/channels.id.rb +0 -25
  219. data/lib/slack/web/api/mixins/groups.id.json +0 -20
  220. data/lib/slack/web/api/mixins/groups.id.rb +0 -25
  221. data/spec/fixtures/slack/web/503_error.yml +0 -14
  222. data/spec/fixtures/slack/web/channels_info.yml +0 -139
  223. data/spec/fixtures/slack/web/groups_info.yml +0 -43
  224. data/spec/slack/web/api/endpoints/admin_conversations_whitelist_spec.rb +0 -32
  225. data/spec/slack/web/api/endpoints/apps_permissions_spec.rb +0 -16
  226. data/spec/slack/web/api/endpoints/apps_permissions_users_spec.rb +0 -19
  227. data/spec/slack/web/api/endpoints/conversations_spec.rb +0 -109
  228. data/spec/slack/web/api/endpoints/custom_specs/channels_spec.rb +0 -13
  229. data/spec/slack/web/api/endpoints/custom_specs/groups_spec.rb +0 -13
  230. data/spec/slack/web/api/endpoints/im_spec.rb +0 -39
  231. data/spec/slack/web/api/endpoints/mpim_spec.rb +0 -39
  232. data/spec/slack/web/api/endpoints/views_spec.rb +0 -29
  233. data/spec/slack/web/api/mixins/channels_spec.rb +0 -43
  234. data/spec/slack/web/api/mixins/groups_spec.rb +0 -43
@@ -5,10 +5,12 @@ RSpec.describe Slack::RealTime::Client do
5
5
  let(:ws) { double(Slack::RealTime::Concurrency::Mock::WebSocket, on: true) }
6
6
 
7
7
  before do
8
+ # supports passing tests in CI even with an actual SLACK_API_TOKEN set
8
9
  @token = ENV.delete('SLACK_API_TOKEN')
9
10
  Slack::Config.reset
10
11
  Slack::RealTime::Config.reset
11
12
  Slack::RealTime.configure do |config|
13
+ config.token = '<SLACK_API_TOKEN>'
12
14
  config.concurrency = Slack::RealTime::Concurrency::Mock
13
15
  end
14
16
  end
@@ -18,16 +20,10 @@ RSpec.describe Slack::RealTime::Client do
18
20
  end
19
21
 
20
22
  context 'token' do
21
- before do
22
- Slack.configure do |config|
23
- config.token = 'global default'
24
- end
25
- end
26
-
27
23
  it 'defaults token to global default' do
28
24
  client = described_class.new
29
- expect(client.token).to eq 'global default'
30
- expect(client.web_client.token).to eq 'global default'
25
+ expect(client.token).to eq '<SLACK_API_TOKEN>'
26
+ expect(client.web_client.token).to eq '<SLACK_API_TOKEN>'
31
27
  end
32
28
  context 'with real time config' do
33
29
  before do
@@ -70,14 +66,14 @@ RSpec.describe Slack::RealTime::Client do
70
66
  context 'client with a full store',
71
67
  vcr: { cassette_name: 'web/rtm_start', allow_playback_repeats: true } do
72
68
  let(:client) { described_class.new(store_class: Slack::RealTime::Stores::Store) }
73
- let(:url) { 'wss://ms173.slack-msgs.com/websocket/lqcUiAvrKTP-uuid=' }
69
+ let(:url) { 'wss://cerberus-xxxx.lb.slack-msgs.com/websocket/uid' }
74
70
 
75
71
  describe '#start!' do
76
72
  let(:socket) { double(Slack::RealTime::Socket, connected?: true) }
77
73
 
78
74
  before do
79
75
  allow(Slack::RealTime::Socket).to(
80
- receive(:new).with(url, ping: 30, logger: Slack::Logger.default).and_return(socket)
76
+ receive(:new).with(url, { ping: 30, logger: Slack::Logger.default }).and_return(socket)
81
77
  )
82
78
  allow(socket).to receive(:connect!)
83
79
  allow(socket).to receive(:start_sync)
@@ -96,22 +92,22 @@ RSpec.describe Slack::RealTime::Client do
96
92
  expect(client.teams.values.first).to eq client.team
97
93
  end
98
94
  it 'sets self' do
99
- expect(client.self.id).to eq 'U07518DTL'
95
+ expect(client.self.id).to eq 'U0J1GAHN1'
100
96
  end
101
97
  it 'sets users' do
102
- expect(client.users.count).to eq 18
103
- expect(client.users.values.first['id']).to eq 'U07518DTL'
98
+ expect(client.users.count).to eq 35
99
+ expect(client.users.values.first['id']).to eq 'U0J1GAHN1'
104
100
  end
105
101
  it 'sets channels' do
106
- expect(client.channels.count).to eq 37
107
- expect(client.channels.values.first['name']).to eq 'a1'
102
+ expect(client.channels.count).to eq 156
103
+ expect(client.channels.values.first['name']).to eq 'general'
108
104
  end
109
105
  it 'sets ims' do
110
- expect(client.ims.count).to eq 2
111
- expect(client.ims.values.first['user']).to eq 'USLACKBOT'
106
+ expect(client.ims.count).to eq 10
107
+ expect(client.ims.values.first['user']).to eq 'U04KB5WQR'
112
108
  end
113
109
  it 'sets bots' do
114
- expect(client.bots.count).to eq 16
110
+ expect(client.bots.count).to eq 83
115
111
  expect(client.bots.values.first['name']).to eq 'bot'
116
112
  end
117
113
  it 'sets groups' do
@@ -128,7 +124,7 @@ RSpec.describe Slack::RealTime::Client do
128
124
  expect(client.web_client).to be_a Slack::Web::Client
129
125
  end
130
126
  it 'remembers socket' do
131
- expect(client.instance_variable_get('@socket')).to eq socket
127
+ expect(client.instance_variable_get(:@socket)).to eq socket
132
128
  end
133
129
  it 'cannot be invoked twice' do
134
130
  expect do
@@ -142,7 +138,7 @@ RSpec.describe Slack::RealTime::Client do
142
138
  end
143
139
 
144
140
  it 'cannot be invoked twice' do
145
- client.instance_variable_set('@socket', nil) # caused by a :close callback
141
+ client.instance_variable_set(:@socket, nil) # caused by a :close callback
146
142
  expect do
147
143
  client.stop!
148
144
  end.to raise_error Slack::RealTime::Client::ClientNotStartedError
@@ -179,7 +175,7 @@ RSpec.describe Slack::RealTime::Client do
179
175
  end
180
176
 
181
177
  it 'returns false when event is nil' do
182
- expect(client.send(:run_handlers, 'example', {})).to be nil
178
+ expect(client.send(:run_handlers, 'example', {})).to be_nil
183
179
  end
184
180
  end
185
181
  end
@@ -190,7 +186,7 @@ RSpec.describe Slack::RealTime::Client do
190
186
 
191
187
  before do
192
188
  allow(Slack::RealTime::Socket).to(
193
- receive(:new).with(url, ping: 30, logger: Slack::Logger.default).and_return(socket)
189
+ receive(:new).with(url, { ping: 30, logger: Slack::Logger.default }).and_return(socket)
194
190
  )
195
191
  allow(socket).to receive(:connect!)
196
192
  allow(socket).to receive(:start_async)
@@ -252,14 +248,14 @@ RSpec.describe Slack::RealTime::Client do
252
248
 
253
249
  context 'client with starter store', vcr: { cassette_name: 'web/rtm_connect' } do
254
250
  let(:client) { described_class.new(store_class: Slack::RealTime::Stores::Starter) }
255
- let(:url) { 'wss://mpmulti-w5tz.slack-msgs.com/websocket/uid' }
251
+ let(:url) { 'wss://cerberus-xxxx.lb.slack-msgs.com/websocket/uid' }
256
252
 
257
253
  describe '#start!' do
258
254
  let(:socket) { double(Slack::RealTime::Socket, connected?: true) }
259
255
 
260
256
  before do
261
257
  allow(Slack::RealTime::Socket).to(
262
- receive(:new).with(url, ping: 30, logger: Slack::Logger.default).and_return(socket)
258
+ receive(:new).with(url, { ping: 30, logger: Slack::Logger.default }).and_return(socket)
263
259
  )
264
260
  allow(socket).to receive(:connect!)
265
261
  allow(socket).to receive(:start_sync)
@@ -274,7 +270,7 @@ RSpec.describe Slack::RealTime::Client do
274
270
  expect(client.team.domain).to eq 'dblockdotorg'
275
271
  end
276
272
  it 'sets self' do
277
- expect(client.self.id).to eq 'U07518DTL'
273
+ expect(client.self.id).to eq 'U0J1GAHN1'
278
274
  end
279
275
  it 'no users' do
280
276
  expect(client.users).to be_nil
@@ -305,7 +301,7 @@ RSpec.describe Slack::RealTime::Client do
305
301
  expect(client.web_client).to be_a Slack::Web::Client
306
302
  end
307
303
  it 'remembers socket' do
308
- expect(client.instance_variable_get('@socket')).to eq socket
304
+ expect(client.instance_variable_get(:@socket)).to eq socket
309
305
  end
310
306
  it 'cannot be invoked twice' do
311
307
  expect do
@@ -319,7 +315,7 @@ RSpec.describe Slack::RealTime::Client do
319
315
  end
320
316
 
321
317
  it 'cannot be invoked twice' do
322
- client.instance_variable_set('@socket', nil) # caused by a :close callback
318
+ client.instance_variable_set(:@socket, nil) # caused by a :close callback
323
319
  expect do
324
320
  client.stop!
325
321
  end.to raise_error Slack::RealTime::Client::ClientNotStartedError
@@ -340,7 +336,7 @@ RSpec.describe Slack::RealTime::Client do
340
336
  let(:url) { 'wss://mpmulti-w5tz.slack-msgs.com/websocket/uid' }
341
337
 
342
338
  it 'sets store to nil' do
343
- expect(client.store).to be nil
339
+ expect(client.store).to be_nil
344
340
  end
345
341
  it "doesn't handle events" do
346
342
  event = Slack::RealTime::Event.new(
@@ -351,10 +347,10 @@ RSpec.describe Slack::RealTime::Client do
351
347
  client.send(:dispatch, event)
352
348
  end
353
349
  it 'self' do
354
- expect(client.self).to be nil
350
+ expect(client.self).to be_nil
355
351
  end
356
352
  it 'team' do
357
- expect(client.team).to be nil
353
+ expect(client.team).to be_nil
358
354
  end
359
355
  describe 'to_s' do
360
356
  it 'defaults to class instance' do
@@ -371,7 +367,7 @@ RSpec.describe Slack::RealTime::Client do
371
367
  expect(client.websocket_ping).to eq 30
372
368
  end
373
369
  it "doesn't set proxy" do
374
- expect(client.websocket_proxy).to be nil
370
+ expect(client.websocket_proxy).to be_nil
375
371
  end
376
372
  it 'defaults logger' do
377
373
  expect(client.send(:logger)).to be_a ::Logger
@@ -379,7 +375,7 @@ RSpec.describe Slack::RealTime::Client do
379
375
  it 'sets default store_class' do
380
376
  expect(client.send(:store_class)).to eq Slack::RealTime::Store
381
377
  end
382
- (Slack::RealTime::Config::ATTRIBUTES - %i[logger store_class]).each do |key|
378
+ (Slack::RealTime::Config::ATTRIBUTES - %i[logger store_class token]).each do |key|
383
379
  it "sets #{key}" do
384
380
  expect(client.send(key)).to eq Slack::RealTime::Config.send(key)
385
381
  end
@@ -431,7 +427,7 @@ RSpec.describe Slack::RealTime::Client do
431
427
  described_class.config.reset
432
428
  end
433
429
 
434
- let(:url) { 'wss://ms173.slack-msgs.com/websocket/lqcUiAvrKTP-uuid=' }
430
+ let(:url) { 'wss://cerberus-xxxx.lb.slack-msgs.com/websocket/uid' }
435
431
  let(:client) { described_class.new }
436
432
 
437
433
  context 'ping' do
@@ -447,7 +443,7 @@ RSpec.describe Slack::RealTime::Client do
447
443
  end
448
444
  it 'creates a connection with custom ping', vcr: { cassette_name: 'web/rtm_start' } do
449
445
  expect(Slack::RealTime::Concurrency::Mock::WebSocket).to(
450
- receive(:new).with(url, nil, ping: 15).and_return(ws)
446
+ receive(:new).with(url, nil, { ping: 15 }).and_return(ws)
451
447
  )
452
448
  client.start!
453
449
  end
@@ -478,10 +474,12 @@ RSpec.describe Slack::RealTime::Client do
478
474
  expect(Slack::RealTime::Concurrency::Mock::WebSocket).to receive(:new).with(
479
475
  url,
480
476
  nil,
481
- ping: 30,
482
- proxy: {
483
- origin: 'http://username:password@proxy.example.com',
484
- headers: { 'User-Agent' => 'ruby' }
477
+ {
478
+ ping: 30,
479
+ proxy: {
480
+ origin: 'http://username:password@proxy.example.com',
481
+ headers: { 'User-Agent' => 'ruby' }
482
+ }
485
483
  }
486
484
  ).and_return(ws)
487
485
  client.start!
@@ -511,7 +509,7 @@ RSpec.describe Slack::RealTime::Client do
511
509
 
512
510
  it 'calls rtm_start with start options', vcr: { cassette_name: 'web/rtm_start' } do
513
511
  expect(client.web_client).to(
514
- receive(:rtm_start).with(simple_latest: true).and_call_original
512
+ receive(:rtm_start).with({ simple_latest: true }).and_call_original
515
513
  )
516
514
  client.start!
517
515
  end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+ require 'spec_helper'
3
+
4
+ RSpec.describe 'with CONCURRENCY', skip: ( # rubocop:disable RSpec/DescribeClass
5
+ (!ENV['CONCURRENCY']) && 'missing CONCURRENCY'
6
+ ) do
7
+ it 'detects concurrency' do
8
+ expect(Slack::RealTime::Config.concurrency).to eq Slack::RealTime::Concurrency::Async
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+ require 'spec_helper'
3
+
4
+ RSpec.describe 'without CONCURRENCY', skip: ( # rubocop:disable RSpec/DescribeClass
5
+ (ENV['CONCURRENCY']) && 'CONCURRENCY is set'
6
+ ) do
7
+ it 'raises NoConcurrencyError' do
8
+ expect { Slack::RealTime::Config.concurrency }.to raise_error Slack::RealTime::Config::NoConcurrencyError
9
+ end
10
+ end
@@ -6,7 +6,7 @@ RSpec.describe Slack::RealTime::Client, vcr: { cassette_name: 'web/rtm_start' }
6
6
 
7
7
  context 'bot' do
8
8
  it 'sets bot data on rtm.start' do
9
- expect(client.bots.count).to eq 16
9
+ expect(client.bots.count).to eq 83
10
10
  end
11
11
  it 'bot_added' do
12
12
  expect do
@@ -6,7 +6,7 @@ RSpec.describe Slack::RealTime::Client, vcr: { cassette_name: 'web/rtm_start' }
6
6
 
7
7
  context 'channel' do
8
8
  it 'sets channel data' do
9
- expect(client.channels.count).to eq 37
9
+ expect(client.channels.count).to eq 156
10
10
  end
11
11
  it 'channel_archive' do
12
12
  channel = client.channels['C0HNTD0CW']
@@ -20,7 +20,7 @@ RSpec.describe Slack::RealTime::Client, vcr: { cassette_name: 'web/rtm_start' }
20
20
  expect(channel.is_archived).to be true
21
21
  end
22
22
  it 'channel_created' do
23
- expect(client.channels['C024BE91L']).to be nil
23
+ expect(client.channels['C024BE91L']).to be_nil
24
24
  event = Slack::RealTime::Event.new(
25
25
  'type' => 'channel_created',
26
26
  'channel' => {
@@ -32,23 +32,23 @@ RSpec.describe Slack::RealTime::Client, vcr: { cassette_name: 'web/rtm_start' }
32
32
  )
33
33
  client.send(:dispatch, event)
34
34
  channel = client.channels['C024BE91L']
35
- expect(channel).not_to be nil
35
+ expect(channel).not_to be_nil
36
36
  expect(channel.name).to eq 'fun'
37
37
  expect(channel.creator).to eq 'U04KB5WQR'
38
38
  expect(channel.created).to eq 1_360_782_804
39
39
  end
40
40
  it 'channel_deleted' do
41
- expect(client.channels['C0HLE0BBL']).not_to be nil
41
+ expect(client.channels['C0HLE0BBL']).not_to be_nil
42
42
  event = Slack::RealTime::Event.new(
43
43
  'type' => 'channel_deleted',
44
44
  'channel' => 'C0HLE0BBL'
45
45
  )
46
46
  client.send(:dispatch, event)
47
- expect(client.channels['C0HLE0BBL']).to be nil
47
+ expect(client.channels['C0HLE0BBL']).to be_nil
48
48
  end
49
49
  context 'channel_joined' do
50
50
  it 'creates channel' do
51
- expect(client.channels['CDEADBEEF']).to be nil
51
+ expect(client.channels['CDEADBEEF']).to be_nil
52
52
  event = Slack::RealTime::Event.new(
53
53
  'type' => 'channel_joined',
54
54
  'channel' => {
@@ -58,11 +58,11 @@ RSpec.describe Slack::RealTime::Client, vcr: { cassette_name: 'web/rtm_start' }
58
58
  )
59
59
  client.send(:dispatch, event)
60
60
  channel = client.channels['CDEADBEEF']
61
- expect(channel).not_to be nil
61
+ expect(channel).not_to be_nil
62
62
  expect(channel.name).to eq 'beef'
63
63
  end
64
64
  it 'updates channel' do
65
- expect(client.channels['CDEADBEEF']).to be nil
65
+ expect(client.channels['CDEADBEEF']).to be_nil
66
66
  client.channels['CDEADBEEF'] =
67
67
  Slack::RealTime::Models::Channel.new('id' => 'CDEADBEEF', name: 'beef')
68
68
  event = Slack::RealTime::Event.new(
@@ -75,7 +75,7 @@ RSpec.describe Slack::RealTime::Client, vcr: { cassette_name: 'web/rtm_start' }
75
75
  )
76
76
  client.send(:dispatch, event)
77
77
  channel = client.channels['CDEADBEEF']
78
- expect(channel).not_to be nil
78
+ expect(channel).not_to be_nil
79
79
  expect(channel.updated).to be true
80
80
  end
81
81
  end
@@ -9,7 +9,7 @@ RSpec.describe Slack::RealTime::Client, vcr: { cassette_name: 'web/rtm_start' }
9
9
  expect(client.groups.count).to eq 1
10
10
  end
11
11
  it 'group_joined' do
12
- expect(client.groups['CDEADBEEF']).to be nil
12
+ expect(client.groups['CDEADBEEF']).to be_nil
13
13
  event = Slack::RealTime::Event.new(
14
14
  'type' => 'group_joined',
15
15
  'channel' => {
@@ -19,7 +19,7 @@ RSpec.describe Slack::RealTime::Client, vcr: { cassette_name: 'web/rtm_start' }
19
19
  )
20
20
  client.send(:dispatch, event)
21
21
  group = client.groups['CDEADBEEF']
22
- expect(group).not_to be nil
22
+ expect(group).not_to be_nil
23
23
  expect(group.name).to eq 'beef'
24
24
  end
25
25
  it 'group_left' do
@@ -6,10 +6,10 @@ RSpec.describe Slack::RealTime::Client, vcr: { cassette_name: 'web/rtm_start' }
6
6
 
7
7
  context 'im' do
8
8
  it 'sets im data' do
9
- expect(client.ims.count).to eq 2
9
+ expect(client.ims.count).to eq 10
10
10
  end
11
11
  it 'im_created' do
12
- expect(client.ims['CDEADBEEF']).to be nil
12
+ expect(client.ims['CDEADBEEF']).to be_nil
13
13
  event = Slack::RealTime::Event.new(
14
14
  'type' => 'im_created',
15
15
  'channel' => {
@@ -19,27 +19,27 @@ RSpec.describe Slack::RealTime::Client, vcr: { cassette_name: 'web/rtm_start' }
19
19
  )
20
20
  client.send(:dispatch, event)
21
21
  im = client.ims['CDEADBEEF']
22
- expect(im).not_to be nil
22
+ expect(im).not_to be_nil
23
23
  expect(im.name).to eq 'beef'
24
24
  end
25
25
  it 'im_open' do
26
- im = client.ims['D07519J57']
26
+ im = client.ims['D0J1H6QTV']
27
27
  expect(im).not_to be_nil
28
28
  im.is_open = false
29
29
  event = Slack::RealTime::Event.new(
30
30
  'type' => 'im_open',
31
- 'channel' => 'D07519J57'
31
+ 'channel' => 'D0J1H6QTV'
32
32
  )
33
33
  client.send(:dispatch, event)
34
34
  expect(im.is_open).to be true
35
35
  end
36
36
  it 'im_close' do
37
- im = client.ims['D07519J57']
37
+ im = client.ims['D0J1H6QTV']
38
38
  expect(im).not_to be_nil
39
39
  expect(im.is_open).to be true
40
40
  event = Slack::RealTime::Event.new(
41
41
  'type' => 'im_close',
42
- 'channel' => 'D07519J57'
42
+ 'channel' => 'D0J1H6QTV'
43
43
  )
44
44
  client.send(:dispatch, event)
45
45
  expect(im.is_open).to be false
@@ -6,8 +6,8 @@ RSpec.describe Slack::RealTime::Client, vcr: { cassette_name: 'web/rtm_start' }
6
6
 
7
7
  context 'user' do
8
8
  it 'combines user and self data on rtm.start' do
9
- expect(client.users['U07518DTL'].name).to eq 'rubybot'
10
- expect(client.users['U07518DTL']['prefs']['push_sound']).to eq 'b2.mp3'
9
+ expect(client.users['U0J1GAHN1'].name).to eq 'travis-ci'
10
+ expect(client.users['U0J1GAHN1']['prefs']['push_sound']).to eq 'b2.mp3'
11
11
  end
12
12
  it 'user_change' do
13
13
  expect(client.users['U07KECJ77'].name).to eq 'aws'
@@ -3,7 +3,7 @@
3
3
 
4
4
  #
5
5
  # to re-record a rtm_connect fixture run with
6
- # SLACK_API_TOKEN=... CONCURRENCY=faye-websocket rspec spec/slack/real_time/rtm_connect_spec.rb
6
+ # SLACK_API_TOKEN=... CONCURRENCY=async-websocket rspec spec/slack/real_time/rtm_connect_spec.rb
7
7
  # edit rtm_connect.yml and remove the token, fix wss:// path (run specs, fix failures)
8
8
  #
9
9
 
@@ -3,7 +3,7 @@
3
3
 
4
4
  #
5
5
  # to re-record a rtm_start fixture run with
6
- # SLACK_API_TOKEN=... CONCURRENCY=faye-websocket rspec spec/slack/real_time/rtm_start_spec.rb
6
+ # SLACK_API_TOKEN=... CONCURRENCY=async-websocket rspec spec/slack/real_time/rtm_start_spec.rb
7
7
  # edit rtm_start.yml and remove the token, fix wss:// path (run specs, fix failures)
8
8
  #
9
9
 
@@ -4,9 +4,9 @@ require 'spec_helper'
4
4
  RSpec.describe Slack::RealTime::Store do
5
5
  it 'can be initialized with an empty hash' do
6
6
  store = described_class.new(Hashie::Mash.new)
7
- expect(store.self).to be nil
7
+ expect(store.self).to be_nil
8
8
  expect(store.groups.count).to eq 0
9
- expect(store.team).to be nil
9
+ expect(store.team).to be_nil
10
10
  expect(store.teams.count).to eq 0
11
11
  end
12
12
  end
@@ -22,7 +22,7 @@ describe Slack do
22
22
  context 'globals' do
23
23
  let(:command) do
24
24
  "\"#{slack}\" --vcr-cassette-name=web/auth_test_success " \
25
- '--slack-api-token=token -d auth test 2>&1'
25
+ '--slack-api-token=token -d auth test 2>&1'
26
26
  end
27
27
 
28
28
  it 'enables request and response logging with -d' do
@@ -44,7 +44,7 @@ describe Slack do
44
44
  context 'bad auth' do
45
45
  let(:command) do
46
46
  "\"#{slack}\" --vcr-cassette-name=web/auth_test_error " \
47
- '--slack-api-token=token auth test 2>&1'
47
+ '--slack-api-token=token auth test 2>&1'
48
48
  end
49
49
 
50
50
  it 'fails with an exception' do
@@ -56,12 +56,14 @@ describe Slack do
56
56
  context 'good auth' do
57
57
  let(:command) do
58
58
  "\"#{slack}\" --vcr-cassette-name=web/auth_test_success " \
59
- '--slack-api-token=token auth test 2>&1'
59
+ '--slack-api-token=token auth test 2>&1'
60
60
  end
61
61
 
62
62
  it 'succeeds' do
63
63
  json = Slack::Messages::Message.new(JSON[`#{command}`])
64
64
  expect(json).to eq(
65
+ 'bot_id' => 'B0J1L75DY',
66
+ 'is_enterprise_install' => false,
65
67
  'ok' => true,
66
68
  'url' => 'https://rubybot.slack.com/',
67
69
  'team' => 'team_name',
@@ -77,13 +79,13 @@ describe Slack do
77
79
  describe '#users' do
78
80
  let(:command) do
79
81
  "\"#{slack}\" --vcr-cassette-name=web/users_list " \
80
- '--slack-api-token=token users list --presence=true 2>&1'
82
+ '--slack-api-token=token users list --presence=true 2>&1'
81
83
  end
82
84
 
83
85
  it 'list' do
84
86
  json = Slack::Messages::Message.new(JSON[`#{command}`])
85
87
  expect(json.ok).to be true
86
- expect(json.members.size).to eq 9
88
+ expect(json.members.size).to eq 35
87
89
  expect(json.members.first['presence']).to eq 'away'
88
90
  end
89
91
  end
@@ -3,6 +3,6 @@ require 'spec_helper'
3
3
 
4
4
  describe Slack do
5
5
  it 'has a version' do
6
- expect(Slack::VERSION).not_to be nil
6
+ expect(Slack::VERSION).not_to be_nil
7
7
  end
8
8
  end
@@ -5,4 +5,9 @@ require 'spec_helper'
5
5
 
6
6
  RSpec.describe Slack::Web::Api::Endpoints::AdminAppsRequests do
7
7
  let(:client) { Slack::Web::Client.new }
8
+ context 'admin.apps.requests_cancel' do
9
+ it 'requires request_id' do
10
+ expect { client.admin_apps_requests_cancel }.to raise_error ArgumentError, /Required arguments :request_id missing/
11
+ end
12
+ end
8
13
  end
@@ -10,4 +10,9 @@ RSpec.describe Slack::Web::Api::Endpoints::AdminApps do
10
10
  expect { client.admin_apps_clearResolution }.to raise_error ArgumentError, /Required arguments :app_id missing/
11
11
  end
12
12
  end
13
+ context 'admin.apps_uninstall' do
14
+ it 'requires app_id' do
15
+ expect { client.admin_apps_uninstall }.to raise_error ArgumentError, /Required arguments :app_id missing/
16
+ end
17
+ end
13
18
  end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ require 'spec_helper'
5
+
6
+ RSpec.describe Slack::Web::Api::Endpoints::AdminAuthPolicy do
7
+ let(:client) { Slack::Web::Client.new }
8
+ context 'admin.auth.policy_assignEntities' do
9
+ it 'requires entity_ids' do
10
+ expect { client.admin_auth_policy_assignEntities(entity_type: %q[], policy_name: %q[]) }.to raise_error ArgumentError, /Required arguments :entity_ids missing/
11
+ end
12
+ it 'requires entity_type' do
13
+ expect { client.admin_auth_policy_assignEntities(entity_ids: %q[], policy_name: %q[]) }.to raise_error ArgumentError, /Required arguments :entity_type missing/
14
+ end
15
+ it 'requires policy_name' do
16
+ expect { client.admin_auth_policy_assignEntities(entity_ids: %q[], entity_type: %q[]) }.to raise_error ArgumentError, /Required arguments :policy_name missing/
17
+ end
18
+ end
19
+ context 'admin.auth.policy_getEntities' do
20
+ it 'requires policy_name' do
21
+ expect { client.admin_auth_policy_getEntities }.to raise_error ArgumentError, /Required arguments :policy_name missing/
22
+ end
23
+ end
24
+ context 'admin.auth.policy_removeEntities' do
25
+ it 'requires entity_ids' do
26
+ expect { client.admin_auth_policy_removeEntities(entity_type: %q[], policy_name: %q[]) }.to raise_error ArgumentError, /Required arguments :entity_ids missing/
27
+ end
28
+ it 'requires entity_type' do
29
+ expect { client.admin_auth_policy_removeEntities(entity_ids: %q[], policy_name: %q[]) }.to raise_error ArgumentError, /Required arguments :entity_type missing/
30
+ end
31
+ it 'requires policy_name' do
32
+ expect { client.admin_auth_policy_removeEntities(entity_ids: %q[], entity_type: %q[]) }.to raise_error ArgumentError, /Required arguments :policy_name missing/
33
+ end
34
+ end
35
+ end
@@ -17,10 +17,10 @@ RSpec.describe Slack::Web::Api::Endpoints::AdminConversations do
17
17
  end
18
18
  context 'admin.conversations_create' do
19
19
  it 'requires is_private' do
20
- expect { client.admin_conversations_create(name: %q[mychannel]) }.to raise_error ArgumentError, /Required arguments :is_private missing/
20
+ expect { client.admin_conversations_create(name: %q[]) }.to raise_error ArgumentError, /Required arguments :is_private missing/
21
21
  end
22
22
  it 'requires name' do
23
- expect { client.admin_conversations_create(is_private: %q[true]) }.to raise_error ArgumentError, /Required arguments :name missing/
23
+ expect { client.admin_conversations_create(is_private: %q[]) }.to raise_error ArgumentError, /Required arguments :name missing/
24
24
  end
25
25
  end
26
26
  context 'admin.conversations_delete' do
@@ -50,10 +50,10 @@ RSpec.describe Slack::Web::Api::Endpoints::AdminConversations do
50
50
  end
51
51
  context 'admin.conversations_invite' do
52
52
  it 'requires channel_id' do
53
- expect { client.admin_conversations_invite(user_ids: %q[U1234,U2345,U3456]) }.to raise_error ArgumentError, /Required arguments :channel_id missing/
53
+ expect { client.admin_conversations_invite(user_ids: %q[]) }.to raise_error ArgumentError, /Required arguments :channel_id missing/
54
54
  end
55
55
  it 'requires user_ids' do
56
- expect { client.admin_conversations_invite(channel_id: %q[C12345]) }.to raise_error ArgumentError, /Required arguments :user_ids missing/
56
+ expect { client.admin_conversations_invite(channel_id: %q[]) }.to raise_error ArgumentError, /Required arguments :user_ids missing/
57
57
  end
58
58
  end
59
59
  context 'admin.conversations_removeCustomRetention' do
@@ -66,23 +66,23 @@ RSpec.describe Slack::Web::Api::Endpoints::AdminConversations do
66
66
  expect { client.admin_conversations_rename(name: %q[]) }.to raise_error ArgumentError, /Required arguments :channel_id missing/
67
67
  end
68
68
  it 'requires name' do
69
- expect { client.admin_conversations_rename(channel_id: %q[C12345]) }.to raise_error ArgumentError, /Required arguments :name missing/
69
+ expect { client.admin_conversations_rename(channel_id: %q[]) }.to raise_error ArgumentError, /Required arguments :name missing/
70
70
  end
71
71
  end
72
72
  context 'admin.conversations_setConversationPrefs' do
73
73
  it 'requires channel_id' do
74
- expect { client.admin_conversations_setConversationPrefs(prefs: %q[{'who_can_post':'type:admin,user:U1234,subteam:S1234'}]) }.to raise_error ArgumentError, /Required arguments :channel_id missing/
74
+ expect { client.admin_conversations_setConversationPrefs(prefs: %q[]) }.to raise_error ArgumentError, /Required arguments :channel_id missing/
75
75
  end
76
76
  it 'requires prefs' do
77
- expect { client.admin_conversations_setConversationPrefs(channel_id: %q[C1234]) }.to raise_error ArgumentError, /Required arguments :prefs missing/
77
+ expect { client.admin_conversations_setConversationPrefs(channel_id: %q[]) }.to raise_error ArgumentError, /Required arguments :prefs missing/
78
78
  end
79
79
  end
80
80
  context 'admin.conversations_setCustomRetention' do
81
81
  it 'requires channel_id' do
82
- expect { client.admin_conversations_setCustomRetention(duration_days: %q[500]) }.to raise_error ArgumentError, /Required arguments :channel_id missing/
82
+ expect { client.admin_conversations_setCustomRetention(duration_days: %q[]) }.to raise_error ArgumentError, /Required arguments :channel_id missing/
83
83
  end
84
84
  it 'requires duration_days' do
85
- expect { client.admin_conversations_setCustomRetention(channel_id: %q[C12345678]) }.to raise_error ArgumentError, /Required arguments :duration_days missing/
85
+ expect { client.admin_conversations_setCustomRetention(channel_id: %q[]) }.to raise_error ArgumentError, /Required arguments :duration_days missing/
86
86
  end
87
87
  end
88
88
  context 'admin.conversations_setTeams' do
@@ -39,7 +39,7 @@ RSpec.describe Slack::Web::Api::Endpoints::AdminTeamsSettings do
39
39
  expect { client.admin_teams_settings_setIcon(team_id: %q[]) }.to raise_error ArgumentError, /Required arguments :image_url missing/
40
40
  end
41
41
  it 'requires team_id' do
42
- expect { client.admin_teams_settings_setIcon(image_url: %q[http://mysite.com/icon.jpeg]) }.to raise_error ArgumentError, /Required arguments :team_id missing/
42
+ expect { client.admin_teams_settings_setIcon(image_url: %q[]) }.to raise_error ArgumentError, /Required arguments :team_id missing/
43
43
  end
44
44
  end
45
45
  context 'admin.teams.settings_setName' do