slack-ruby-client 0.7.9 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.github/FUNDING.yml +1 -0
- data/.gitignore +2 -0
- data/.rubocop.yml +32 -1
- data/.rubocop_todo.yml +98 -49
- data/.travis.yml +10 -14
- data/CHANGELOG.md +172 -24
- data/CONTRIBUTING.md +17 -6
- data/Dangerfile +2 -0
- data/Gemfile +10 -4
- data/LICENSE.md +1 -1
- data/README.md +276 -54
- data/RELEASING.md +19 -11
- data/Rakefile +2 -1
- data/UPGRADING.md +84 -2
- data/bin/commands.rb +43 -1
- data/bin/commands/admin_analytics.rb +15 -0
- data/bin/commands/admin_apps.rb +40 -0
- data/bin/commands/admin_apps_approved.rb +17 -0
- data/bin/commands/admin_apps_requests.rb +16 -0
- data/bin/commands/admin_apps_restricted.rb +17 -0
- data/bin/commands/admin_barriers.rb +47 -0
- data/bin/commands/admin_conversations.rb +169 -0
- data/bin/commands/admin_conversations_ekm.rb +17 -0
- data/bin/commands/admin_conversations_restrictAccess.rb +37 -0
- data/bin/commands/admin_conversations_whitelist.rb +37 -0
- data/bin/commands/admin_emoji.rb +54 -0
- data/bin/commands/admin_inviteRequests.rb +36 -0
- data/bin/commands/admin_inviteRequests_approved.rb +16 -0
- data/bin/commands/admin_inviteRequests_denied.rb +16 -0
- data/bin/commands/admin_teams.rb +27 -0
- data/bin/commands/admin_teams_admins.rb +16 -0
- data/bin/commands/admin_teams_owners.rb +16 -0
- data/bin/commands/admin_teams_settings.rb +64 -0
- data/bin/commands/admin_usergroups.rb +48 -0
- data/bin/commands/admin_users.rb +97 -0
- data/bin/commands/admin_users_session.rb +38 -0
- data/bin/commands/api.rb +3 -3
- data/bin/commands/apps.rb +15 -0
- data/bin/commands/apps_connections.rb +13 -0
- data/bin/commands/apps_event_authorizations.rb +16 -0
- data/bin/commands/apps_permissions.rb +23 -0
- data/bin/commands/apps_permissions_resources.rb +15 -0
- data/bin/commands/apps_permissions_scopes.rb +13 -0
- data/bin/commands/apps_permissions_users.rb +26 -0
- data/bin/commands/auth.rb +5 -4
- data/bin/commands/auth_teams.rb +16 -0
- data/bin/commands/bots.rb +4 -2
- data/bin/commands/calls.rb +52 -0
- data/bin/commands/calls_participants.rb +25 -0
- data/bin/commands/channels.rb +64 -43
- data/bin/commands/chat.rb +114 -24
- data/bin/commands/chat_scheduledMessages.rb +19 -0
- data/bin/commands/conversations.rb +196 -0
- data/bin/commands/dialog.rb +15 -0
- data/bin/commands/dnd.rb +9 -8
- data/bin/commands/emoji.rb +3 -2
- data/bin/commands/files.rb +45 -30
- data/bin/commands/files_comments.rb +3 -24
- data/bin/commands/files_remote.rb +78 -0
- data/bin/commands/groups.rb +53 -53
- data/bin/commands/im.rb +17 -13
- data/bin/commands/migration.rb +16 -0
- data/bin/commands/mpim.rb +16 -13
- data/bin/commands/oauth.rb +17 -2
- data/bin/commands/oauth_v2.rb +17 -0
- data/bin/commands/pins.rb +7 -10
- data/bin/commands/reactions.rb +17 -15
- data/bin/commands/reminders.rb +11 -10
- data/bin/commands/rtm.rb +19 -4
- data/bin/commands/search.rb +15 -11
- data/bin/commands/stars.rb +11 -8
- data/bin/commands/team.rb +15 -10
- data/bin/commands/team_profile.rb +3 -2
- data/bin/commands/usergroups.rb +22 -16
- data/bin/commands/usergroups_users.rb +7 -4
- data/bin/commands/users.rb +65 -37
- data/bin/commands/users_admin.rb +29 -0
- data/bin/commands/users_prefs.rb +13 -0
- data/bin/commands/users_profile.rb +8 -7
- data/bin/commands/views.rb +48 -0
- data/bin/commands/workflows.rb +38 -0
- data/bin/slack +3 -4
- data/examples/hi_real_time_and_web/Gemfile +1 -0
- data/examples/hi_real_time_and_web/hi.rb +8 -4
- data/examples/{hi_real_time_async_eventmachine → hi_real_time_async_async}/Gemfile +2 -1
- data/examples/{hi_real_time_async_celluloid → hi_real_time_async_async}/Procfile +0 -0
- data/examples/{hi_real_time_async_celluloid → hi_real_time_async_async}/hi.rb +13 -8
- data/examples/hi_web/Gemfile +1 -0
- data/examples/hi_web/hi.rb +2 -1
- data/examples/new_ticket/Gemfile +1 -0
- data/examples/new_ticket/new_ticket.rb +2 -1
- data/lib/slack-ruby-client.rb +40 -26
- data/lib/slack.rb +1 -0
- data/lib/slack/config.rb +1 -0
- data/lib/slack/events/config.rb +32 -0
- data/lib/slack/events/request.rb +70 -0
- data/lib/slack/logger.rb +6 -5
- data/lib/slack/messages/formatting.rb +4 -4
- data/lib/slack/messages/message.rb +2 -6
- data/lib/slack/real_time/api/message.rb +3 -1
- data/lib/slack/real_time/api/message_id.rb +1 -0
- data/lib/slack/real_time/api/ping.rb +5 -2
- data/lib/slack/real_time/api/templates/event_handler.erb +1 -1
- data/lib/slack/real_time/api/typing.rb +3 -1
- data/lib/slack/real_time/client.rb +113 -32
- data/lib/slack/real_time/concurrency.rb +2 -2
- data/lib/slack/real_time/concurrency/async.rb +140 -0
- data/lib/slack/real_time/config.rb +20 -12
- data/lib/slack/real_time/models.rb +8 -7
- data/lib/slack/real_time/models/base.rb +2 -6
- data/lib/slack/real_time/models/bot.rb +1 -0
- data/lib/slack/real_time/models/channel.rb +1 -0
- data/lib/slack/real_time/models/group.rb +1 -0
- data/lib/slack/real_time/models/im.rb +1 -0
- data/lib/slack/real_time/models/team.rb +1 -0
- data/lib/slack/real_time/models/user.rb +1 -0
- data/lib/slack/real_time/socket.rb +46 -17
- data/lib/slack/real_time/stores.rb +4 -3
- data/lib/slack/real_time/stores/base.rb +5 -3
- data/lib/slack/real_time/stores/starter.rb +113 -72
- data/lib/slack/real_time/stores/store.rb +131 -88
- data/lib/slack/version.rb +2 -1
- data/lib/slack/web/api/endpoints.rb +110 -26
- data/lib/slack/web/api/endpoints/admin_analytics.rb +26 -0
- data/lib/slack/web/api/endpoints/admin_apps.rb +62 -0
- data/lib/slack/web/api/endpoints/admin_apps_approved.rb +35 -0
- data/lib/slack/web/api/endpoints/admin_apps_requests.rb +33 -0
- data/lib/slack/web/api/endpoints/admin_apps_restricted.rb +35 -0
- data/lib/slack/web/api/endpoints/admin_barriers.rb +82 -0
- data/lib/slack/web/api/endpoints/admin_conversations.rb +260 -0
- data/lib/slack/web/api/endpoints/admin_conversations_ekm.rb +35 -0
- data/lib/slack/web/api/endpoints/admin_conversations_restrictAccess.rb +61 -0
- data/lib/slack/web/api/endpoints/admin_conversations_whitelist.rb +64 -0
- data/lib/slack/web/api/endpoints/admin_emoji.rb +88 -0
- data/lib/slack/web/api/endpoints/admin_inviteRequests.rb +61 -0
- data/lib/slack/web/api/endpoints/admin_inviteRequests_approved.rb +33 -0
- data/lib/slack/web/api/endpoints/admin_inviteRequests_denied.rb +33 -0
- data/lib/slack/web/api/endpoints/admin_teams.rb +50 -0
- data/lib/slack/web/api/endpoints/admin_teams_admins.rb +34 -0
- data/lib/slack/web/api/endpoints/admin_teams_owners.rb +34 -0
- data/lib/slack/web/api/endpoints/admin_teams_settings.rb +99 -0
- data/lib/slack/web/api/endpoints/admin_usergroups.rb +77 -0
- data/lib/slack/web/api/endpoints/admin_users.rb +161 -0
- data/lib/slack/web/api/endpoints/admin_users_session.rb +66 -0
- data/lib/slack/web/api/endpoints/api.rb +3 -4
- data/lib/slack/web/api/endpoints/apps.rb +27 -0
- data/lib/slack/web/api/endpoints/apps_connections.rb +21 -0
- data/lib/slack/web/api/endpoints/apps_event_authorizations.rb +34 -0
- data/lib/slack/web/api/endpoints/apps_permissions.rb +36 -0
- data/lib/slack/web/api/endpoints/apps_permissions_resources.rb +31 -0
- data/lib/slack/web/api/endpoints/apps_permissions_scopes.rb +21 -0
- data/lib/slack/web/api/endpoints/apps_permissions_users.rb +50 -0
- data/lib/slack/web/api/endpoints/auth.rb +5 -4
- data/lib/slack/web/api/endpoints/auth_teams.rb +33 -0
- data/lib/slack/web/api/endpoints/bots.rb +5 -2
- data/lib/slack/web/api/endpoints/calls.rb +83 -0
- data/lib/slack/web/api/endpoints/calls_participants.rb +42 -0
- data/lib/slack/web/api/endpoints/channels.rb +105 -49
- data/lib/slack/web/api/endpoints/chat.rb +221 -40
- data/lib/slack/web/api/endpoints/chat_scheduledMessages.rb +40 -0
- data/lib/slack/web/api/endpoints/conversations.rb +332 -0
- data/lib/slack/web/api/endpoints/dialog.rb +33 -0
- data/lib/slack/web/api/endpoints/dnd.rb +11 -9
- data/lib/slack/web/api/endpoints/emoji.rb +3 -2
- data/lib/slack/web/api/endpoints/files.rb +75 -38
- data/lib/slack/web/api/endpoints/files_comments.rb +3 -38
- data/lib/slack/web/api/endpoints/files_remote.rb +127 -0
- data/lib/slack/web/api/endpoints/groups.rb +76 -53
- data/lib/slack/web/api/endpoints/im.rb +38 -21
- data/lib/slack/web/api/endpoints/migration.rb +28 -0
- data/lib/slack/web/api/endpoints/mpim.rb +37 -22
- data/lib/slack/web/api/endpoints/oauth.rb +25 -4
- data/lib/slack/web/api/endpoints/oauth_v2.rb +30 -0
- data/lib/slack/web/api/endpoints/pins.rb +10 -19
- data/lib/slack/web/api/endpoints/presence.rb +1 -1
- data/lib/slack/web/api/endpoints/reactions.rb +37 -28
- data/lib/slack/web/api/endpoints/reminders.rb +11 -10
- data/lib/slack/web/api/endpoints/rtm.rb +28 -7
- data/lib/slack/web/api/endpoints/search.rb +21 -14
- data/lib/slack/web/api/endpoints/stars.rb +24 -15
- data/lib/slack/web/api/endpoints/team.rb +21 -13
- data/lib/slack/web/api/endpoints/team_profile.rb +3 -2
- data/lib/slack/web/api/endpoints/usergroups.rb +33 -22
- data/lib/slack/web/api/endpoints/usergroups_users.rb +9 -4
- data/lib/slack/web/api/endpoints/users.rb +78 -29
- data/lib/slack/web/api/endpoints/users_admin.rb +49 -0
- data/lib/slack/web/api/endpoints/users_prefs.rb +21 -0
- data/lib/slack/web/api/endpoints/users_profile.rb +11 -10
- data/lib/slack/web/api/endpoints/views.rb +97 -0
- data/lib/slack/web/api/endpoints/workflows.rb +61 -0
- data/lib/slack/web/api/error.rb +2 -8
- data/lib/slack/web/api/errors.rb +850 -0
- data/lib/slack/web/api/errors/internal_error.rb +14 -0
- data/lib/slack/web/api/errors/slack_error.rb +29 -0
- data/lib/slack/web/api/errors/too_many_requests_error.rb +24 -0
- data/lib/slack/web/api/mixins.rb +6 -4
- data/lib/slack/web/api/mixins/channels.id.rb +6 -7
- data/lib/slack/web/api/mixins/conversations.id.rb +25 -0
- data/lib/slack/web/api/mixins/groups.id.rb +6 -7
- data/lib/slack/web/api/mixins/ids.id.rb +24 -0
- data/lib/slack/web/api/mixins/users.id.rb +6 -7
- data/lib/slack/web/api/mixins/users.search.rb +39 -36
- data/lib/slack/web/api/patches/chat.1.patch +72 -0
- data/lib/slack/web/api/patches/dialog.1.open-json-support.patch +17 -0
- data/lib/slack/web/api/patches/views.1.view-json.patch +40 -0
- data/lib/slack/web/api/patches/views.1.views-published.patch +16 -0
- data/lib/slack/web/api/templates/command.erb +5 -3
- data/lib/slack/web/api/templates/commands.erb +2 -1
- data/lib/slack/web/api/templates/endpoints.erb +5 -3
- data/lib/slack/web/api/templates/errors.erb +20 -0
- data/lib/slack/web/api/templates/method.erb +26 -4
- data/lib/slack/web/api/templates/method_spec.erb +3 -2
- data/lib/slack/web/client.rb +2 -1
- data/lib/slack/web/config.rb +21 -10
- data/lib/slack/web/faraday/connection.rb +25 -16
- data/lib/slack/web/faraday/request.rb +2 -0
- data/lib/slack/web/faraday/response/raise_error.rb +23 -1
- data/lib/slack/web/faraday/response/wrap_error.rb +18 -0
- data/lib/slack/web/pagination/cursor.rb +52 -0
- data/lib/slack_ruby_client.rb +1 -0
- data/lib/tasks/git.rake +2 -1
- data/lib/tasks/real_time.rake +16 -6
- data/lib/tasks/update.rake +1 -0
- data/lib/tasks/web.rake +38 -10
- data/screenshots/create-app.png +0 -0
- data/slack-ruby-client.gemspec +9 -6
- data/spec/fixtures/slack/web/429_error.yml +2 -0
- data/spec/fixtures/slack/web/503_error.yml +14 -0
- data/spec/fixtures/slack/web/channels_info.yml +108 -15
- data/spec/fixtures/slack/web/conversations_setTopic.yml +69 -0
- data/spec/fixtures/slack/web/conversations_setTopic_one_page.yml +142 -0
- data/spec/fixtures/slack/web/conversations_setTopic_paginated.yml +208 -0
- data/spec/fixtures/slack/web/paginated_users_list.yml +181 -0
- data/spec/fixtures/slack/web/rtm_connect.yml +70 -0
- data/spec/fixtures/slack/web/rtm_start.yml +1 -1
- data/spec/fixtures/slack/web/views_open_error.yml +76 -0
- data/spec/integration/integration_spec.rb +116 -48
- data/spec/slack/config_spec.rb +2 -0
- data/spec/slack/events/config_spec.rb +33 -0
- data/spec/slack/events/request_spec.rb +183 -0
- data/spec/slack/messages/formatting_spec.rb +25 -14
- data/spec/slack/real_time/api/message_spec.rb +6 -1
- data/spec/slack/real_time/api/ping_spec.rb +2 -0
- data/spec/slack/real_time/api/typing_spec.rb +5 -1
- data/spec/slack/real_time/client_spec.rb +462 -134
- data/spec/slack/real_time/concurrency/it_behaves_like_a_realtime_socket.rb +3 -1
- data/spec/slack/real_time/event_handlers/bot_spec.rb +6 -3
- data/spec/slack/real_time/event_handlers/channel_spec.rb +9 -6
- data/spec/slack/real_time/event_handlers/event_handlers_spec.rb +3 -2
- data/spec/slack/real_time/event_handlers/group_spec.rb +5 -4
- data/spec/slack/real_time/event_handlers/im_spec.rb +4 -3
- data/spec/slack/real_time/event_handlers/team_spec.rb +8 -4
- data/spec/slack/real_time/event_handlers/user_spec.rb +5 -2
- data/spec/slack/real_time/rtm_connect_spec.rb +14 -0
- data/spec/slack/real_time/rtm_start_spec.rb +1 -0
- data/spec/slack/real_time/store_spec.rb +2 -1
- data/spec/slack/slack_spec.rb +39 -7
- data/spec/slack/version_spec.rb +2 -1
- data/spec/slack/web/api/endpoints/admin_analytics_spec.rb +13 -0
- data/spec/slack/web/api/endpoints/admin_apps_approved_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/admin_apps_requests_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/admin_apps_restricted_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/admin_apps_spec.rb +13 -0
- data/spec/slack/web/api/endpoints/admin_barriers_spec.rb +38 -0
- data/spec/slack/web/api/endpoints/admin_conversations_ekm_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/admin_conversations_restrictAccess_spec.rb +32 -0
- data/spec/slack/web/api/endpoints/admin_conversations_spec.rb +98 -0
- data/spec/slack/web/api/endpoints/admin_conversations_whitelist_spec.rb +32 -0
- data/spec/slack/web/api/endpoints/admin_emoji_spec.rb +37 -0
- data/spec/slack/web/api/endpoints/admin_inviteRequests_approved_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/admin_inviteRequests_denied_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/admin_inviteRequests_spec.rb +18 -0
- data/spec/slack/web/api/endpoints/admin_teams_admins_spec.rb +13 -0
- data/spec/slack/web/api/endpoints/admin_teams_owners_spec.rb +13 -0
- data/spec/slack/web/api/endpoints/admin_teams_settings_spec.rb +53 -0
- data/spec/slack/web/api/endpoints/admin_teams_spec.rb +16 -0
- data/spec/slack/web/api/endpoints/admin_usergroups_spec.rb +37 -0
- data/spec/slack/web/api/endpoints/admin_users_session_spec.rb +21 -0
- data/spec/slack/web/api/endpoints/admin_users_spec.rb +67 -0
- data/spec/slack/web/api/endpoints/api_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/apps_connections_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/apps_event_authorizations_spec.rb +13 -0
- data/spec/slack/web/api/endpoints/apps_permissions_resources_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/apps_permissions_scopes_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/apps_permissions_spec.rb +16 -0
- data/spec/slack/web/api/endpoints/apps_permissions_users_spec.rb +19 -0
- data/spec/slack/web/api/endpoints/apps_spec.rb +16 -0
- data/spec/slack/web/api/endpoints/auth_teams_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/bots_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/calls_participants_spec.rb +24 -0
- data/spec/slack/web/api/endpoints/calls_spec.rb +31 -0
- data/spec/slack/web/api/endpoints/chat_scheduledMessages_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/conversations_spec.rb +109 -0
- data/spec/slack/web/api/endpoints/custom_specs/auth_spec.rb +13 -4
- data/spec/slack/web/api/endpoints/custom_specs/channels_spec.rb +5 -3
- data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +140 -24
- data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +36 -0
- data/spec/slack/web/api/endpoints/custom_specs/groups_spec.rb +2 -0
- data/spec/slack/web/api/endpoints/custom_specs/users_spec.rb +21 -6
- data/spec/slack/web/api/endpoints/custom_specs/views_spec.rb +95 -0
- data/spec/slack/web/api/endpoints/dnd_spec.rb +6 -0
- data/spec/slack/web/api/endpoints/emoji_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/files_comments_spec.rb +3 -21
- data/spec/slack/web/api/endpoints/files_remote_spec.rb +24 -0
- data/spec/slack/web/api/endpoints/files_spec.rb +17 -5
- data/spec/slack/web/api/endpoints/im_spec.rb +5 -4
- data/spec/slack/web/api/endpoints/migration_spec.rb +13 -0
- data/spec/slack/web/api/endpoints/mpim_spec.rb +5 -4
- data/spec/slack/web/api/endpoints/oauth_spec.rb +5 -4
- data/spec/slack/web/api/endpoints/oauth_v2_spec.rb +13 -0
- data/spec/slack/web/api/endpoints/pins_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/reactions_spec.rb +8 -1
- data/spec/slack/web/api/endpoints/reminders_spec.rb +3 -2
- data/spec/slack/web/api/endpoints/rtm_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/search_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/stars_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/team_profile_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/team_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/usergroups_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/usergroups_users_spec.rb +3 -2
- data/spec/slack/web/api/endpoints/users_admin_spec.rb +18 -0
- data/spec/slack/web/api/endpoints/users_prefs_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/users_profile_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/views_spec.rb +29 -0
- data/spec/slack/web/api/endpoints/workflows_spec.rb +26 -0
- data/spec/slack/web/api/error_spec.rb +5 -3
- data/spec/slack/web/api/errors/slack_error_spec.rb +38 -0
- data/spec/slack/web/api/mixins/channels_spec.rb +24 -12
- data/spec/slack/web/api/mixins/conversations_list_spec.rb +21 -0
- data/spec/slack/web/api/mixins/conversations_spec.rb +43 -0
- data/spec/slack/web/api/mixins/groups_spec.rb +24 -12
- data/spec/slack/web/api/mixins/users_spec.rb +30 -17
- data/spec/slack/web/api/pagination/cursor_spec.rb +100 -0
- data/spec/slack/web/client_spec.rb +215 -14
- data/spec/slack/web/faraday/response/raise_error_spec.rb +85 -0
- data/spec/spec_helper.rb +8 -1
- data/spec/support/queue_with_timeout.rb +6 -5
- data/spec/support/real_time/concurrency/mock.rb +2 -2
- data/spec/support/real_time/connected_client.rb +13 -2
- data/spec/support/real_time/event.rb +1 -0
- data/spec/support/token.rb +1 -0
- data/spec/support/vcr.rb +6 -1
- metadata +280 -55
- data/examples/hi_real_time/Gemfile +0 -5
- data/examples/hi_real_time/hi.gif +0 -0
- data/examples/hi_real_time/hi.rb +0 -37
- data/examples/hi_real_time_async_celluloid/Gemfile +0 -6
- data/examples/hi_real_time_async_eventmachine/Procfile +0 -2
- data/examples/hi_real_time_async_eventmachine/hi.rb +0 -36
- data/lib/slack/real_time/concurrency/celluloid.rb +0 -113
- data/lib/slack/real_time/concurrency/eventmachine.rb +0 -60
- data/lib/slack/web/api/patches/chat.1.text-attachments-required.patch +0 -13
- data/lib/slack/web/api/patches/chat.2.attachments-json.patch +0 -17
- data/lib/slack/web/api/patches/chat.3.update-attachments-support.patch +0 -20
- data/screenshots/register-bot.png +0 -0
- data/spec/slack/real_time/concurrency/celluloid_spec.rb +0 -31
- data/spec/slack/real_time/concurrency/eventmachine_spec.rb +0 -47
|
@@ -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::AppsEventAuthorizations do
|
|
7
|
+
let(:client) { Slack::Web::Client.new }
|
|
8
|
+
context 'apps.event.authorizations_list' do
|
|
9
|
+
it 'requires event_context' do
|
|
10
|
+
expect { client.apps_event_authorizations_list }.to raise_error ArgumentError, /Required arguments :event_context missing/
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
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::AppsPermissions do
|
|
7
|
+
let(:client) { Slack::Web::Client.new }
|
|
8
|
+
context 'apps.permissions_request' do
|
|
9
|
+
it 'requires scopes' do
|
|
10
|
+
expect { client.apps_permissions_request(trigger_id: %q[]) }.to raise_error ArgumentError, /Required arguments :scopes missing/
|
|
11
|
+
end
|
|
12
|
+
it 'requires trigger_id' do
|
|
13
|
+
expect { client.apps_permissions_request(scopes: %q[]) }.to raise_error ArgumentError, /Required arguments :trigger_id missing/
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
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::AppsPermissionsUsers do
|
|
7
|
+
let(:client) { Slack::Web::Client.new }
|
|
8
|
+
context 'apps.permissions.users_request' do
|
|
9
|
+
it 'requires scopes' do
|
|
10
|
+
expect { client.apps_permissions_users_request(trigger_id: %q[], user: %q[]) }.to raise_error ArgumentError, /Required arguments :scopes missing/
|
|
11
|
+
end
|
|
12
|
+
it 'requires trigger_id' do
|
|
13
|
+
expect { client.apps_permissions_users_request(scopes: %q[], user: %q[]) }.to raise_error ArgumentError, /Required arguments :trigger_id missing/
|
|
14
|
+
end
|
|
15
|
+
it 'requires user' do
|
|
16
|
+
expect { client.apps_permissions_users_request(scopes: %q[], trigger_id: %q[]) }.to raise_error ArgumentError, /Required arguments :user missing/
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
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::Apps do
|
|
7
|
+
let(:client) { Slack::Web::Client.new }
|
|
8
|
+
context 'apps_uninstall' do
|
|
9
|
+
it 'requires client_id' do
|
|
10
|
+
expect { client.apps_uninstall(client_secret: %q[f25b5ceaf8a3c2a2c4f52bb4f0b0499e]) }.to raise_error ArgumentError, /Required arguments :client_id missing/
|
|
11
|
+
end
|
|
12
|
+
it 'requires client_secret' do
|
|
13
|
+
expect { client.apps_uninstall(client_id: %q[56579136444.26251006572]) }.to raise_error ArgumentError, /Required arguments :client_secret missing/
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -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::CallsParticipants do
|
|
7
|
+
let(:client) { Slack::Web::Client.new }
|
|
8
|
+
context 'calls.participants_add' do
|
|
9
|
+
it 'requires id' do
|
|
10
|
+
expect { client.calls_participants_add(users: %q[[{"slack_id": "U1H77"}, {"external_id": "54321678", "display_name": "External User", "avatar_url": "https://example.com/users/avatar1234.jpg"}]]) }.to raise_error ArgumentError, /Required arguments :id missing/
|
|
11
|
+
end
|
|
12
|
+
it 'requires users' do
|
|
13
|
+
expect { client.calls_participants_add(id: %q[R0E69JAIF]) }.to raise_error ArgumentError, /Required arguments :users missing/
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
context 'calls.participants_remove' do
|
|
17
|
+
it 'requires id' do
|
|
18
|
+
expect { client.calls_participants_remove(users: %q[[{"slack_id": "U1H77"}, {"external_id": "54321678", "display_name": "External User", "avatar_url": "https://example.com/users/avatar1234.jpg"}]]) }.to raise_error ArgumentError, /Required arguments :id missing/
|
|
19
|
+
end
|
|
20
|
+
it 'requires users' do
|
|
21
|
+
expect { client.calls_participants_remove(id: %q[R0E69JAIF]) }.to raise_error ArgumentError, /Required arguments :users missing/
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
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::Calls do
|
|
7
|
+
let(:client) { Slack::Web::Client.new }
|
|
8
|
+
context 'calls_add' do
|
|
9
|
+
it 'requires external_unique_id' do
|
|
10
|
+
expect { client.calls_add(join_url: %q[https://example.com/calls/1234567890]) }.to raise_error ArgumentError, /Required arguments :external_unique_id missing/
|
|
11
|
+
end
|
|
12
|
+
it 'requires join_url' do
|
|
13
|
+
expect { client.calls_add(external_unique_id: %q[025169F6-E37A-4E62-BB54-7F93A0FC4C1F]) }.to raise_error ArgumentError, /Required arguments :join_url missing/
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
context 'calls_end' do
|
|
17
|
+
it 'requires id' do
|
|
18
|
+
expect { client.calls_end }.to raise_error ArgumentError, /Required arguments :id missing/
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
context 'calls_info' do
|
|
22
|
+
it 'requires id' do
|
|
23
|
+
expect { client.calls_info }.to raise_error ArgumentError, /Required arguments :id missing/
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
context 'calls_update' do
|
|
27
|
+
it 'requires id' do
|
|
28
|
+
expect { client.calls_update }.to raise_error ArgumentError, /Required arguments :id missing/
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,109 @@
|
|
|
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::Conversations do
|
|
7
|
+
let(:client) { Slack::Web::Client.new }
|
|
8
|
+
context 'conversations_archive' do
|
|
9
|
+
it 'requires channel' do
|
|
10
|
+
expect { client.conversations_archive }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
context 'conversations_close' do
|
|
14
|
+
it 'requires channel' do
|
|
15
|
+
expect { client.conversations_close }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
context 'conversations_create' do
|
|
19
|
+
it 'requires name' do
|
|
20
|
+
expect { client.conversations_create }.to raise_error ArgumentError, /Required arguments :name missing/
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
context 'conversations_history' do
|
|
24
|
+
it 'requires channel' do
|
|
25
|
+
expect { client.conversations_history }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
context 'conversations_info' do
|
|
29
|
+
it 'requires channel' do
|
|
30
|
+
expect { client.conversations_info }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
context 'conversations_invite' do
|
|
34
|
+
it 'requires channel' do
|
|
35
|
+
expect { client.conversations_invite(users: %q[W1234567890,U2345678901,U3456789012]) }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
36
|
+
end
|
|
37
|
+
it 'requires users' do
|
|
38
|
+
expect { client.conversations_invite(channel: %q[C1234567890]) }.to raise_error ArgumentError, /Required arguments :users missing/
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
context 'conversations_join' do
|
|
42
|
+
it 'requires channel' do
|
|
43
|
+
expect { client.conversations_join }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
context 'conversations_kick' do
|
|
47
|
+
it 'requires channel' do
|
|
48
|
+
expect { client.conversations_kick(user: %q[W1234567890]) }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
49
|
+
end
|
|
50
|
+
it 'requires user' do
|
|
51
|
+
expect { client.conversations_kick(channel: %q[C1234567890]) }.to raise_error ArgumentError, /Required arguments :user missing/
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
context 'conversations_leave' do
|
|
55
|
+
it 'requires channel' do
|
|
56
|
+
expect { client.conversations_leave }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
context 'conversations_mark' do
|
|
60
|
+
it 'requires channel' do
|
|
61
|
+
expect { client.conversations_mark(ts: %q[1593473566.000200]) }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
62
|
+
end
|
|
63
|
+
it 'requires ts' do
|
|
64
|
+
expect { client.conversations_mark(channel: %q[C012345678]) }.to raise_error ArgumentError, /Required arguments :ts missing/
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
context 'conversations_members' do
|
|
68
|
+
it 'requires channel' do
|
|
69
|
+
expect { client.conversations_members }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
context 'conversations_rename' do
|
|
73
|
+
it 'requires channel' do
|
|
74
|
+
expect { client.conversations_rename(name: %q[]) }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
75
|
+
end
|
|
76
|
+
it 'requires name' do
|
|
77
|
+
expect { client.conversations_rename(channel: %q[C1234567890]) }.to raise_error ArgumentError, /Required arguments :name missing/
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
context 'conversations_replies' do
|
|
81
|
+
it 'requires channel' do
|
|
82
|
+
expect { client.conversations_replies(ts: %q[1234567890.123456]) }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
83
|
+
end
|
|
84
|
+
it 'requires ts' do
|
|
85
|
+
expect { client.conversations_replies(channel: %q[C1234567890]) }.to raise_error ArgumentError, /Required arguments :ts missing/
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
context 'conversations_setPurpose' do
|
|
89
|
+
it 'requires channel' do
|
|
90
|
+
expect { client.conversations_setPurpose(purpose: %q[My More Special Purpose]) }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
91
|
+
end
|
|
92
|
+
it 'requires purpose' do
|
|
93
|
+
expect { client.conversations_setPurpose(channel: %q[C1234567890]) }.to raise_error ArgumentError, /Required arguments :purpose missing/
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
context 'conversations_setTopic' do
|
|
97
|
+
it 'requires channel' do
|
|
98
|
+
expect { client.conversations_setTopic(topic: %q[Apply topically for best effects]) }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
99
|
+
end
|
|
100
|
+
it 'requires topic' do
|
|
101
|
+
expect { client.conversations_setTopic(channel: %q[C1234567890]) }.to raise_error ArgumentError, /Required arguments :topic missing/
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
context 'conversations_unarchive' do
|
|
105
|
+
it 'requires channel' do
|
|
106
|
+
expect { client.conversations_unarchive }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
end
|
|
@@ -1,20 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
require 'spec_helper'
|
|
2
3
|
|
|
3
4
|
RSpec.describe Slack::Web::Api::Endpoints::Auth do
|
|
4
5
|
let(:client) { Slack::Web::Client.new }
|
|
6
|
+
|
|
5
7
|
context 'without auth', vcr: { cassette_name: 'web/auth_test_error' } do
|
|
6
8
|
it 'fails with an exception' do
|
|
7
|
-
expect { client.auth_test }.to raise_error Slack::Web::Api::
|
|
9
|
+
expect { client.auth_test }.to raise_error Slack::Web::Api::Errors::SlackError, 'not_authed'
|
|
8
10
|
end
|
|
9
11
|
end
|
|
12
|
+
|
|
10
13
|
context 'with auth', vcr: { cassette_name: 'web/auth_test_success' } do
|
|
11
14
|
it 'succeeds' do
|
|
12
|
-
expect { client.auth_test }.
|
|
15
|
+
expect { client.auth_test }.not_to raise_error
|
|
13
16
|
end
|
|
14
17
|
end
|
|
18
|
+
|
|
15
19
|
context '429 error', vcr: { cassette_name: 'web/429_error' } do
|
|
16
|
-
it 'fails with an exception' do
|
|
17
|
-
|
|
20
|
+
it 'fails with an specific exception' do
|
|
21
|
+
begin
|
|
22
|
+
client.auth_test
|
|
23
|
+
rescue Slack::Web::Api::Errors::TooManyRequestsError => e
|
|
24
|
+
expect(e.message).to eq('Retry after 3600 seconds')
|
|
25
|
+
expect(e.retry_after).to eq(3600)
|
|
26
|
+
end
|
|
18
27
|
end
|
|
19
28
|
end
|
|
20
29
|
end
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
require 'spec_helper'
|
|
2
3
|
|
|
3
4
|
RSpec.describe Slack::Web::Api::Endpoints::Channels do
|
|
4
5
|
let(:client) { Slack::Web::Client.new }
|
|
6
|
+
|
|
5
7
|
context 'channels' do
|
|
6
|
-
it '
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
it 'raises deprecation error', vcr: { cassette_name: 'web/channels_info' } do
|
|
9
|
+
expect { client.channels_info(channel: '#general') }
|
|
10
|
+
.to raise_error(Slack::Web::Api::Errors::MethodDeprecated, 'method_deprecated')
|
|
9
11
|
end
|
|
10
12
|
end
|
|
11
13
|
end
|
|
@@ -1,68 +1,184 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
require 'spec_helper'
|
|
2
3
|
|
|
3
4
|
RSpec.describe Slack::Web::Api::Endpoints::Chat do
|
|
4
5
|
let(:client) { Slack::Web::Client.new }
|
|
6
|
+
|
|
7
|
+
context 'chat_postEphemeral' do
|
|
8
|
+
let(:user) { OpenStruct.new(user: { id: '123' }) }
|
|
9
|
+
|
|
10
|
+
before do
|
|
11
|
+
allow(described_class).to receive(:users_id).and_return(user)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
it 'automatically converts attachments and blocks into JSON' do
|
|
15
|
+
expect(client).to receive(:post).with(
|
|
16
|
+
'chat.postEphemeral',
|
|
17
|
+
channel: 'channel',
|
|
18
|
+
text: 'text',
|
|
19
|
+
user: '123',
|
|
20
|
+
attachments: '[]',
|
|
21
|
+
blocks: '[]'
|
|
22
|
+
)
|
|
23
|
+
client.chat_postEphemeral(
|
|
24
|
+
channel: 'channel',
|
|
25
|
+
text: 'text',
|
|
26
|
+
user: '123',
|
|
27
|
+
attachments: [],
|
|
28
|
+
blocks: []
|
|
29
|
+
)
|
|
30
|
+
end
|
|
31
|
+
context 'text and user arguments' do
|
|
32
|
+
it 'requires text or attachments' do
|
|
33
|
+
expect { client.chat_postEphemeral(channel: 'channel') }.to(
|
|
34
|
+
raise_error(ArgumentError, /Required arguments :text, :attachments or :blocks missing/)
|
|
35
|
+
)
|
|
36
|
+
end
|
|
37
|
+
it 'requires user' do
|
|
38
|
+
expect { client.chat_postEphemeral(channel: 'channel', text: 'text') }.to(
|
|
39
|
+
raise_error(ArgumentError, /Required arguments :user missing/)
|
|
40
|
+
)
|
|
41
|
+
end
|
|
42
|
+
it 'both text and user' do
|
|
43
|
+
expect(client).to(
|
|
44
|
+
receive(:post).with('chat.postEphemeral', hash_including(text: 'text', user: '123'))
|
|
45
|
+
)
|
|
46
|
+
expect do
|
|
47
|
+
client.chat_postEphemeral(channel: 'channel', text: 'text', user: '123')
|
|
48
|
+
end.not_to raise_error
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
context 'attachments argument' do
|
|
53
|
+
it 'optional attachments' do
|
|
54
|
+
expect(client).to(
|
|
55
|
+
receive(:post).with('chat.postEphemeral', hash_including(attachments: '[]'))
|
|
56
|
+
)
|
|
57
|
+
expect do
|
|
58
|
+
client.chat_postEphemeral(channel: 'channel', text: 'text', user: '123', attachments: [])
|
|
59
|
+
end.not_to raise_error
|
|
60
|
+
end
|
|
61
|
+
it 'attachments without text' do
|
|
62
|
+
expect(client).to(
|
|
63
|
+
receive(:post).with('chat.postEphemeral', hash_including(attachments: '[]'))
|
|
64
|
+
)
|
|
65
|
+
expect do
|
|
66
|
+
client.chat_postEphemeral(channel: 'channel', attachments: [], user: '123')
|
|
67
|
+
end.not_to raise_error
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
context 'blocks argument' do
|
|
72
|
+
it 'optional blocks' do
|
|
73
|
+
expect(client).to receive(:post).with('chat.postEphemeral', hash_including(blocks: '[]'))
|
|
74
|
+
expect do
|
|
75
|
+
client.chat_postEphemeral(channel: 'channel', text: 'text', user: '123', blocks: [])
|
|
76
|
+
end.not_to raise_error
|
|
77
|
+
end
|
|
78
|
+
it 'blocks without text' do
|
|
79
|
+
expect(client).to receive(:post).with('chat.postEphemeral', hash_including(blocks: '[]'))
|
|
80
|
+
expect do
|
|
81
|
+
client.chat_postEphemeral(channel: 'channel', blocks: [], user: '123')
|
|
82
|
+
end.not_to raise_error
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
|
|
5
87
|
context 'chat_postMessage' do
|
|
6
|
-
it 'automatically converts attachments into JSON' do
|
|
88
|
+
it 'automatically converts attachments and blocks into JSON' do
|
|
7
89
|
expect(client).to receive(:post).with(
|
|
8
90
|
'chat.postMessage',
|
|
9
91
|
channel: 'channel',
|
|
10
92
|
text: 'text',
|
|
11
|
-
attachments: '[]'
|
|
93
|
+
attachments: '[]',
|
|
94
|
+
blocks: '[]'
|
|
12
95
|
)
|
|
13
|
-
client.chat_postMessage(channel: 'channel', text: 'text', attachments: [])
|
|
96
|
+
client.chat_postMessage(channel: 'channel', text: 'text', attachments: [], blocks: [])
|
|
14
97
|
end
|
|
15
|
-
context 'text and
|
|
16
|
-
it 'requires text or
|
|
17
|
-
expect { client.chat_postMessage(channel: 'channel') }.to
|
|
98
|
+
context 'text, attachment and blocks arguments' do
|
|
99
|
+
it 'requires text, attachments or blocks' do
|
|
100
|
+
expect { client.chat_postMessage(channel: 'channel') }.to(
|
|
101
|
+
raise_error(ArgumentError, /Required arguments :text, :attachments or :blocks missing/)
|
|
102
|
+
)
|
|
18
103
|
end
|
|
19
104
|
it 'only text' do
|
|
20
105
|
expect(client).to receive(:post).with('chat.postMessage', hash_including(text: 'text'))
|
|
21
|
-
expect { client.chat_postMessage(channel: 'channel', text: 'text') }.
|
|
106
|
+
expect { client.chat_postMessage(channel: 'channel', text: 'text') }.not_to raise_error
|
|
22
107
|
end
|
|
23
108
|
it 'only attachments' do
|
|
24
109
|
expect(client).to receive(:post).with('chat.postMessage', hash_including(attachments: '[]'))
|
|
25
|
-
expect { client.chat_postMessage(channel: 'channel', attachments: []) }.
|
|
110
|
+
expect { client.chat_postMessage(channel: 'channel', attachments: []) }.not_to raise_error
|
|
111
|
+
end
|
|
112
|
+
it 'only blocks' do
|
|
113
|
+
expect(client).to receive(:post).with('chat.postMessage', hash_including(blocks: '[]'))
|
|
114
|
+
expect { client.chat_postMessage(channel: 'channel', blocks: []) }.not_to raise_error
|
|
26
115
|
end
|
|
27
|
-
it '
|
|
28
|
-
expect(client).to
|
|
29
|
-
|
|
116
|
+
it 'all text, attachments and blocks' do
|
|
117
|
+
expect(client).to(
|
|
118
|
+
receive(:post)
|
|
119
|
+
.with('chat.postMessage', hash_including(text: 'text', attachments: '[]', blocks: '[]'))
|
|
120
|
+
)
|
|
121
|
+
expect do
|
|
122
|
+
client.chat_postMessage(channel: 'channel', text: 'text', attachments: [], blocks: [])
|
|
123
|
+
end.not_to raise_error
|
|
30
124
|
end
|
|
31
125
|
end
|
|
32
126
|
end
|
|
33
127
|
|
|
34
128
|
context 'chat_update' do
|
|
35
129
|
let(:ts) { '1405894322.002768' }
|
|
36
|
-
|
|
130
|
+
|
|
131
|
+
it 'automatically converts attachments and blocks into JSON' do
|
|
37
132
|
expect(client).to receive(:post).with(
|
|
38
133
|
'chat.update',
|
|
39
|
-
attachments: '[]',
|
|
40
134
|
channel: 'channel',
|
|
41
135
|
text: 'text',
|
|
42
|
-
ts: ts
|
|
136
|
+
ts: ts,
|
|
137
|
+
attachments: '[]',
|
|
138
|
+
blocks: '[]'
|
|
43
139
|
)
|
|
44
|
-
client.chat_update(
|
|
140
|
+
client.chat_update(channel: 'channel', text: 'text', ts: ts, attachments: [], blocks: [])
|
|
45
141
|
end
|
|
46
142
|
context 'ts arguments' do
|
|
47
143
|
it 'requires ts' do
|
|
48
|
-
expect
|
|
144
|
+
expect do
|
|
145
|
+
client.chat_update(channel: 'channel', text: 'text')
|
|
146
|
+
end.to raise_error(ArgumentError, /Required arguments :ts missing>/)
|
|
49
147
|
end
|
|
50
148
|
end
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
149
|
+
|
|
150
|
+
context 'text, attachment and blocks arguments' do
|
|
151
|
+
it 'requires text, attachments or blocks' do
|
|
152
|
+
expect { client.chat_update(channel: 'channel', ts: ts) }.to(
|
|
153
|
+
raise_error(ArgumentError, /Required arguments :text, :attachments or :blocks missing/)
|
|
154
|
+
)
|
|
54
155
|
end
|
|
55
156
|
it 'only text' do
|
|
56
157
|
expect(client).to receive(:post).with('chat.update', hash_including(text: 'text'))
|
|
57
|
-
expect
|
|
158
|
+
expect do
|
|
159
|
+
client.chat_update(channel: 'channel', text: 'text', ts: ts)
|
|
160
|
+
end.not_to raise_error
|
|
58
161
|
end
|
|
59
162
|
it 'only attachments' do
|
|
60
163
|
expect(client).to receive(:post).with('chat.update', hash_including(attachments: '[]'))
|
|
61
|
-
expect
|
|
164
|
+
expect do
|
|
165
|
+
client.chat_update(channel: 'channel', ts: ts, attachments: [])
|
|
166
|
+
end.not_to raise_error
|
|
167
|
+
end
|
|
168
|
+
it 'only blocks' do
|
|
169
|
+
expect(client).to receive(:post).with('chat.update', hash_including(blocks: '[]'))
|
|
170
|
+
expect do
|
|
171
|
+
client.chat_update(channel: 'channel', ts: ts, blocks: [])
|
|
172
|
+
end.not_to raise_error
|
|
62
173
|
end
|
|
63
|
-
it '
|
|
64
|
-
expect(client).to
|
|
65
|
-
|
|
174
|
+
it 'all text, attachments and blocks' do
|
|
175
|
+
expect(client).to(
|
|
176
|
+
receive(:post)
|
|
177
|
+
.with('chat.update', hash_including(text: 'text', attachments: '[]', blocks: '[]'))
|
|
178
|
+
)
|
|
179
|
+
expect do
|
|
180
|
+
client.chat_update(channel: 'channel', text: 'text', ts: ts, attachments: [], blocks: [])
|
|
181
|
+
end.not_to raise_error
|
|
66
182
|
end
|
|
67
183
|
end
|
|
68
184
|
end
|