slack-ruby-client 0.14.2 → 0.15.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 (322) hide show
  1. checksums.yaml +4 -4
  2. data/.github/FUNDING.yml +1 -0
  3. data/.rubocop.yml +23 -7
  4. data/.rubocop_todo.yml +103 -43
  5. data/.travis.yml +0 -1
  6. data/CHANGELOG.md +39 -2
  7. data/CONTRIBUTING.md +24 -6
  8. data/Dangerfile +2 -1
  9. data/Gemfile +10 -3
  10. data/README.md +90 -30
  11. data/Rakefile +1 -0
  12. data/UPGRADING.md +16 -0
  13. data/bin/commands.rb +24 -0
  14. data/bin/commands/admin_apps.rb +27 -0
  15. data/bin/commands/admin_apps_approved.rb +17 -0
  16. data/bin/commands/admin_apps_requests.rb +16 -0
  17. data/bin/commands/admin_apps_restricted.rb +17 -0
  18. data/bin/commands/admin_conversations.rb +17 -0
  19. data/bin/commands/admin_conversations_restrictAccess.rb +37 -0
  20. data/bin/commands/admin_conversations_whitelist.rb +37 -0
  21. data/bin/commands/admin_emoji.rb +54 -0
  22. data/bin/commands/admin_inviteRequests.rb +36 -0
  23. data/bin/commands/admin_inviteRequests_approved.rb +16 -0
  24. data/bin/commands/admin_inviteRequests_denied.rb +16 -0
  25. data/bin/commands/admin_teams.rb +27 -0
  26. data/bin/commands/admin_teams_admins.rb +16 -0
  27. data/bin/commands/admin_teams_owners.rb +16 -0
  28. data/bin/commands/admin_teams_settings.rb +64 -0
  29. data/bin/commands/admin_usergroups.rb +48 -0
  30. data/bin/commands/admin_users.rb +97 -0
  31. data/bin/commands/admin_users_session.rb +16 -0
  32. data/bin/commands/api.rb +3 -2
  33. data/bin/commands/apps.rb +3 -2
  34. data/bin/commands/apps_permissions.rb +5 -4
  35. data/bin/commands/apps_permissions_resources.rb +3 -2
  36. data/bin/commands/apps_permissions_scopes.rb +3 -2
  37. data/bin/commands/apps_permissions_users.rb +5 -4
  38. data/bin/commands/auth.rb +5 -4
  39. data/bin/commands/bots.rb +3 -2
  40. data/bin/commands/calls.rb +52 -0
  41. data/bin/commands/calls_participants.rb +25 -0
  42. data/bin/commands/channels.rb +31 -30
  43. data/bin/commands/chat.rb +36 -32
  44. data/bin/commands/chat_scheduledMessages.rb +3 -2
  45. data/bin/commands/conversations.rb +36 -36
  46. data/bin/commands/dialog.rb +3 -2
  47. data/bin/commands/dnd.rb +9 -8
  48. data/bin/commands/emoji.rb +3 -2
  49. data/bin/commands/files.rb +14 -12
  50. data/bin/commands/files_comments.rb +3 -2
  51. data/bin/commands/files_remote.rb +78 -0
  52. data/bin/commands/groups.rb +33 -32
  53. data/bin/commands/im.rb +13 -12
  54. data/bin/commands/migration.rb +3 -2
  55. data/bin/commands/mpim.rb +11 -10
  56. data/bin/commands/oauth.rb +6 -5
  57. data/bin/commands/oauth_v2.rb +17 -0
  58. data/bin/commands/pins.rb +7 -8
  59. data/bin/commands/reactions.rb +10 -11
  60. data/bin/commands/reminders.rb +11 -10
  61. data/bin/commands/rtm.rb +5 -4
  62. data/bin/commands/search.rb +7 -6
  63. data/bin/commands/stars.rb +7 -6
  64. data/bin/commands/team.rb +10 -8
  65. data/bin/commands/team_profile.rb +3 -2
  66. data/bin/commands/usergroups.rb +11 -10
  67. data/bin/commands/usergroups_users.rb +5 -4
  68. data/bin/commands/users.rb +21 -20
  69. data/bin/commands/users_admin.rb +1 -0
  70. data/bin/commands/users_prefs.rb +1 -0
  71. data/bin/commands/users_profile.rb +5 -4
  72. data/bin/commands/views.rb +48 -0
  73. data/bin/slack +1 -2
  74. data/examples/hi_real_time/Gemfile +1 -0
  75. data/examples/hi_real_time/hi.rb +7 -3
  76. data/examples/hi_real_time_and_web/Gemfile +1 -0
  77. data/examples/hi_real_time_and_web/hi.rb +7 -3
  78. data/examples/hi_real_time_async_async/Gemfile +1 -0
  79. data/examples/hi_real_time_async_async/hi.rb +6 -2
  80. data/examples/hi_real_time_async_celluloid/Gemfile +1 -0
  81. data/examples/hi_real_time_async_celluloid/hi.rb +7 -3
  82. data/examples/hi_real_time_async_eventmachine/Gemfile +1 -0
  83. data/examples/hi_real_time_async_eventmachine/hi.rb +7 -3
  84. data/examples/hi_web/Gemfile +1 -0
  85. data/examples/hi_web/hi.rb +1 -0
  86. data/examples/new_ticket/Gemfile +1 -0
  87. data/examples/new_ticket/new_ticket.rb +1 -0
  88. data/lib/slack-ruby-client.rb +4 -4
  89. data/lib/slack.rb +1 -0
  90. data/lib/slack/config.rb +1 -0
  91. data/lib/slack/events/config.rb +1 -0
  92. data/lib/slack/events/request.rb +3 -1
  93. data/lib/slack/logger.rb +6 -5
  94. data/lib/slack/messages/formatting.rb +1 -0
  95. data/lib/slack/messages/message.rb +1 -4
  96. data/lib/slack/real_time/api/message.rb +3 -1
  97. data/lib/slack/real_time/api/message_id.rb +1 -0
  98. data/lib/slack/real_time/api/ping.rb +5 -2
  99. data/lib/slack/real_time/api/typing.rb +3 -1
  100. data/lib/slack/real_time/client.rb +46 -22
  101. data/lib/slack/real_time/concurrency.rb +1 -0
  102. data/lib/slack/real_time/concurrency/async.rb +18 -9
  103. data/lib/slack/real_time/concurrency/celluloid.rb +10 -4
  104. data/lib/slack/real_time/concurrency/eventmachine.rb +9 -6
  105. data/lib/slack/real_time/config.rb +6 -1
  106. data/lib/slack/real_time/models.rb +1 -0
  107. data/lib/slack/real_time/models/base.rb +1 -4
  108. data/lib/slack/real_time/models/bot.rb +1 -0
  109. data/lib/slack/real_time/models/channel.rb +1 -0
  110. data/lib/slack/real_time/models/group.rb +1 -0
  111. data/lib/slack/real_time/models/im.rb +1 -0
  112. data/lib/slack/real_time/models/team.rb +1 -0
  113. data/lib/slack/real_time/models/user.rb +1 -0
  114. data/lib/slack/real_time/socket.rb +16 -13
  115. data/lib/slack/real_time/stores.rb +1 -0
  116. data/lib/slack/real_time/stores/base.rb +4 -1
  117. data/lib/slack/real_time/stores/starter.rb +11 -0
  118. data/lib/slack/real_time/stores/store.rb +26 -25
  119. data/lib/slack/version.rb +2 -1
  120. data/lib/slack/web/api/endpoints.rb +48 -0
  121. data/lib/slack/web/api/endpoints/admin_apps.rb +42 -0
  122. data/lib/slack/web/api/endpoints/admin_apps_approved.rb +35 -0
  123. data/lib/slack/web/api/endpoints/admin_apps_requests.rb +33 -0
  124. data/lib/slack/web/api/endpoints/admin_apps_restricted.rb +35 -0
  125. data/lib/slack/web/api/endpoints/admin_conversations.rb +30 -0
  126. data/lib/slack/web/api/endpoints/admin_conversations_restrictAccess.rb +61 -0
  127. data/lib/slack/web/api/endpoints/admin_conversations_whitelist.rb +64 -0
  128. data/lib/slack/web/api/endpoints/admin_emoji.rb +88 -0
  129. data/lib/slack/web/api/endpoints/admin_inviteRequests.rb +61 -0
  130. data/lib/slack/web/api/endpoints/admin_inviteRequests_approved.rb +33 -0
  131. data/lib/slack/web/api/endpoints/admin_inviteRequests_denied.rb +33 -0
  132. data/lib/slack/web/api/endpoints/admin_teams.rb +50 -0
  133. data/lib/slack/web/api/endpoints/admin_teams_admins.rb +34 -0
  134. data/lib/slack/web/api/endpoints/admin_teams_owners.rb +34 -0
  135. data/lib/slack/web/api/endpoints/admin_teams_settings.rb +99 -0
  136. data/lib/slack/web/api/endpoints/admin_usergroups.rb +77 -0
  137. data/lib/slack/web/api/endpoints/admin_users.rb +163 -0
  138. data/lib/slack/web/api/endpoints/admin_users_session.rb +28 -0
  139. data/lib/slack/web/api/endpoints/api.rb +2 -1
  140. data/lib/slack/web/api/endpoints/apps.rb +2 -1
  141. data/lib/slack/web/api/endpoints/apps_permissions.rb +3 -2
  142. data/lib/slack/web/api/endpoints/apps_permissions_resources.rb +2 -1
  143. data/lib/slack/web/api/endpoints/apps_permissions_scopes.rb +2 -1
  144. data/lib/slack/web/api/endpoints/apps_permissions_users.rb +3 -2
  145. data/lib/slack/web/api/endpoints/auth.rb +3 -2
  146. data/lib/slack/web/api/endpoints/bots.rb +2 -1
  147. data/lib/slack/web/api/endpoints/calls.rb +83 -0
  148. data/lib/slack/web/api/endpoints/calls_participants.rb +42 -0
  149. data/lib/slack/web/api/endpoints/channels.rb +44 -29
  150. data/lib/slack/web/api/endpoints/chat.rb +38 -31
  151. data/lib/slack/web/api/endpoints/chat_scheduledMessages.rb +3 -2
  152. data/lib/slack/web/api/endpoints/conversations.rb +34 -35
  153. data/lib/slack/web/api/endpoints/dialog.rb +2 -1
  154. data/lib/slack/web/api/endpoints/dnd.rb +6 -4
  155. data/lib/slack/web/api/endpoints/emoji.rb +2 -1
  156. data/lib/slack/web/api/endpoints/files.rb +11 -8
  157. data/lib/slack/web/api/endpoints/files_comments.rb +2 -1
  158. data/lib/slack/web/api/endpoints/files_remote.rb +127 -0
  159. data/lib/slack/web/api/endpoints/groups.rb +33 -18
  160. data/lib/slack/web/api/endpoints/im.rb +17 -12
  161. data/lib/slack/web/api/endpoints/migration.rb +2 -1
  162. data/lib/slack/web/api/endpoints/mpim.rb +16 -11
  163. data/lib/slack/web/api/endpoints/oauth.rb +4 -6
  164. data/lib/slack/web/api/endpoints/oauth_v2.rb +30 -0
  165. data/lib/slack/web/api/endpoints/pins.rb +8 -12
  166. data/lib/slack/web/api/endpoints/reactions.rb +12 -15
  167. data/lib/slack/web/api/endpoints/reminders.rb +6 -5
  168. data/lib/slack/web/api/endpoints/rtm.rb +3 -2
  169. data/lib/slack/web/api/endpoints/search.rb +4 -3
  170. data/lib/slack/web/api/endpoints/stars.rb +6 -7
  171. data/lib/slack/web/api/endpoints/team.rb +7 -5
  172. data/lib/slack/web/api/endpoints/team_profile.rb +2 -1
  173. data/lib/slack/web/api/endpoints/usergroups.rb +6 -5
  174. data/lib/slack/web/api/endpoints/usergroups_users.rb +3 -2
  175. data/lib/slack/web/api/endpoints/users.rb +11 -12
  176. data/lib/slack/web/api/endpoints/users_admin.rb +1 -0
  177. data/lib/slack/web/api/endpoints/users_prefs.rb +1 -0
  178. data/lib/slack/web/api/endpoints/users_profile.rb +3 -2
  179. data/lib/slack/web/api/endpoints/views.rb +97 -0
  180. data/lib/slack/web/api/error.rb +1 -0
  181. data/lib/slack/web/api/errors.rb +656 -0
  182. data/lib/slack/web/api/errors/slack_error.rb +14 -1
  183. data/lib/slack/web/api/errors/too_many_requests_error.rb +1 -0
  184. data/lib/slack/web/api/mixins.rb +2 -0
  185. data/lib/slack/web/api/mixins/channels.id.rb +1 -0
  186. data/lib/slack/web/api/mixins/conversations.id.rb +27 -0
  187. data/lib/slack/web/api/mixins/groups.id.rb +1 -0
  188. data/lib/slack/web/api/mixins/ids.id.rb +1 -0
  189. data/lib/slack/web/api/mixins/users.id.rb +1 -0
  190. data/lib/slack/web/api/mixins/users.search.rb +1 -0
  191. data/lib/slack/web/api/patches/{chat.6.block-kit-support.patch → chat.1.patch} +29 -26
  192. data/lib/slack/web/api/patches/views.1.view-json.patch +40 -0
  193. data/lib/slack/web/api/patches/views.1.views-published.patch +16 -0
  194. data/lib/slack/web/api/templates/command.erb +1 -0
  195. data/lib/slack/web/api/templates/commands.erb +1 -0
  196. data/lib/slack/web/api/templates/endpoints.erb +1 -0
  197. data/lib/slack/web/api/templates/errors.erb +20 -0
  198. data/lib/slack/web/api/templates/method.erb +5 -1
  199. data/lib/slack/web/api/templates/method_spec.erb +1 -0
  200. data/lib/slack/web/client.rb +2 -1
  201. data/lib/slack/web/config.rb +1 -0
  202. data/lib/slack/web/faraday/connection.rb +24 -20
  203. data/lib/slack/web/faraday/request.rb +1 -0
  204. data/lib/slack/web/faraday/response/raise_error.rb +10 -6
  205. data/lib/slack/web/pagination/cursor.rb +3 -2
  206. data/lib/slack_ruby_client.rb +1 -0
  207. data/lib/tasks/git.rake +1 -0
  208. data/lib/tasks/real_time.rake +13 -5
  209. data/lib/tasks/update.rake +1 -0
  210. data/lib/tasks/web.rake +27 -7
  211. data/screenshots/create-app.png +0 -0
  212. data/slack-ruby-client.gemspec +6 -3
  213. data/spec/fixtures/slack/web/channels_info.yml +108 -15
  214. data/spec/fixtures/slack/web/views_open_error.yml +76 -0
  215. data/spec/integration/integration_spec.rb +26 -23
  216. data/spec/slack/config_spec.rb +2 -0
  217. data/spec/slack/events/config_spec.rb +8 -4
  218. data/spec/slack/events/request_spec.rb +67 -37
  219. data/spec/slack/messages/formatting_spec.rb +25 -13
  220. data/spec/slack/real_time/api/message_spec.rb +6 -1
  221. data/spec/slack/real_time/api/ping_spec.rb +2 -0
  222. data/spec/slack/real_time/api/typing_spec.rb +5 -1
  223. data/spec/slack/real_time/client_spec.rb +178 -32
  224. data/spec/slack/real_time/concurrency/celluloid_spec.rb +11 -6
  225. data/spec/slack/real_time/concurrency/eventmachine_spec.rb +9 -1
  226. data/spec/slack/real_time/concurrency/it_behaves_like_a_realtime_socket.rb +2 -0
  227. data/spec/slack/real_time/event_handlers/bot_spec.rb +2 -1
  228. data/spec/slack/real_time/event_handlers/channel_spec.rb +9 -6
  229. data/spec/slack/real_time/event_handlers/event_handlers_spec.rb +2 -1
  230. data/spec/slack/real_time/event_handlers/group_spec.rb +5 -4
  231. data/spec/slack/real_time/event_handlers/im_spec.rb +4 -3
  232. data/spec/slack/real_time/event_handlers/team_spec.rb +3 -1
  233. data/spec/slack/real_time/event_handlers/user_spec.rb +1 -0
  234. data/spec/slack/real_time/rtm_connect_spec.rb +1 -0
  235. data/spec/slack/real_time/rtm_start_spec.rb +1 -0
  236. data/spec/slack/real_time/store_spec.rb +2 -1
  237. data/spec/slack/slack_spec.rb +37 -5
  238. data/spec/slack/version_spec.rb +2 -1
  239. data/spec/slack/web/api/endpoints/admin_apps_approved_spec.rb +8 -0
  240. data/spec/slack/web/api/endpoints/admin_apps_requests_spec.rb +8 -0
  241. data/spec/slack/web/api/endpoints/admin_apps_restricted_spec.rb +8 -0
  242. data/spec/slack/web/api/endpoints/admin_apps_spec.rb +8 -0
  243. data/spec/slack/web/api/endpoints/admin_conversations_restrictAccess_spec.rb +32 -0
  244. data/spec/slack/web/api/endpoints/admin_conversations_spec.rb +13 -0
  245. data/spec/slack/web/api/endpoints/admin_conversations_whitelist_spec.rb +32 -0
  246. data/spec/slack/web/api/endpoints/admin_emoji_spec.rb +37 -0
  247. data/spec/slack/web/api/endpoints/admin_inviteRequests_approved_spec.rb +8 -0
  248. data/spec/slack/web/api/endpoints/admin_inviteRequests_denied_spec.rb +8 -0
  249. data/spec/slack/web/api/endpoints/admin_inviteRequests_spec.rb +18 -0
  250. data/spec/slack/web/api/endpoints/admin_teams_admins_spec.rb +13 -0
  251. data/spec/slack/web/api/endpoints/admin_teams_owners_spec.rb +13 -0
  252. data/spec/slack/web/api/endpoints/admin_teams_settings_spec.rb +53 -0
  253. data/spec/slack/web/api/endpoints/admin_teams_spec.rb +16 -0
  254. data/spec/slack/web/api/endpoints/admin_usergroups_spec.rb +37 -0
  255. data/spec/slack/web/api/endpoints/admin_users_session_spec.rb +13 -0
  256. data/spec/slack/web/api/endpoints/admin_users_spec.rb +75 -0
  257. data/spec/slack/web/api/endpoints/api_spec.rb +1 -0
  258. data/spec/slack/web/api/endpoints/apps_permissions_resources_spec.rb +1 -0
  259. data/spec/slack/web/api/endpoints/apps_permissions_scopes_spec.rb +1 -0
  260. data/spec/slack/web/api/endpoints/apps_permissions_spec.rb +3 -2
  261. data/spec/slack/web/api/endpoints/apps_permissions_users_spec.rb +4 -3
  262. data/spec/slack/web/api/endpoints/apps_spec.rb +1 -0
  263. data/spec/slack/web/api/endpoints/bots_spec.rb +1 -0
  264. data/spec/slack/web/api/endpoints/calls_participants_spec.rb +24 -0
  265. data/spec/slack/web/api/endpoints/calls_spec.rb +31 -0
  266. data/spec/slack/web/api/endpoints/chat_scheduledMessages_spec.rb +1 -0
  267. data/spec/slack/web/api/endpoints/conversations_spec.rb +2 -1
  268. data/spec/slack/web/api/endpoints/custom_specs/auth_spec.rb +5 -1
  269. data/spec/slack/web/api/endpoints/custom_specs/channels_spec.rb +5 -3
  270. data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +80 -25
  271. data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +12 -4
  272. data/spec/slack/web/api/endpoints/custom_specs/groups_spec.rb +2 -0
  273. data/spec/slack/web/api/endpoints/custom_specs/users_spec.rb +6 -1
  274. data/spec/slack/web/api/endpoints/custom_specs/views_spec.rb +95 -0
  275. data/spec/slack/web/api/endpoints/dnd_spec.rb +6 -0
  276. data/spec/slack/web/api/endpoints/emoji_spec.rb +1 -0
  277. data/spec/slack/web/api/endpoints/files_comments_spec.rb +1 -0
  278. data/spec/slack/web/api/endpoints/files_remote_spec.rb +24 -0
  279. data/spec/slack/web/api/endpoints/files_spec.rb +1 -0
  280. data/spec/slack/web/api/endpoints/im_spec.rb +1 -0
  281. data/spec/slack/web/api/endpoints/migration_spec.rb +1 -0
  282. data/spec/slack/web/api/endpoints/mpim_spec.rb +1 -0
  283. data/spec/slack/web/api/endpoints/oauth_spec.rb +1 -11
  284. data/spec/slack/web/api/endpoints/oauth_v2_spec.rb +13 -0
  285. data/spec/slack/web/api/endpoints/pins_spec.rb +5 -1
  286. data/spec/slack/web/api/endpoints/reactions_spec.rb +8 -1
  287. data/spec/slack/web/api/endpoints/reminders_spec.rb +1 -0
  288. data/spec/slack/web/api/endpoints/rtm_spec.rb +1 -0
  289. data/spec/slack/web/api/endpoints/search_spec.rb +1 -0
  290. data/spec/slack/web/api/endpoints/stars_spec.rb +1 -0
  291. data/spec/slack/web/api/endpoints/team_profile_spec.rb +1 -0
  292. data/spec/slack/web/api/endpoints/team_spec.rb +1 -0
  293. data/spec/slack/web/api/endpoints/usergroups_spec.rb +1 -0
  294. data/spec/slack/web/api/endpoints/usergroups_users_spec.rb +1 -0
  295. data/spec/slack/web/api/endpoints/users_admin_spec.rb +1 -0
  296. data/spec/slack/web/api/endpoints/users_prefs_spec.rb +1 -0
  297. data/spec/slack/web/api/endpoints/users_profile_spec.rb +1 -0
  298. data/spec/slack/web/api/endpoints/views_spec.rb +29 -0
  299. data/spec/slack/web/api/error_spec.rb +4 -2
  300. data/spec/slack/web/api/errors/service_unavailable_spec.rb +8 -5
  301. data/spec/slack/web/api/errors/slack_error_spec.rb +26 -2
  302. data/spec/slack/web/api/mixins/channels_spec.rb +17 -7
  303. data/spec/slack/web/api/mixins/conversations_spec.rb +41 -0
  304. data/spec/slack/web/api/mixins/groups_spec.rb +17 -7
  305. data/spec/slack/web/api/mixins/users_spec.rb +17 -8
  306. data/spec/slack/web/api/pagination/cursor_spec.rb +40 -10
  307. data/spec/slack/web/client_spec.rb +71 -18
  308. data/spec/slack/web/faraday/response/raise_error_spec.rb +41 -7
  309. data/spec/spec_helper.rb +2 -1
  310. data/spec/support/queue_with_timeout.rb +1 -0
  311. data/spec/support/real_time/concurrency/mock.rb +1 -0
  312. data/spec/support/real_time/connected_client.rb +9 -3
  313. data/spec/support/real_time/event.rb +1 -0
  314. data/spec/support/token.rb +1 -0
  315. data/spec/support/vcr.rb +1 -0
  316. metadata +156 -30
  317. data/lib/slack/web/api/patches/chat.1.text-attachments-required.patch +0 -13
  318. data/lib/slack/web/api/patches/chat.2.attachments-json.patch +0 -17
  319. data/lib/slack/web/api/patches/chat.3.update-attachments-support.patch +0 -21
  320. data/lib/slack/web/api/patches/chat.4.postEphemeral-attachments-support.patch +0 -17
  321. data/lib/slack/web/api/patches/chat.5.postEphemeral-text-or-attachments.patch +0 -13
  322. data/screenshots/register-bot.png +0 -0
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  require 'spec_helper'
@@ -9,4 +10,9 @@ RSpec.describe Slack::Web::Api::Endpoints::Dnd do
9
10
  expect { client.dnd_setSnooze }.to raise_error ArgumentError, /Required arguments :num_minutes missing/
10
11
  end
11
12
  end
13
+ context 'dnd_teamInfo' do
14
+ it 'requires users' do
15
+ expect { client.dnd_teamInfo }.to raise_error ArgumentError, /Required arguments :users missing/
16
+ end
17
+ end
12
18
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  require 'spec_helper'
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  require 'spec_helper'
@@ -0,0 +1,24 @@
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::FilesRemote do
7
+ let(:client) { Slack::Web::Client.new }
8
+ context 'files.remote_add' do
9
+ it 'requires external_id' do
10
+ expect { client.files_remote_add(external_url: 'http://example.com/my_cloud_service_file/abc123', title: 'Danger, High Voltage!') }.to raise_error ArgumentError, /Required arguments :external_id missing/
11
+ end
12
+ it 'requires external_url' do
13
+ expect { client.files_remote_add(external_id: '123456', title: 'Danger, High Voltage!') }.to raise_error ArgumentError, /Required arguments :external_url missing/
14
+ end
15
+ it 'requires title' do
16
+ expect { client.files_remote_add(external_id: '123456', external_url: 'http://example.com/my_cloud_service_file/abc123') }.to raise_error ArgumentError, /Required arguments :title missing/
17
+ end
18
+ end
19
+ context 'files.remote_share' do
20
+ it 'requires channels' do
21
+ expect { client.files_remote_share }.to raise_error ArgumentError, /Required arguments :channels missing/
22
+ end
23
+ end
24
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  require 'spec_helper'
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  require 'spec_helper'
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  require 'spec_helper'
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  require 'spec_helper'
@@ -1,20 +1,10 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  require 'spec_helper'
4
5
 
5
6
  RSpec.describe Slack::Web::Api::Endpoints::Oauth do
6
7
  let(:client) { Slack::Web::Client.new }
7
- context 'oauth_access' do
8
- it 'requires client_id' do
9
- expect { client.oauth_access(client_secret: '33fea0113f5b1', code: 'ccdaa72ad') }.to raise_error ArgumentError, /Required arguments :client_id missing/
10
- end
11
- it 'requires client_secret' do
12
- expect { client.oauth_access(client_id: '4b39e9-752c4', code: 'ccdaa72ad') }.to raise_error ArgumentError, /Required arguments :client_secret missing/
13
- end
14
- it 'requires code' do
15
- expect { client.oauth_access(client_id: '4b39e9-752c4', client_secret: '33fea0113f5b1') }.to raise_error ArgumentError, /Required arguments :code missing/
16
- end
17
- end
18
8
  context 'oauth_token' do
19
9
  it 'requires client_id' do
20
10
  expect { client.oauth_token(client_secret: '33fea0113f5b1', code: 'ccdaa72ad') }.to raise_error ArgumentError, /Required arguments :client_id missing/
@@ -0,0 +1,13 @@
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::OauthV2 do
7
+ let(:client) { Slack::Web::Client.new }
8
+ context 'oauth.v2_access' do
9
+ it 'requires code' do
10
+ expect { client.oauth_v2_access }.to raise_error ArgumentError, /Required arguments :code missing/
11
+ end
12
+ end
13
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  require 'spec_helper'
@@ -6,7 +7,10 @@ RSpec.describe Slack::Web::Api::Endpoints::Pins do
6
7
  let(:client) { Slack::Web::Client.new }
7
8
  context 'pins_add' do
8
9
  it 'requires channel' do
9
- expect { client.pins_add }.to raise_error ArgumentError, /Required arguments :channel missing/
10
+ expect { client.pins_add(timestamp: '1234567890.123456') }.to raise_error ArgumentError, /Required arguments :channel missing/
11
+ end
12
+ it 'requires timestamp' do
13
+ expect { client.pins_add(channel: 'C1234567890') }.to raise_error ArgumentError, /Required arguments :timestamp missing/
10
14
  end
11
15
  end
12
16
  context 'pins_list' do
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  require 'spec_helper'
@@ -5,8 +6,14 @@ require 'spec_helper'
5
6
  RSpec.describe Slack::Web::Api::Endpoints::Reactions do
6
7
  let(:client) { Slack::Web::Client.new }
7
8
  context 'reactions_add' do
9
+ it 'requires channel' do
10
+ expect { client.reactions_add(name: 'thumbsup', timestamp: '1234567890.123456') }.to raise_error ArgumentError, /Required arguments :channel missing/
11
+ end
8
12
  it 'requires name' do
9
- expect { client.reactions_add }.to raise_error ArgumentError, /Required arguments :name missing/
13
+ expect { client.reactions_add(channel: 'C1234567890', timestamp: '1234567890.123456') }.to raise_error ArgumentError, /Required arguments :name missing/
14
+ end
15
+ it 'requires timestamp' do
16
+ expect { client.reactions_add(channel: 'C1234567890', name: 'thumbsup') }.to raise_error ArgumentError, /Required arguments :timestamp missing/
10
17
  end
11
18
  end
12
19
  context 'reactions_remove' do
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  require 'spec_helper'
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  require 'spec_helper'
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  require 'spec_helper'
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  require 'spec_helper'
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  require 'spec_helper'
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  require 'spec_helper'
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  require 'spec_helper'
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  require 'spec_helper'
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  require 'spec_helper'
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  require 'spec_helper'
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  require 'spec_helper'
@@ -0,0 +1,29 @@
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::Views do
7
+ let(:client) { Slack::Web::Client.new }
8
+ context 'views_open' do
9
+ it 'requires trigger_id' do
10
+ expect { client.views_open(view: ' ') }.to raise_error ArgumentError, /Required arguments :trigger_id missing/
11
+ end
12
+ it 'requires view' do
13
+ expect { client.views_open(trigger_id: '12345.98765.abcd2358fdea') }.to raise_error ArgumentError, /Required arguments :view missing/
14
+ end
15
+ end
16
+ context 'views_push' do
17
+ it 'requires trigger_id' do
18
+ expect { client.views_push(view: ' ') }.to raise_error ArgumentError, /Required arguments :trigger_id missing/
19
+ end
20
+ it 'requires view' do
21
+ expect { client.views_push(trigger_id: '12345.98765.abcd2358fdea') }.to raise_error ArgumentError, /Required arguments :view missing/
22
+ end
23
+ end
24
+ context 'views_update' do
25
+ it 'requires view' do
26
+ expect { client.views_update }.to raise_error ArgumentError, /Required arguments :view missing/
27
+ end
28
+ end
29
+ end
@@ -1,13 +1,15 @@
1
+ # frozen_string_literal: true
1
2
  require 'spec_helper'
2
3
 
3
4
  RSpec.describe Slack::Web::Api::Error do
4
5
  let(:client) { Slack::Web::Client.new }
6
+
5
7
  it 'provides access to the response object', vcr: { cassette_name: 'web/auth_test_error' } do
6
8
  begin
7
9
  client.auth_test
8
10
  raise 'Expected to receive Slack::Web::Api::Error.'
9
- rescue Slack::Web::Api::Error => e
10
- expect(e.response).to_not be_nil
11
+ rescue described_class => e
12
+ expect(e.response).not_to be_nil
11
13
  expect(e.response.status).to eq 200
12
14
  end
13
15
  end
@@ -1,13 +1,16 @@
1
+ # frozen_string_literal: true
1
2
  require 'spec_helper'
2
3
 
3
4
  RSpec.describe Slack::Web::Client do
4
- let(:client) { Slack::Web::Client.new }
5
- it 'raises a Faraday::ClientError when Slack is unavailable', vcr: { cassette_name: 'web/503_error' } do
5
+ let(:client) { described_class.new }
6
+
7
+ it 'raises a Faraday::ClientError when Slack is unavailable',
8
+ vcr: { cassette_name: 'web/503_error' } do
6
9
  begin
7
10
  client.auth_test
8
- raise 'Expected to receive Faraday::ClientError.'
9
- rescue Faraday::ClientError => e
10
- expect(e.response).to_not be_nil
11
+ raise 'Expected to receive Faraday::ServerError.'
12
+ rescue Faraday::ServerError => e
13
+ expect(e.response).not_to be_nil
11
14
  expect(e.response[:status]).to eq 503
12
15
  end
13
16
  end
@@ -1,14 +1,38 @@
1
+ # frozen_string_literal: true
1
2
  require 'spec_helper'
2
3
 
3
4
  RSpec.describe Slack::Web::Api::Errors::SlackError do
4
5
  let(:client) { Slack::Web::Client.new }
6
+
5
7
  it 'provides access to the response object', vcr: { cassette_name: 'web/auth_test_error' } do
6
8
  begin
7
9
  client.auth_test
8
10
  raise 'Expected to receive Slack::Web::Api::Errors::SlackError.'
9
- rescue Slack::Web::Api::Errors::SlackError => e
10
- expect(e.response).to_not be_nil
11
+ rescue described_class => e
12
+ expect(e.response).not_to be_nil
13
+ expect(e.response.status).to eq 200
14
+ expect(e.message).to eql 'not_authed'
15
+ expect(e.error).to eql 'not_authed'
16
+ expect(e.response_metadata).to be_nil
17
+ end
18
+ end
19
+
20
+ it 'provides access to any response_metadata', vcr: { cassette_name: 'web/views_open_error' } do
21
+ begin
22
+ client.views_open(trigger_id: 'trigger_id', view: {})
23
+ raise 'Expected to receive Slack::Web::Api::Errors::SlackError.'
24
+ rescue described_class => e
25
+ expect(e.response).not_to be_nil
11
26
  expect(e.response.status).to eq 200
27
+ expect(e.message).to eql 'invalid_arguments'
28
+ expect(e.error).to eql 'invalid_arguments'
29
+ expect(e.response_metadata).to eq(
30
+ 'messages' => [
31
+ "[ERROR] missing required field: title [json-pointer:\/view]",
32
+ "[ERROR] missing required field: blocks [json-pointer:\/view]",
33
+ "[ERROR] missing required field: type [json-pointer:\/view]"
34
+ ]
35
+ )
12
36
  end
13
37
  end
14
38
  end
@@ -1,16 +1,19 @@
1
+ # frozen_string_literal: true
1
2
  require 'spec_helper'
2
3
 
3
4
  RSpec.describe Slack::Web::Api::Mixins::Channels do
5
+ subject(:channels) do
6
+ klass.new
7
+ end
8
+
4
9
  let(:klass) do
5
10
  Class.new do
6
11
  include Slack::Web::Api::Mixins::Channels
7
12
  end
8
13
  end
9
- subject do
10
- klass.new
11
- end
14
+
12
15
  before do
13
- allow(subject).to receive(:channels_list).and_return(
16
+ allow(channels).to receive(:channels_list).and_return(
14
17
  Slack::Messages::Message.new(
15
18
  'channels' => [{
16
19
  'id' => 'CDEADBEEF',
@@ -19,15 +22,22 @@ RSpec.describe Slack::Web::Api::Mixins::Channels do
19
22
  )
20
23
  )
21
24
  end
25
+
22
26
  context '#channels_id' do
23
27
  it 'leaves channels specified by ID alone' do
24
- expect(subject.channels_id(channel: 'C123456')).to eq('ok' => true, 'channel' => { 'id' => 'C123456' })
28
+ expect(channels.channels_id(channel: 'C123456')).to(
29
+ eq('ok' => true, 'channel' => { 'id' => 'C123456' })
30
+ )
25
31
  end
26
32
  it 'translates a channel that starts with a #' do
27
- expect(subject.channels_id(channel: '#general')).to eq('ok' => true, 'channel' => { 'id' => 'CDEADBEEF' })
33
+ expect(channels.channels_id(channel: '#general')).to(
34
+ eq('ok' => true, 'channel' => { 'id' => 'CDEADBEEF' })
35
+ )
28
36
  end
29
37
  it 'fails with an exception' do
30
- expect { subject.channels_id(channel: '#invalid') }.to raise_error Slack::Web::Api::Errors::SlackError, 'channel_not_found'
38
+ expect { channels.channels_id(channel: '#invalid') }.to(
39
+ raise_error(Slack::Web::Api::Errors::SlackError, 'channel_not_found')
40
+ )
31
41
  end
32
42
  end
33
43
  end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+ require 'spec_helper'
3
+
4
+ RSpec.describe Slack::Web::Api::Mixins::Conversations do
5
+ subject(:conversations) do
6
+ klass.new
7
+ end
8
+
9
+ let(:klass) do
10
+ Class.new do
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
+ end
22
+ end
23
+
24
+ describe '#conversations_id' do
25
+ it 'leaves channels specified by ID alone' do
26
+ expect(conversations.conversations_id(channel: 'C123456')).to(
27
+ eq('ok' => true, 'channel' => { 'id' => 'C123456' })
28
+ )
29
+ end
30
+ it 'translates a channel that starts with a #' do
31
+ expect(conversations.conversations_id(channel: '#general')).to(
32
+ eq('ok' => true, 'channel' => { 'id' => 'CDEADBEEF' })
33
+ )
34
+ end
35
+ it 'fails with an exception' do
36
+ expect { conversations.conversations_id(channel: '#invalid') }.to(
37
+ raise_error(Slack::Web::Api::Errors::SlackError, 'channel_not_found')
38
+ )
39
+ end
40
+ end
41
+ end
@@ -1,16 +1,19 @@
1
+ # frozen_string_literal: true
1
2
  require 'spec_helper'
2
3
 
3
4
  RSpec.describe Slack::Web::Api::Mixins::Groups do
5
+ subject(:groups) do
6
+ klass.new
7
+ end
8
+
4
9
  let(:klass) do
5
10
  Class.new do
6
11
  include Slack::Web::Api::Mixins::Groups
7
12
  end
8
13
  end
9
- subject do
10
- klass.new
11
- end
14
+
12
15
  before do
13
- allow(subject).to receive(:groups_list).and_return(
16
+ allow(groups).to receive(:groups_list).and_return(
14
17
  Slack::Messages::Message.new(
15
18
  'groups' => [{
16
19
  'id' => 'CDEADBEEF',
@@ -19,15 +22,22 @@ RSpec.describe Slack::Web::Api::Mixins::Groups do
19
22
  )
20
23
  )
21
24
  end
25
+
22
26
  context '#groups_id' do
23
27
  it 'leaves groups specified by ID alone' do
24
- expect(subject.groups_id(channel: 'C123456')).to eq('ok' => true, 'group' => { 'id' => 'C123456' })
28
+ expect(groups.groups_id(channel: 'C123456')).to(
29
+ eq('ok' => true, 'group' => { 'id' => 'C123456' })
30
+ )
25
31
  end
26
32
  it 'translates a channel that starts with a #' do
27
- expect(subject.groups_id(channel: '#general')).to eq('ok' => true, 'group' => { 'id' => 'CDEADBEEF' })
33
+ expect(groups.groups_id(channel: '#general')).to(
34
+ eq('ok' => true, 'group' => { 'id' => 'CDEADBEEF' })
35
+ )
28
36
  end
29
37
  it 'fails with an exception' do
30
- expect { subject.groups_id(channel: '#invalid') }.to raise_error Slack::Web::Api::Errors::SlackError, 'channel_not_found'
38
+ expect { groups.groups_id(channel: '#invalid') }.to(
39
+ raise_error(Slack::Web::Api::Errors::SlackError, 'channel_not_found')
40
+ )
31
41
  end
32
42
  end
33
43
  end