slack-ruby-client 0.11.0 → 2.7.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 (403) hide show
  1. checksums.yaml +5 -5
  2. data/.coveralls.yml +2 -0
  3. data/.github/FUNDING.yml +2 -0
  4. data/.github/dependabot.yml +6 -0
  5. data/.github/workflows/integration_test.yml +45 -0
  6. data/.github/workflows/lint.yml +14 -0
  7. data/.github/workflows/pr_lint.yml +21 -0
  8. data/.github/workflows/test.yml +56 -0
  9. data/.github/workflows/update_api.yml +81 -0
  10. data/.gitignore +7 -3
  11. data/.rubocop.yml +40 -2
  12. data/.rubocop_todo.yml +209 -55
  13. data/.ruby-version +1 -0
  14. data/CHANGELOG.md +257 -30
  15. data/CONTRIBUTING.md +44 -29
  16. data/Dangerfile +2 -0
  17. data/Gemfile +28 -6
  18. data/Gemfile.danger +6 -0
  19. data/LICENSE.md +1 -1
  20. data/README.md +473 -134
  21. data/RELEASING.md +2 -2
  22. data/Rakefile +2 -1
  23. data/SECURITY.md +9 -0
  24. data/UPGRADING.md +117 -3
  25. data/bin/commands/admin_analytics.rb +22 -0
  26. data/bin/commands/admin_apps.rb +57 -0
  27. data/bin/commands/admin_apps_activities.rb +32 -0
  28. data/bin/commands/admin_apps_approved.rb +24 -0
  29. data/bin/commands/admin_apps_config.rb +31 -0
  30. data/bin/commands/admin_apps_requests.rb +35 -0
  31. data/bin/commands/admin_apps_restricted.rb +24 -0
  32. data/bin/commands/admin_audit_anomaly_allow.rb +29 -0
  33. data/bin/commands/admin_auth_policy.rb +45 -0
  34. data/bin/commands/admin_barriers.rb +53 -0
  35. data/bin/commands/admin_conversations.rb +260 -0
  36. data/bin/commands/admin_conversations_ekm.rb +23 -0
  37. data/bin/commands/admin_conversations_restrictAccess.rb +43 -0
  38. data/bin/commands/admin_emoji.rb +60 -0
  39. data/bin/commands/admin_functions.rb +23 -0
  40. data/bin/commands/admin_functions_permissions.rb +31 -0
  41. data/bin/commands/admin_inviteRequests.rb +42 -0
  42. data/bin/commands/admin_inviteRequests_approved.rb +22 -0
  43. data/bin/commands/admin_inviteRequests_denied.rb +22 -0
  44. data/bin/commands/admin_roles.rb +46 -0
  45. data/bin/commands/admin_teams.rb +33 -0
  46. data/bin/commands/admin_teams_admins.rb +22 -0
  47. data/bin/commands/admin_teams_owners.rb +22 -0
  48. data/bin/commands/admin_teams_settings.rb +70 -0
  49. data/bin/commands/admin_usergroups.rb +54 -0
  50. data/bin/commands/admin_users.rb +106 -0
  51. data/bin/commands/admin_users_session.rb +84 -0
  52. data/bin/commands/admin_users_unsupportedVersions.rb +21 -0
  53. data/bin/commands/admin_workflows.rb +42 -0
  54. data/bin/commands/admin_workflows_collaborators.rb +31 -0
  55. data/bin/commands/admin_workflows_permissions.rb +21 -0
  56. data/bin/commands/admin_workflows_triggers_types_permissions.rb +31 -0
  57. data/bin/commands/api.rb +15 -9
  58. data/bin/commands/apps.rb +21 -0
  59. data/bin/commands/apps_activities.rb +32 -0
  60. data/bin/commands/apps_auth_external.rb +32 -0
  61. data/bin/commands/apps_connections.rb +19 -0
  62. data/bin/commands/apps_datastore.rb +116 -0
  63. data/bin/commands/apps_event_authorizations.rb +22 -0
  64. data/bin/commands/apps_manifest.rb +58 -0
  65. data/bin/commands/assistant_search.rb +27 -0
  66. data/bin/commands/assistant_threads.rb +45 -0
  67. data/bin/commands/auth.rb +22 -15
  68. data/bin/commands/auth_teams.rb +22 -0
  69. data/bin/commands/bookmarks.rb +60 -0
  70. data/bin/commands/bots.rb +16 -8
  71. data/bin/commands/calls.rb +58 -0
  72. data/bin/commands/calls_participants.rb +31 -0
  73. data/bin/commands/canvases.rb +41 -0
  74. data/bin/commands/canvases_access.rb +34 -0
  75. data/bin/commands/canvases_sections.rb +21 -0
  76. data/bin/commands/chat.rb +158 -99
  77. data/bin/commands/chat_scheduledMessages.rb +25 -0
  78. data/bin/commands/conversations.rb +241 -157
  79. data/bin/commands/conversations_canvases.rb +22 -0
  80. data/bin/commands/conversations_externalInvitePermissions.rb +22 -0
  81. data/bin/commands/conversations_requestSharedInvite.rb +48 -0
  82. data/bin/commands/dialog.rb +16 -9
  83. data/bin/commands/dnd.rb +47 -38
  84. data/bin/commands/emoji.rb +15 -7
  85. data/bin/commands/files.rb +113 -87
  86. data/bin/commands/files_comments.rb +16 -30
  87. data/bin/commands/files_remote.rb +84 -0
  88. data/bin/commands/functions.rb +31 -0
  89. data/bin/commands/functions_distributions_permissions.rb +61 -0
  90. data/bin/commands/functions_workflows_steps.rb +23 -0
  91. data/bin/commands/functions_workflows_steps_responses.rb +23 -0
  92. data/bin/commands/migration.rb +17 -9
  93. data/bin/commands/oauth.rb +19 -24
  94. data/bin/commands/oauth_v2.rb +35 -0
  95. data/bin/commands/openid_connect.rb +33 -0
  96. data/bin/commands/pins.rb +33 -30
  97. data/bin/commands/reactions.rb +53 -45
  98. data/bin/commands/reminders.rb +54 -41
  99. data/bin/commands/rtm.rb +16 -22
  100. data/bin/commands/search.rb +44 -33
  101. data/bin/commands/stars.rb +39 -29
  102. data/bin/commands/team.rb +50 -34
  103. data/bin/commands/team_billing.rb +19 -0
  104. data/bin/commands/team_externalTeams.rb +35 -0
  105. data/bin/commands/team_preferences.rb +19 -0
  106. data/bin/commands/team_profile.rb +15 -8
  107. data/bin/commands/tooling_tokens.rb +20 -0
  108. data/bin/commands/usergroups.rb +69 -53
  109. data/bin/commands/usergroups_users.rb +30 -19
  110. data/bin/commands/users.rb +114 -84
  111. data/bin/commands/users_admin.rb +29 -22
  112. data/bin/commands/users_discoverableContacts.rb +20 -0
  113. data/bin/commands/users_prefs.rb +14 -7
  114. data/bin/commands/users_profile.rb +27 -20
  115. data/bin/commands/views.rb +56 -0
  116. data/bin/commands/workflows.rb +44 -0
  117. data/bin/commands/workflows_triggers_permissions.rb +60 -0
  118. data/bin/slack +50 -46
  119. data/examples/files_upload_v2/.env.example +1 -0
  120. data/examples/{hi_real_time → files_upload_v2}/Gemfile +2 -2
  121. data/examples/files_upload_v2/README.md +13 -0
  122. data/examples/files_upload_v2/files_upload_v2.rb +45 -0
  123. data/examples/hi_real_time_and_web/Gemfile +1 -0
  124. data/examples/hi_real_time_and_web/hi.rb +7 -3
  125. data/examples/{hi_real_time_async_eventmachine → hi_real_time_async_async}/Gemfile +2 -1
  126. data/examples/{hi_real_time_async_eventmachine → hi_real_time_async_async}/hi.rb +12 -7
  127. data/examples/hi_web/Gemfile +1 -0
  128. data/examples/hi_web/hi.rb +1 -0
  129. data/examples/new_ticket/Gemfile +1 -0
  130. data/examples/new_ticket/new_ticket.rb +1 -0
  131. data/examples/oauth_v2/.env.example +4 -0
  132. data/examples/oauth_v2/Gemfile +7 -0
  133. data/examples/oauth_v2/README.md +33 -0
  134. data/examples/oauth_v2/oauth_v2.rb +60 -0
  135. data/lib/slack/config.rb +2 -2
  136. data/lib/slack/events/config.rb +32 -0
  137. data/lib/slack/events/request.rb +76 -0
  138. data/lib/slack/logger.rb +6 -5
  139. data/lib/slack/messages/formatting.rb +66 -1
  140. data/lib/slack/messages/message.rb +1 -4
  141. data/lib/slack/real_time/api/message.rb +6 -3
  142. data/lib/slack/real_time/api/message_id.rb +1 -0
  143. data/lib/slack/real_time/api/ping.rb +5 -2
  144. data/lib/slack/real_time/api/templates/event_handler.erb +5 -1
  145. data/lib/slack/real_time/api/typing.rb +5 -2
  146. data/lib/slack/real_time/client.rb +117 -54
  147. data/lib/slack/real_time/concurrency/async.rb +142 -0
  148. data/lib/slack/real_time/concurrency.rb +2 -2
  149. data/lib/slack/real_time/config.rb +12 -13
  150. data/lib/slack/real_time/models/base.rb +1 -4
  151. data/lib/slack/real_time/models/bot.rb +1 -0
  152. data/lib/slack/real_time/models/channel.rb +5 -0
  153. data/lib/slack/real_time/models/im.rb +1 -0
  154. data/lib/slack/real_time/models/{group.rb → mpim.rb} +2 -1
  155. data/lib/slack/real_time/models/team.rb +1 -0
  156. data/lib/slack/real_time/models/user.rb +1 -0
  157. data/lib/slack/real_time/models.rb +3 -1
  158. data/lib/slack/real_time/socket.rb +49 -17
  159. data/lib/slack/real_time/stores/base.rb +28 -14
  160. data/lib/slack/real_time/stores/starter.rb +325 -287
  161. data/lib/slack/real_time/stores/store.rb +271 -186
  162. data/lib/slack/real_time/stores.rb +2 -7
  163. data/lib/slack/utils/security.rb +44 -0
  164. data/lib/slack/version.rb +2 -1
  165. data/lib/slack/web/api/endpoints/admin_analytics.rb +28 -0
  166. data/lib/slack/web/api/endpoints/admin_apps.rb +78 -0
  167. data/lib/slack/web/api/endpoints/admin_apps_activities.rb +53 -0
  168. data/lib/slack/web/api/endpoints/admin_apps_approved.rb +37 -0
  169. data/lib/slack/web/api/endpoints/admin_apps_config.rb +40 -0
  170. data/lib/slack/web/api/endpoints/admin_apps_requests.rb +53 -0
  171. data/lib/slack/web/api/endpoints/admin_apps_restricted.rb +37 -0
  172. data/lib/slack/web/api/endpoints/admin_audit_anomaly_allow.rb +34 -0
  173. data/lib/slack/web/api/endpoints/admin_auth_policy.rb +72 -0
  174. data/lib/slack/web/api/endpoints/admin_barriers.rb +82 -0
  175. data/lib/slack/web/api/endpoints/admin_conversations.rb +397 -0
  176. data/lib/slack/web/api/endpoints/admin_conversations_ekm.rb +35 -0
  177. data/lib/slack/web/api/endpoints/admin_conversations_restrictAccess.rb +61 -0
  178. data/lib/slack/web/api/endpoints/admin_emoji.rb +88 -0
  179. data/lib/slack/web/api/endpoints/admin_functions.rb +36 -0
  180. data/lib/slack/web/api/endpoints/admin_functions_permissions.rb +41 -0
  181. data/lib/slack/web/api/endpoints/admin_inviteRequests.rb +61 -0
  182. data/lib/slack/web/api/endpoints/admin_inviteRequests_approved.rb +33 -0
  183. data/lib/slack/web/api/endpoints/admin_inviteRequests_denied.rb +33 -0
  184. data/lib/slack/web/api/endpoints/admin_roles.rb +73 -0
  185. data/lib/slack/web/api/endpoints/admin_teams.rb +50 -0
  186. data/lib/slack/web/api/endpoints/admin_teams_admins.rb +34 -0
  187. data/lib/slack/web/api/endpoints/admin_teams_owners.rb +34 -0
  188. data/lib/slack/web/api/endpoints/admin_teams_settings.rb +99 -0
  189. data/lib/slack/web/api/endpoints/admin_usergroups.rb +77 -0
  190. data/lib/slack/web/api/endpoints/admin_users.rb +167 -0
  191. data/lib/slack/web/api/endpoints/admin_users_session.rb +121 -0
  192. data/lib/slack/web/api/endpoints/admin_users_unsupportedVersions.rb +25 -0
  193. data/lib/slack/web/api/endpoints/admin_workflows.rb +67 -0
  194. data/lib/slack/web/api/endpoints/admin_workflows_collaborators.rb +42 -0
  195. data/lib/slack/web/api/endpoints/admin_workflows_permissions.rb +26 -0
  196. data/lib/slack/web/api/endpoints/admin_workflows_triggers_types_permissions.rb +41 -0
  197. data/lib/slack/web/api/endpoints/api.rb +2 -3
  198. data/lib/slack/web/api/endpoints/apps.rb +27 -0
  199. data/lib/slack/web/api/endpoints/apps_activities.rb +54 -0
  200. data/lib/slack/web/api/endpoints/apps_auth_external.rb +41 -0
  201. data/lib/slack/web/api/endpoints/apps_connections.rb +21 -0
  202. data/lib/slack/web/api/endpoints/apps_datastore.rb +181 -0
  203. data/lib/slack/web/api/endpoints/apps_event_authorizations.rb +34 -0
  204. data/lib/slack/web/api/endpoints/apps_manifest.rb +79 -0
  205. data/lib/slack/web/api/endpoints/assistant_search.rb +44 -0
  206. data/lib/slack/web/api/endpoints/assistant_threads.rb +68 -0
  207. data/lib/slack/web/api/endpoints/auth.rb +2 -1
  208. data/lib/slack/web/api/endpoints/auth_teams.rb +33 -0
  209. data/lib/slack/web/api/endpoints/bookmarks.rb +90 -0
  210. data/lib/slack/web/api/endpoints/bots.rb +4 -1
  211. data/lib/slack/web/api/endpoints/calls.rb +83 -0
  212. data/lib/slack/web/api/endpoints/calls_participants.rb +42 -0
  213. data/lib/slack/web/api/endpoints/canvases.rb +54 -0
  214. data/lib/slack/web/api/endpoints/canvases_access.rb +47 -0
  215. data/lib/slack/web/api/endpoints/canvases_sections.rb +27 -0
  216. data/lib/slack/web/api/endpoints/chat.rb +172 -87
  217. data/lib/slack/web/api/endpoints/chat_scheduledMessages.rb +40 -0
  218. data/lib/slack/web/api/endpoints/conversations.rb +190 -64
  219. data/lib/slack/web/api/endpoints/conversations_canvases.rb +28 -0
  220. data/lib/slack/web/api/endpoints/conversations_externalInvitePermissions.rb +31 -0
  221. data/lib/slack/web/api/endpoints/conversations_requestSharedInvite.rb +73 -0
  222. data/lib/slack/web/api/endpoints/dialog.rb +6 -10
  223. data/lib/slack/web/api/endpoints/dnd.rb +11 -5
  224. data/lib/slack/web/api/endpoints/emoji.rb +3 -0
  225. data/lib/slack/web/api/endpoints/files.rb +85 -36
  226. data/lib/slack/web/api/endpoints/files_comments.rb +4 -36
  227. data/lib/slack/web/api/endpoints/files_remote.rb +127 -0
  228. data/lib/slack/web/api/endpoints/functions.rb +43 -0
  229. data/lib/slack/web/api/endpoints/functions_distributions_permissions.rb +84 -0
  230. data/lib/slack/web/api/endpoints/functions_workflows_steps.rb +30 -0
  231. data/lib/slack/web/api/endpoints/functions_workflows_steps_responses.rb +30 -0
  232. data/lib/slack/web/api/endpoints/migration.rb +6 -3
  233. data/lib/slack/web/api/endpoints/oauth.rb +10 -32
  234. data/lib/slack/web/api/endpoints/oauth_v2.rb +48 -0
  235. data/lib/slack/web/api/endpoints/openid_connect.rb +42 -0
  236. data/lib/slack/web/api/endpoints/pins.rb +11 -18
  237. data/lib/slack/web/api/endpoints/reactions.rb +31 -20
  238. data/lib/slack/web/api/endpoints/reminders.rb +25 -12
  239. data/lib/slack/web/api/endpoints/rtm.rb +4 -22
  240. data/lib/slack/web/api/endpoints/search.rb +33 -18
  241. data/lib/slack/web/api/endpoints/stars.rb +23 -10
  242. data/lib/slack/web/api/endpoints/team.rb +38 -7
  243. data/lib/slack/web/api/endpoints/team_billing.rb +21 -0
  244. data/lib/slack/web/api/endpoints/team_externalTeams.rb +53 -0
  245. data/lib/slack/web/api/endpoints/team_preferences.rb +21 -0
  246. data/lib/slack/web/api/endpoints/team_profile.rb +2 -1
  247. data/lib/slack/web/api/endpoints/tooling_tokens.rb +24 -0
  248. data/lib/slack/web/api/endpoints/usergroups.rb +44 -25
  249. data/lib/slack/web/api/endpoints/usergroups_users.rb +23 -14
  250. data/lib/slack/web/api/endpoints/users.rb +57 -18
  251. data/lib/slack/web/api/endpoints/users_admin.rb +5 -2
  252. data/lib/slack/web/api/endpoints/users_discoverableContacts.rb +24 -0
  253. data/lib/slack/web/api/endpoints/users_prefs.rb +2 -0
  254. data/lib/slack/web/api/endpoints/users_profile.rb +11 -9
  255. data/lib/slack/web/api/endpoints/views.rb +86 -0
  256. data/lib/slack/web/api/endpoints/workflows.rb +63 -0
  257. data/lib/slack/web/api/endpoints/workflows_triggers_permissions.rb +87 -0
  258. data/lib/slack/web/api/endpoints.rb +136 -12
  259. data/lib/slack/web/api/error.rb +1 -0
  260. data/lib/slack/web/api/errors/server_error.rb +37 -0
  261. data/lib/slack/web/api/errors/slack_error.rb +14 -1
  262. data/lib/slack/web/api/errors/too_many_requests_error.rb +2 -4
  263. data/lib/slack/web/api/errors.rb +1396 -0
  264. data/lib/slack/web/api/helpers/files.rb +97 -0
  265. data/lib/slack/web/api/helpers.rb +13 -0
  266. data/lib/slack/web/api/mixins/conversations.id.rb +47 -0
  267. data/lib/slack/web/api/mixins/ids.id.rb +4 -3
  268. data/lib/slack/web/api/mixins/users.id.rb +18 -4
  269. data/lib/slack/web/api/mixins/users.search.rb +3 -1
  270. data/lib/slack/web/api/mixins.rb +2 -2
  271. data/lib/slack/web/api/options.rb +26 -0
  272. data/lib/slack/web/api/patches/.gitkeep +0 -0
  273. data/lib/slack/web/api/templates/command.erb +19 -12
  274. data/lib/slack/web/api/templates/endpoints.erb +2 -2
  275. data/lib/slack/web/api/templates/errors.erb +20 -0
  276. data/lib/slack/web/api/templates/method.erb +23 -3
  277. data/lib/slack/web/api/templates/method_spec.erb +40 -3
  278. data/lib/slack/web/client.rb +4 -1
  279. data/lib/slack/web/config.rb +9 -2
  280. data/lib/slack/web/faraday/connection.rb +11 -20
  281. data/lib/slack/web/faraday/options.rb +24 -0
  282. data/lib/slack/web/faraday/request.rb +6 -1
  283. data/lib/slack/web/faraday/response/raise_error.rb +14 -8
  284. data/lib/slack/web/faraday/response/wrap_error.rb +24 -0
  285. data/lib/slack/web/pagination/cursor.rb +7 -7
  286. data/lib/slack-ruby-client.rb +18 -6
  287. data/lib/slack.rb +1 -0
  288. data/lib/slack_ruby_client.rb +1 -0
  289. data/lib/tasks/git.rake +1 -0
  290. data/lib/tasks/real_time.rake +51 -21
  291. data/lib/tasks/update.rake +1 -0
  292. data/lib/tasks/web.rake +43 -17
  293. data/slack-ruby-client.gemspec +10 -14
  294. metadata +191 -307
  295. data/.travis.yml +0 -30
  296. data/bin/commands/apps_permissions.rb +0 -22
  297. data/bin/commands/channels.rb +0 -175
  298. data/bin/commands/groups.rb +0 -172
  299. data/bin/commands/im.rb +0 -67
  300. data/bin/commands/mpim.rb +0 -63
  301. data/bin/commands.rb +0 -33
  302. data/examples/hi_real_time/hi.gif +0 -0
  303. data/examples/hi_real_time/hi.rb +0 -37
  304. data/examples/hi_real_time_async_celluloid/Gemfile +0 -6
  305. data/examples/hi_real_time_async_celluloid/hi.rb +0 -36
  306. data/examples/hi_real_time_async_eventmachine/Procfile +0 -2
  307. data/lib/slack/real_time/concurrency/celluloid.rb +0 -117
  308. data/lib/slack/real_time/concurrency/eventmachine.rb +0 -60
  309. data/lib/slack/web/api/endpoints/apps_permissions.rb +0 -35
  310. data/lib/slack/web/api/endpoints/channels.rb +0 -265
  311. data/lib/slack/web/api/endpoints/groups.rb +0 -255
  312. data/lib/slack/web/api/endpoints/im.rb +0 -113
  313. data/lib/slack/web/api/endpoints/mpim.rb +0 -98
  314. data/lib/slack/web/api/endpoints/presence.rb +0 -23
  315. data/lib/slack/web/api/mixins/channels.id.json +0 -20
  316. data/lib/slack/web/api/mixins/channels.id.rb +0 -26
  317. data/lib/slack/web/api/mixins/groups.id.json +0 -20
  318. data/lib/slack/web/api/mixins/groups.id.rb +0 -26
  319. data/lib/slack/web/api/patches/chat.1.text-attachments-required.patch +0 -13
  320. data/lib/slack/web/api/patches/chat.2.attachments-json.patch +0 -17
  321. data/lib/slack/web/api/patches/chat.3.update-attachments-support.patch +0 -21
  322. data/lib/slack/web/api/patches/chat.4.postEphemeral-attachments-support.patch +0 -17
  323. data/lib/slack/web/api/patches/dialog.1.open-json-support.patch +0 -17
  324. data/lib/slack/web/api/templates/commands.erb +0 -5
  325. data/screenshots/register-bot.png +0 -0
  326. data/spec/fixtures/slack/web/429_error.yml +0 -85
  327. data/spec/fixtures/slack/web/auth_test_error.yml +0 -48
  328. data/spec/fixtures/slack/web/auth_test_success.yml +0 -57
  329. data/spec/fixtures/slack/web/channels_info.yml +0 -46
  330. data/spec/fixtures/slack/web/groups_info.yml +0 -43
  331. data/spec/fixtures/slack/web/paginated_users_list.yml +0 -181
  332. data/spec/fixtures/slack/web/rtm_connect.yml +0 -70
  333. data/spec/fixtures/slack/web/rtm_start.yml +0 -104
  334. data/spec/fixtures/slack/web/users_info.yml +0 -130
  335. data/spec/fixtures/slack/web/users_list.yml +0 -72
  336. data/spec/integration/integration_spec.rb +0 -139
  337. data/spec/slack/config_spec.rb +0 -14
  338. data/spec/slack/messages/formatting_spec.rb +0 -43
  339. data/spec/slack/real_time/api/message_spec.rb +0 -15
  340. data/spec/slack/real_time/api/ping_spec.rb +0 -15
  341. data/spec/slack/real_time/api/typing_spec.rb +0 -15
  342. data/spec/slack/real_time/client_spec.rb +0 -425
  343. data/spec/slack/real_time/concurrency/celluloid_spec.rb +0 -62
  344. data/spec/slack/real_time/concurrency/eventmachine_spec.rb +0 -47
  345. data/spec/slack/real_time/concurrency/it_behaves_like_a_realtime_socket.rb +0 -19
  346. data/spec/slack/real_time/event_handlers/bot_spec.rb +0 -44
  347. data/spec/slack/real_time/event_handlers/channel_spec.rb +0 -116
  348. data/spec/slack/real_time/event_handlers/event_handlers_spec.rb +0 -15
  349. data/spec/slack/real_time/event_handlers/group_spec.rb +0 -90
  350. data/spec/slack/real_time/event_handlers/im_spec.rb +0 -47
  351. data/spec/slack/real_time/event_handlers/team_spec.rb +0 -62
  352. data/spec/slack/real_time/event_handlers/user_spec.rb +0 -63
  353. data/spec/slack/real_time/rtm_connect_spec.rb +0 -13
  354. data/spec/slack/real_time/rtm_start_spec.rb +0 -13
  355. data/spec/slack/real_time/store_spec.rb +0 -11
  356. data/spec/slack/slack_spec.rb +0 -58
  357. data/spec/slack/version_spec.rb +0 -7
  358. data/spec/slack/web/api/endpoints/api_spec.rb +0 -7
  359. data/spec/slack/web/api/endpoints/apps_permissions_spec.rb +0 -15
  360. data/spec/slack/web/api/endpoints/bots_spec.rb +0 -7
  361. data/spec/slack/web/api/endpoints/conversations_spec.rb +0 -100
  362. data/spec/slack/web/api/endpoints/custom_specs/auth_spec.rb +0 -25
  363. data/spec/slack/web/api/endpoints/custom_specs/channels_spec.rb +0 -11
  364. data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +0 -105
  365. data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +0 -28
  366. data/spec/slack/web/api/endpoints/custom_specs/groups_spec.rb +0 -11
  367. data/spec/slack/web/api/endpoints/custom_specs/users_spec.rb +0 -33
  368. data/spec/slack/web/api/endpoints/dnd_spec.rb +0 -12
  369. data/spec/slack/web/api/endpoints/emoji_spec.rb +0 -7
  370. data/spec/slack/web/api/endpoints/files_comments_spec.rb +0 -34
  371. data/spec/slack/web/api/endpoints/files_spec.rb +0 -43
  372. data/spec/slack/web/api/endpoints/im_spec.rb +0 -38
  373. data/spec/slack/web/api/endpoints/migration_spec.rb +0 -12
  374. data/spec/slack/web/api/endpoints/mpim_spec.rb +0 -38
  375. data/spec/slack/web/api/endpoints/oauth_spec.rb +0 -29
  376. data/spec/slack/web/api/endpoints/pins_spec.rb +0 -22
  377. data/spec/slack/web/api/endpoints/reactions_spec.rb +0 -17
  378. data/spec/slack/web/api/endpoints/reminders_spec.rb +0 -30
  379. data/spec/slack/web/api/endpoints/rtm_spec.rb +0 -7
  380. data/spec/slack/web/api/endpoints/search_spec.rb +0 -22
  381. data/spec/slack/web/api/endpoints/stars_spec.rb +0 -7
  382. data/spec/slack/web/api/endpoints/team_profile_spec.rb +0 -7
  383. data/spec/slack/web/api/endpoints/team_spec.rb +0 -7
  384. data/spec/slack/web/api/endpoints/usergroups_spec.rb +0 -27
  385. data/spec/slack/web/api/endpoints/usergroups_users_spec.rb +0 -20
  386. data/spec/slack/web/api/endpoints/users_admin_spec.rb +0 -17
  387. data/spec/slack/web/api/endpoints/users_prefs_spec.rb +0 -7
  388. data/spec/slack/web/api/endpoints/users_profile_spec.rb +0 -7
  389. data/spec/slack/web/api/error_spec.rb +0 -14
  390. data/spec/slack/web/api/errors/slack_error_spec.rb +0 -14
  391. data/spec/slack/web/api/mixins/channels_spec.rb +0 -31
  392. data/spec/slack/web/api/mixins/groups_spec.rb +0 -31
  393. data/spec/slack/web/api/mixins/users_spec.rb +0 -39
  394. data/spec/slack/web/api/pagination/cursor_spec.rb +0 -70
  395. data/spec/slack/web/client_spec.rb +0 -174
  396. data/spec/spec_helper.rb +0 -14
  397. data/spec/support/queue_with_timeout.rb +0 -34
  398. data/spec/support/real_time/concurrency/mock.rb +0 -30
  399. data/spec/support/real_time/connected_client.rb +0 -21
  400. data/spec/support/real_time/event.rb +0 -11
  401. data/spec/support/token.rb +0 -10
  402. data/spec/support/vcr.rb +0 -9
  403. /data/examples/{hi_real_time_async_celluloid → hi_real_time_async_async}/Procfile +0 -0
@@ -1,7 +0,0 @@
1
- # This file was auto-generated by lib/tasks/web.rake
2
-
3
- require 'spec_helper'
4
-
5
- RSpec.describe Slack::Web::Api::Endpoints::TeamProfile do
6
- let(:client) { Slack::Web::Client.new }
7
- end
@@ -1,7 +0,0 @@
1
- # This file was auto-generated by lib/tasks/web.rake
2
-
3
- require 'spec_helper'
4
-
5
- RSpec.describe Slack::Web::Api::Endpoints::Team do
6
- let(:client) { Slack::Web::Client.new }
7
- end
@@ -1,27 +0,0 @@
1
- # This file was auto-generated by lib/tasks/web.rake
2
-
3
- require 'spec_helper'
4
-
5
- RSpec.describe Slack::Web::Api::Endpoints::Usergroups do
6
- let(:client) { Slack::Web::Client.new }
7
- context 'usergroups_create' do
8
- it 'requires name' do
9
- expect { client.usergroups_create }.to raise_error ArgumentError, /Required arguments :name missing/
10
- end
11
- end
12
- context 'usergroups_disable' do
13
- it 'requires usergroup' do
14
- expect { client.usergroups_disable }.to raise_error ArgumentError, /Required arguments :usergroup missing/
15
- end
16
- end
17
- context 'usergroups_enable' do
18
- it 'requires usergroup' do
19
- expect { client.usergroups_enable }.to raise_error ArgumentError, /Required arguments :usergroup missing/
20
- end
21
- end
22
- context 'usergroups_update' do
23
- it 'requires usergroup' do
24
- expect { client.usergroups_update }.to raise_error ArgumentError, /Required arguments :usergroup missing/
25
- end
26
- end
27
- end
@@ -1,20 +0,0 @@
1
- # This file was auto-generated by lib/tasks/web.rake
2
-
3
- require 'spec_helper'
4
-
5
- RSpec.describe Slack::Web::Api::Endpoints::UsergroupsUsers do
6
- let(:client) { Slack::Web::Client.new }
7
- context 'usergroups.users_list' do
8
- it 'requires usergroup' do
9
- expect { client.usergroups_users_list }.to raise_error ArgumentError, /Required arguments :usergroup missing/
10
- end
11
- end
12
- context 'usergroups.users_update' do
13
- it 'requires usergroup' do
14
- expect { client.usergroups_users_update(users: 'U060R4BJ4,U060RNRCZ') }.to raise_error ArgumentError, /Required arguments :usergroup missing/
15
- end
16
- it 'requires users' do
17
- expect { client.usergroups_users_update(usergroup: 'S0604QSJC') }.to raise_error ArgumentError, /Required arguments :users missing/
18
- end
19
- end
20
- end
@@ -1,17 +0,0 @@
1
- # This file was auto-generated by lib/tasks/web.rake
2
-
3
- require 'spec_helper'
4
-
5
- RSpec.describe Slack::Web::Api::Endpoints::UsersAdmin do
6
- let(:client) { Slack::Web::Client.new }
7
- context 'users.admin_invite' do
8
- it 'requires email' do
9
- expect { client.users_admin_invite }.to raise_error ArgumentError, /Required arguments :email missing/
10
- end
11
- end
12
- context 'users.admin_setInactive' do
13
- it 'requires user' do
14
- expect { client.users_admin_setInactive }.to raise_error ArgumentError, /Required arguments :user missing/
15
- end
16
- end
17
- end
@@ -1,7 +0,0 @@
1
- # This file was auto-generated by lib/tasks/web.rake
2
-
3
- require 'spec_helper'
4
-
5
- RSpec.describe Slack::Web::Api::Endpoints::UsersPrefs do
6
- let(:client) { Slack::Web::Client.new }
7
- end
@@ -1,7 +0,0 @@
1
- # This file was auto-generated by lib/tasks/web.rake
2
-
3
- require 'spec_helper'
4
-
5
- RSpec.describe Slack::Web::Api::Endpoints::UsersProfile do
6
- let(:client) { Slack::Web::Client.new }
7
- end
@@ -1,14 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe Slack::Web::Api::Error do
4
- let(:client) { Slack::Web::Client.new }
5
- it 'provides access to the response object', vcr: { cassette_name: 'web/auth_test_error' } do
6
- begin
7
- client.auth_test
8
- raise 'Expected to receive Slack::Web::Api::Error.'
9
- rescue Slack::Web::Api::Error => e
10
- expect(e.response).to_not be_nil
11
- expect(e.response.status).to eq 200
12
- end
13
- end
14
- end
@@ -1,14 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe Slack::Web::Api::Errors::SlackError do
4
- let(:client) { Slack::Web::Client.new }
5
- it 'provides access to the response object', vcr: { cassette_name: 'web/auth_test_error' } do
6
- begin
7
- client.auth_test
8
- 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
- expect(e.response.status).to eq 200
12
- end
13
- end
14
- end
@@ -1,31 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe Slack::Web::Api::Mixins::Channels do
4
- let(:klass) do
5
- Class.new do
6
- include Slack::Web::Api::Mixins::Channels
7
- end
8
- end
9
- subject do
10
- klass.new
11
- end
12
- before do
13
- allow(subject).to receive(:channels_list).and_return(Slack::Messages::Message.new(
14
- 'channels' => [{
15
- 'id' => 'CDEADBEEF',
16
- 'name' => 'general'
17
- }]
18
- ))
19
- end
20
- context '#channels_id' do
21
- it 'leaves channels specified by ID alone' do
22
- expect(subject.channels_id(channel: 'C123456')).to eq('ok' => true, 'channel' => { 'id' => 'C123456' })
23
- end
24
- it 'translates a channel that starts with a #' do
25
- expect(subject.channels_id(channel: '#general')).to eq('ok' => true, 'channel' => { 'id' => 'CDEADBEEF' })
26
- end
27
- it 'fails with an exception' do
28
- expect { subject.channels_id(channel: '#invalid') }.to raise_error Slack::Web::Api::Errors::SlackError, 'channel_not_found'
29
- end
30
- end
31
- end
@@ -1,31 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe Slack::Web::Api::Mixins::Groups do
4
- let(:klass) do
5
- Class.new do
6
- include Slack::Web::Api::Mixins::Groups
7
- end
8
- end
9
- subject do
10
- klass.new
11
- end
12
- before do
13
- allow(subject).to receive(:groups_list).and_return(Slack::Messages::Message.new(
14
- 'groups' => [{
15
- 'id' => 'CDEADBEEF',
16
- 'name' => 'general'
17
- }]
18
- ))
19
- end
20
- context '#groups_id' do
21
- it 'leaves groups specified by ID alone' do
22
- expect(subject.groups_id(channel: 'C123456')).to eq('ok' => true, 'group' => { 'id' => 'C123456' })
23
- end
24
- it 'translates a channel that starts with a #' do
25
- expect(subject.groups_id(channel: '#general')).to eq('ok' => true, 'group' => { 'id' => 'CDEADBEEF' })
26
- end
27
- it 'fails with an exception' do
28
- expect { subject.groups_id(channel: '#invalid') }.to raise_error Slack::Web::Api::Errors::SlackError, 'channel_not_found'
29
- end
30
- end
31
- end
@@ -1,39 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe Slack::Web::Api::Mixins::Users do
4
- let(:klass) do
5
- Class.new do
6
- include Slack::Web::Api::Mixins::Users
7
- end
8
- end
9
- subject do
10
- klass.new
11
- end
12
- before do
13
- allow(subject).to receive(:users_list).and_return(Slack::Messages::Message.new(
14
- 'members' => [{
15
- 'id' => 'UDEADBEEF',
16
- 'name' => 'aws',
17
- 'profile' => {}
18
- }]
19
- ))
20
- end
21
- context '#users_id' do
22
- it 'leaves users specified by ID alone' do
23
- expect(subject.users_id(user: 'U123456')).to eq('ok' => true, 'user' => { 'id' => 'U123456' })
24
- end
25
- it 'translates a user that starts with a #' do
26
- expect(subject.users_id(user: '@aws')).to eq('ok' => true, 'user' => { 'id' => 'UDEADBEEF' })
27
- end
28
- it 'fails with an exception' do
29
- expect { subject.users_id(user: '@foo') }.to raise_error Slack::Web::Api::Errors::SlackError, 'user_not_found'
30
- end
31
- end
32
- if defined?(Picky)
33
- context '#users_search' do
34
- it 'finds a user' do
35
- expect(subject.users_search(user: 'aws')).to eq('ok' => true, 'members' => [{ 'id' => 'UDEADBEEF', 'name' => 'aws', 'profile' => {} }])
36
- end
37
- end
38
- end
39
- end
@@ -1,70 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe Slack::Web::Api::Pagination::Cursor do
4
- let(:client) { Slack::Web::Client.new }
5
- context 'default cursor' do
6
- let(:cursor) { Slack::Web::Api::Pagination::Cursor.new(client, 'users_list', {}) }
7
- it 'provides a default limit' do
8
- expect(client).to receive(:users_list).with(limit: 100, cursor: nil)
9
- cursor.first
10
- end
11
- it 'handles blank response metadata' do
12
- expect(client).to receive(:users_list).once.and_return(Slack::Messages::Message.new)
13
- cursor.to_a
14
- end
15
- it 'handles nil response metadata' do
16
- expect(client).to receive(:users_list).once.and_return(Slack::Messages::Message.new(response_metadata: nil))
17
- cursor.to_a
18
- end
19
- it 'paginates with a cursor inside response metadata' do
20
- expect(client).to receive(:users_list).twice.and_return(
21
- Slack::Messages::Message.new(response_metadata: { next_cursor: 'next' }),
22
- Slack::Messages::Message.new
23
- )
24
- expect(cursor).not_to receive(:sleep)
25
- cursor.to_a
26
- end
27
- context 'with rate limiting' do
28
- let(:error) { Slack::Web::Api::Errors::TooManyRequestsError.new(nil) }
29
- context 'with default max retries' do
30
- it 'sleeps after a TooManyRequestsError' do
31
- expect(client).to receive(:users_list).with(limit: 100, cursor: nil).ordered.and_return(Slack::Messages::Message.new(response_metadata: { next_cursor: 'next' }))
32
- expect(client).to receive(:users_list).with(limit: 100, cursor: 'next').ordered.and_raise(error)
33
- expect(error).to receive(:retry_after).once.ordered.and_return(9)
34
- expect(cursor).to receive(:sleep).once.ordered.with(9)
35
- expect(client).to receive(:users_list).with(limit: 100, cursor: 'next').ordered.and_return(Slack::Messages::Message.new)
36
- cursor.to_a
37
- end
38
- end
39
- context 'with a custom max_retries' do
40
- let(:cursor) { Slack::Web::Api::Pagination::Cursor.new(client, 'users_list', max_retries: 4) }
41
- it 'raises the error after hitting the max retries' do
42
- expect(client).to receive(:users_list).with(limit: 100, cursor: nil).and_return(Slack::Messages::Message.new(response_metadata: { next_cursor: 'next' }))
43
- expect(client).to receive(:users_list).with(limit: 100, cursor: 'next').exactly(5).times.and_raise(error)
44
- expect(error).to receive(:retry_after).exactly(4).times.and_return(9)
45
- expect(cursor).to receive(:sleep).exactly(4).times.with(9)
46
- expect { cursor.to_a }.to raise_error(error)
47
- end
48
- end
49
- end
50
- end
51
- context 'with a custom limit' do
52
- let(:cursor) { Slack::Web::Api::Pagination::Cursor.new(client, 'users_list', limit: 42) }
53
- it 'overrides default limit' do
54
- expect(client).to receive(:users_list).with(limit: 42, cursor: nil)
55
- cursor.first
56
- end
57
- end
58
- context 'with a custom sleep_interval' do
59
- let(:cursor) { Slack::Web::Api::Pagination::Cursor.new(client, 'users_list', sleep_interval: 3) }
60
- it 'sleeps between requests' do
61
- expect(client).to receive(:users_list).exactly(3).times.and_return(
62
- Slack::Messages::Message.new(response_metadata: { next_cursor: 'next_a' }),
63
- Slack::Messages::Message.new(response_metadata: { next_cursor: 'next_b' }),
64
- Slack::Messages::Message.new
65
- )
66
- expect(cursor).to receive(:sleep).with(3).twice
67
- cursor.to_a
68
- end
69
- end
70
- end
@@ -1,174 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe Slack::Web::Client do
4
- before do
5
- Slack::Config.reset
6
- end
7
- context 'with defaults' do
8
- let(:client) { Slack::Web::Client.new }
9
- describe '#initialize' do
10
- it 'sets user-agent' do
11
- expect(client.user_agent).to eq Slack::Web::Config.user_agent
12
- expect(client.user_agent).to include Slack::VERSION
13
- end
14
- (Slack::Web::Config::ATTRIBUTES - [:logger]).each do |key|
15
- it "sets #{key}" do
16
- expect(client.send(key)).to eq Slack::Web::Config.send(key)
17
- end
18
- end
19
- end
20
- end
21
- context 'with custom settings' do
22
- describe '#initialize' do
23
- Slack::Web::Config::ATTRIBUTES.each do |key|
24
- context key do
25
- let(:client) { Slack::Web::Client.new(key => 'custom') }
26
- it "sets #{key}" do
27
- expect(client.send(key)).to_not eq Slack::Web::Config.send(key)
28
- expect(client.send(key)).to eq 'custom'
29
- end
30
- end
31
- end
32
- end
33
- end
34
- context 'global config' do
35
- after do
36
- Slack::Web::Client.config.reset
37
- end
38
- let(:client) { Slack::Web::Client.new }
39
- context 'user-agent' do
40
- before do
41
- Slack::Web::Client.configure do |config|
42
- config.user_agent = 'custom/user-agent'
43
- end
44
- end
45
- describe '#initialize' do
46
- it 'sets user-agent' do
47
- expect(client.user_agent).to eq 'custom/user-agent'
48
- end
49
- it 'creates a connection with the custom user-agent' do
50
- expect(client.send(:connection).headers).to eq(
51
- 'Accept' => 'application/json; charset=utf-8',
52
- 'User-Agent' => 'custom/user-agent'
53
- )
54
- end
55
- end
56
- end
57
- context 'token' do
58
- before do
59
- Slack.configure do |config|
60
- config.token = 'global default'
61
- end
62
- end
63
- it 'defaults token to global default' do
64
- client = Slack::Web::Client.new
65
- expect(client.token).to eq 'global default'
66
- end
67
- context 'with web config' do
68
- before do
69
- Slack::Web::Client.configure do |config|
70
- config.token = 'custom web token'
71
- end
72
- end
73
- it 'overrides token to web config' do
74
- client = Slack::Web::Client.new
75
- expect(client.token).to eq 'custom web token'
76
- end
77
- it 'overrides token to specific token' do
78
- client = Slack::Web::Client.new(token: 'local token')
79
- expect(client.token).to eq 'local token'
80
- end
81
- end
82
- end
83
- context 'proxy' do
84
- before do
85
- Slack::Web::Client.configure do |config|
86
- config.proxy = 'http://localhost:8080'
87
- end
88
- end
89
- describe '#initialize' do
90
- it 'sets proxy' do
91
- expect(client.proxy).to eq 'http://localhost:8080'
92
- end
93
- it 'creates a connection with the proxy' do
94
- expect(client.send(:connection).proxy.uri.to_s).to eq 'http://localhost:8080'
95
- end
96
- end
97
- end
98
- context 'SSL options' do
99
- before do
100
- Slack::Web::Client.configure do |config|
101
- config.ca_path = '/ca_path'
102
- config.ca_file = '/ca_file'
103
- end
104
- end
105
- describe '#initialize' do
106
- it 'sets ca_path and ca_file' do
107
- expect(client.ca_path).to eq '/ca_path'
108
- expect(client.ca_file).to eq '/ca_file'
109
- end
110
- it 'creates a connection with ssl options' do
111
- ssl = client.send(:connection).ssl
112
- expect(ssl.ca_path).to eq '/ca_path'
113
- expect(ssl.ca_file).to eq '/ca_file'
114
- end
115
- end
116
- end
117
- context 'logger option' do
118
- let(:logger) { Logger.new(STDOUT) }
119
- before do
120
- Slack::Web::Client.configure do |config|
121
- config.logger = logger
122
- end
123
- end
124
- describe '#initialize' do
125
- it 'sets logger' do
126
- expect(client.logger).to eq logger
127
- end
128
- it 'creates a connection with a logger' do
129
- expect(client.send(:connection).builder.handlers).to include ::Faraday::Response::Logger
130
- end
131
- end
132
- end
133
- context 'timeout options' do
134
- before do
135
- Slack::Web::Client.configure do |config|
136
- config.timeout = 10
137
- config.open_timeout = 15
138
- end
139
- end
140
- describe '#initialize' do
141
- it 'sets timeout and open_timeout' do
142
- expect(client.timeout).to eq 10
143
- expect(client.open_timeout).to eq 15
144
- end
145
- it 'creates a connection with timeout options' do
146
- conn = client.send(:connection)
147
- expect(conn.options.timeout).to eq 10
148
- expect(conn.options.open_timeout).to eq 15
149
- end
150
- end
151
- end
152
- context 'per-request options' do
153
- it 'applies timeout', vcr: { cassette_name: 'web/rtm_start', allow_playback_repeats: true } do
154
- # reuse the same connection for the test, otherwise it creates a new one every time
155
- conn = client.send(:connection)
156
- expect(client).to receive(:connection).and_return(conn)
157
-
158
- # get the yielded request to reuse in the next call to rtm_start so that we can examine request.options later
159
- request = nil
160
- response = conn.post do |r|
161
- r.path = 'rtm.start'
162
- r.body = { token: 'token' }
163
- request = r
164
- end
165
-
166
- expect(conn).to receive(:post).and_yield(request).and_return(response)
167
-
168
- client.rtm_start(request: { timeout: 3 })
169
-
170
- expect(request.options.timeout).to eq 3
171
- end
172
- end
173
- end
174
- end
data/spec/spec_helper.rb DELETED
@@ -1,14 +0,0 @@
1
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..'))
2
-
3
- require 'rubygems'
4
- require 'rspec'
5
-
6
- require 'slack-ruby-client'
7
-
8
- Dir[File.join(File.dirname(__FILE__), 'support', '**/*.rb')].each do |file|
9
- require file
10
- end
11
-
12
- Slack.configure do |config|
13
- config.token = ENV['SLACK_API_TOKEN']
14
- end
@@ -1,34 +0,0 @@
1
- # http://spin.atomicobject.com/2014/07/07/ruby-queue-pop-timeout/
2
- class QueueWithTimeout
3
- def initialize
4
- @mutex = Mutex.new
5
- @queue = []
6
- @recieved = ConditionVariable.new
7
- end
8
-
9
- def push(x)
10
- @mutex.synchronize do
11
- @queue << x
12
- @recieved.signal
13
- end
14
- end
15
-
16
- def <<(x)
17
- push(x)
18
- end
19
-
20
- def pop(non_block = false)
21
- pop_with_timeout(non_block ? 0 : nil)
22
- end
23
-
24
- def pop_with_timeout(timeout = nil)
25
- @mutex.synchronize do
26
- if @queue.empty?
27
- @recieved.wait(@mutex, timeout) if timeout != 0
28
- # if we're still empty after the timeout, raise exception
29
- raise ThreadError, 'queue empty' if @queue.empty?
30
- end
31
- @queue.shift
32
- end
33
- end
34
- end
@@ -1,30 +0,0 @@
1
- module Slack
2
- module RealTime
3
- module Concurrency
4
- module Mock
5
- class WebSocket
6
- end
7
-
8
- class Socket < ::Slack::RealTime::Socket
9
- def self.close; end
10
-
11
- def start_async(client)
12
- reactor = Thread.new {}
13
- client.run_loop
14
- reactor
15
- end
16
-
17
- def send_data(message)
18
- driver.send(message)
19
- end
20
-
21
- protected
22
-
23
- def connect
24
- @driver = WebSocket.new(url, nil, options)
25
- end
26
- end
27
- end
28
- end
29
- end
30
- end
@@ -1,21 +0,0 @@
1
- RSpec.shared_context 'connected client' do |opts|
2
- let(:client) { Slack::RealTime::Client.new(opts || {}) }
3
- let(:ws) { double(Slack::RealTime::Concurrency::Mock::WebSocket) }
4
- let(:url) do
5
- Slack::RealTime.config.store_class == Slack::RealTime::Stores::Store ?
6
- 'wss://ms173.slack-msgs.com/websocket/lqcUiAvrKTP-uuid=' :
7
- 'wss://mpmulti-w5tz.slack-msgs.com/websocket/uid'
8
- end
9
- let(:socket) { double(Slack::RealTime::Socket, connected?: true) }
10
- before do
11
- Slack::RealTime.configure do |config|
12
- config.concurrency = Slack::RealTime::Concurrency::Mock
13
- config.store_class = (opts || {})[:store_class] || Slack::RealTime::Stores::Store
14
- end
15
- allow(Slack::RealTime::Socket).to receive(:new).with(url, ping: 30, logger: Slack::Logger.default).and_return(socket)
16
- allow(socket).to receive(:start_sync)
17
- allow(socket).to receive(:connect!)
18
- allow(ws).to receive(:on)
19
- client.start!
20
- end
21
- end
@@ -1,11 +0,0 @@
1
- module Slack
2
- module RealTime
3
- class Event
4
- attr_accessor :data
5
-
6
- def initialize(data)
7
- @data = data.to_json
8
- end
9
- end
10
- end
11
- end
@@ -1,10 +0,0 @@
1
- RSpec.configure do |config|
2
- config.before do
3
- @old_token = Slack::Config.token
4
- end
5
- config.after do
6
- Slack::Config.token = @old_token
7
- Slack::Web::Config.reset
8
- Slack::RealTime::Config.reset
9
- end
10
- end
data/spec/support/vcr.rb DELETED
@@ -1,9 +0,0 @@
1
- require 'vcr'
2
- require 'webmock/rspec'
3
-
4
- VCR.configure do |config|
5
- config.cassette_library_dir = 'spec/fixtures/slack'
6
- config.hook_into :webmock
7
- # config.default_cassette_options = { record: :new_episodes }
8
- config.configure_rspec_metadata!
9
- end