slack-ruby-client 0.13.1 → 1.0.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 +4 -4
- data/.github/FUNDING.yml +1 -0
- data/.gitignore +1 -0
- data/.rubocop.yml +29 -5
- data/.rubocop_todo.yml +124 -44
- data/.travis.yml +5 -8
- data/CHANGELOG.md +92 -2
- data/CONTRIBUTING.md +19 -8
- data/Dangerfile +2 -0
- data/Gemfile +10 -5
- data/LICENSE.md +1 -1
- data/README.md +186 -49
- data/RELEASING.md +1 -1
- data/Rakefile +2 -1
- data/UPGRADING.md +72 -2
- data/bin/commands/admin_analytics.rb +16 -0
- data/bin/commands/admin_apps.rb +51 -0
- data/bin/commands/admin_apps_approved.rb +17 -0
- data/bin/commands/admin_apps_requests.rb +17 -0
- data/bin/commands/admin_apps_restricted.rb +17 -0
- data/bin/commands/admin_auth_policy.rb +39 -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 +98 -0
- data/bin/commands/admin_users_session.rb +78 -0
- data/bin/commands/api.rb +1 -1
- 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_manifest.rb +51 -0
- data/bin/commands/apps_permissions.rb +1 -0
- data/bin/commands/apps_permissions_resources.rb +1 -0
- data/bin/commands/apps_permissions_scopes.rb +1 -0
- data/bin/commands/apps_permissions_users.rb +1 -0
- data/bin/commands/auth.rb +1 -0
- data/bin/commands/auth_teams.rb +16 -0
- data/bin/commands/bots.rb +2 -0
- data/bin/commands/calls.rb +52 -0
- data/bin/commands/calls_participants.rb +25 -0
- data/bin/commands/channels.rb +1 -153
- data/bin/commands/chat.rb +56 -12
- data/bin/commands/chat_scheduledMessages.rb +19 -0
- data/bin/commands/conversations.rb +75 -5
- data/bin/commands/dialog.rb +1 -0
- data/bin/commands/dnd.rb +6 -3
- data/bin/commands/emoji.rb +1 -0
- data/bin/commands/files.rb +10 -18
- data/bin/commands/files_comments.rb +1 -21
- data/bin/commands/files_remote.rb +78 -0
- data/bin/commands/groups.rb +1 -161
- data/bin/commands/im.rb +1 -62
- data/bin/commands/migration.rb +2 -0
- data/bin/commands/mpim.rb +1 -60
- data/bin/commands/oauth.rb +2 -14
- data/bin/commands/oauth_v2.rb +29 -0
- data/bin/commands/openid_connect.rb +27 -0
- data/bin/commands/pins.rb +3 -6
- data/bin/commands/reactions.rb +3 -3
- data/bin/commands/reminders.rb +7 -0
- data/bin/commands/rtm.rb +3 -2
- data/bin/commands/search.rb +6 -1
- data/bin/commands/stars.rb +8 -6
- data/bin/commands/team.rb +5 -0
- data/bin/commands/team_billing.rb +13 -0
- data/bin/commands/team_preferences.rb +13 -0
- data/bin/commands/team_profile.rb +1 -0
- data/bin/commands/tooling_tokens.rb +14 -0
- data/bin/commands/usergroups.rb +7 -1
- data/bin/commands/usergroups_users.rb +3 -0
- data/bin/commands/users.rb +6 -4
- data/bin/commands/users_admin.rb +1 -0
- data/bin/commands/users_prefs.rb +1 -0
- data/bin/commands/users_profile.rb +6 -5
- data/bin/commands/views.rb +48 -0
- data/bin/commands/workflows.rb +38 -0
- data/bin/commands.rb +38 -8
- data/bin/slack +2 -3
- data/examples/hi_real_time_and_web/Gemfile +1 -0
- data/examples/hi_real_time_and_web/hi.rb +7 -3
- data/examples/hi_real_time_async_async/Gemfile +1 -0
- data/examples/hi_real_time_async_async/hi.rb +6 -2
- data/examples/hi_web/Gemfile +1 -0
- data/examples/hi_web/hi.rb +1 -0
- data/examples/new_ticket/Gemfile +1 -0
- data/examples/new_ticket/new_ticket.rb +1 -0
- data/lib/slack/config.rb +2 -2
- data/lib/slack/events/config.rb +32 -0
- data/lib/slack/events/request.rb +72 -0
- data/lib/slack/logger.rb +6 -5
- data/lib/slack/messages/formatting.rb +1 -0
- data/lib/slack/messages/message.rb +1 -4
- 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/typing.rb +3 -1
- data/lib/slack/real_time/client.rb +101 -32
- data/lib/slack/real_time/concurrency/async.rb +77 -6
- data/lib/slack/real_time/concurrency.rb +1 -2
- data/lib/slack/real_time/config.rb +6 -10
- data/lib/slack/real_time/models/base.rb +1 -4
- 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/models.rb +1 -0
- data/lib/slack/real_time/socket.rb +45 -17
- data/lib/slack/real_time/stores/base.rb +5 -7
- data/lib/slack/real_time/stores/starter.rb +17 -3
- data/lib/slack/real_time/stores/store.rb +33 -25
- data/lib/slack/real_time/stores.rb +1 -0
- data/lib/slack/version.rb +2 -1
- data/lib/slack/web/api/endpoints/admin_analytics.rb +28 -0
- data/lib/slack/web/api/endpoints/admin_apps.rb +78 -0
- data/lib/slack/web/api/endpoints/admin_apps_approved.rb +35 -0
- data/lib/slack/web/api/endpoints/admin_apps_requests.rb +35 -0
- data/lib/slack/web/api/endpoints/admin_apps_restricted.rb +35 -0
- data/lib/slack/web/api/endpoints/admin_auth_policy.rb +72 -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 +163 -0
- data/lib/slack/web/api/endpoints/admin_users_session.rb +122 -0
- data/lib/slack/web/api/endpoints/api.rb +2 -3
- 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_manifest.rb +75 -0
- data/lib/slack/web/api/endpoints/apps_permissions.rb +1 -0
- data/lib/slack/web/api/endpoints/apps_permissions_resources.rb +1 -0
- data/lib/slack/web/api/endpoints/apps_permissions_scopes.rb +1 -0
- data/lib/slack/web/api/endpoints/apps_permissions_users.rb +1 -0
- data/lib/slack/web/api/endpoints/auth.rb +2 -1
- data/lib/slack/web/api/endpoints/auth_teams.rb +33 -0
- data/lib/slack/web/api/endpoints/bots.rb +4 -1
- 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 +2 -243
- data/lib/slack/web/api/endpoints/chat.rb +144 -47
- data/lib/slack/web/api/endpoints/chat_scheduledMessages.rb +40 -0
- data/lib/slack/web/api/endpoints/conversations.rb +152 -41
- data/lib/slack/web/api/endpoints/dialog.rb +3 -2
- data/lib/slack/web/api/endpoints/dnd.rb +9 -4
- data/lib/slack/web/api/endpoints/emoji.rb +1 -0
- data/lib/slack/web/api/endpoints/files.rb +24 -29
- data/lib/slack/web/api/endpoints/files_comments.rb +2 -34
- data/lib/slack/web/api/endpoints/files_remote.rb +127 -0
- data/lib/slack/web/api/endpoints/groups.rb +1 -253
- data/lib/slack/web/api/endpoints/im.rb +1 -101
- data/lib/slack/web/api/endpoints/migration.rb +5 -2
- data/lib/slack/web/api/endpoints/mpim.rb +1 -96
- data/lib/slack/web/api/endpoints/oauth.rb +7 -31
- data/lib/slack/web/api/endpoints/oauth_v2.rb +48 -0
- data/lib/slack/web/api/endpoints/openid_connect.rb +42 -0
- data/lib/slack/web/api/endpoints/pins.rb +8 -15
- data/lib/slack/web/api/endpoints/reactions.rb +20 -19
- data/lib/slack/web/api/endpoints/reminders.rb +18 -5
- data/lib/slack/web/api/endpoints/rtm.rb +11 -10
- data/lib/slack/web/api/endpoints/search.rb +28 -13
- data/lib/slack/web/api/endpoints/stars.rb +14 -11
- data/lib/slack/web/api/endpoints/team.rb +13 -4
- data/lib/slack/web/api/endpoints/team_billing.rb +21 -0
- data/lib/slack/web/api/endpoints/team_preferences.rb +21 -0
- data/lib/slack/web/api/endpoints/team_profile.rb +2 -1
- data/lib/slack/web/api/endpoints/tooling_tokens.rb +24 -0
- data/lib/slack/web/api/endpoints/usergroups.rb +27 -16
- data/lib/slack/web/api/endpoints/usergroups_users.rb +10 -5
- data/lib/slack/web/api/endpoints/users.rb +21 -20
- data/lib/slack/web/api/endpoints/users_admin.rb +1 -0
- data/lib/slack/web/api/endpoints/users_prefs.rb +1 -0
- data/lib/slack/web/api/endpoints/users_profile.rb +8 -7
- 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/endpoints.rb +76 -18
- data/lib/slack/web/api/error.rb +1 -0
- data/lib/slack/web/api/errors/server_error.rb +37 -0
- data/lib/slack/web/api/errors/slack_error.rb +14 -1
- data/lib/slack/web/api/errors/too_many_requests_error.rb +2 -4
- data/lib/slack/web/api/errors.rb +1040 -0
- data/lib/slack/web/api/mixins/{channels.id.rb → conversations.id.rb} +4 -5
- data/lib/slack/web/api/mixins/ids.id.rb +3 -2
- data/lib/slack/web/api/mixins/users.id.rb +2 -3
- data/lib/slack/web/api/mixins/users.search.rb +1 -0
- data/lib/slack/web/api/mixins.rb +2 -2
- data/lib/slack/web/api/patches/chat.1.patch +70 -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 +1 -0
- data/lib/slack/web/api/templates/commands.erb +1 -0
- data/lib/slack/web/api/templates/endpoints.erb +2 -2
- data/lib/slack/web/api/templates/errors.erb +20 -0
- data/lib/slack/web/api/templates/method.erb +5 -1
- data/lib/slack/web/api/templates/method_spec.erb +2 -1
- data/lib/slack/web/client.rb +2 -1
- data/lib/slack/web/config.rb +3 -0
- data/lib/slack/web/faraday/connection.rb +24 -20
- data/lib/slack/web/faraday/request.rb +3 -1
- data/lib/slack/web/faraday/response/raise_error.rb +21 -6
- data/lib/slack/web/faraday/response/wrap_error.rb +24 -0
- data/lib/slack/web/pagination/cursor.rb +7 -7
- data/lib/slack-ruby-client.rb +10 -4
- data/lib/slack.rb +1 -0
- data/lib/slack_ruby_client.rb +1 -0
- data/lib/tasks/git.rake +1 -0
- data/lib/tasks/real_time.rake +15 -5
- data/lib/tasks/update.rake +1 -0
- data/lib/tasks/web.rake +39 -10
- data/screenshots/create-app.png +0 -0
- data/slack-ruby-client.gemspec +9 -6
- data/spec/fixtures/slack/web/429_error.yml +50 -54
- data/spec/fixtures/slack/web/auth_test_error.yml +51 -18
- data/spec/fixtures/slack/web/auth_test_success.yml +50 -26
- data/spec/fixtures/slack/web/conversations_info.yml +167 -0
- data/spec/fixtures/slack/web/conversations_setTopic.yml +84 -0
- data/spec/fixtures/slack/web/conversations_setTopic_one_page.yml +172 -0
- data/spec/fixtures/slack/web/conversations_setTopic_paginated.yml +253 -0
- data/spec/fixtures/slack/web/paginated_users_list.yml +501 -69
- data/spec/fixtures/slack/web/rtm_connect.yml +267 -30
- data/spec/fixtures/slack/web/rtm_start.yml +771 -60
- data/spec/fixtures/slack/web/users_info.yml +153 -69
- data/spec/fixtures/slack/web/users_list.yml +102 -41
- data/spec/fixtures/slack/web/views_open_error.yml +83 -0
- data/spec/integration/integration_spec.rb +115 -47
- data/spec/slack/config_spec.rb +2 -0
- data/spec/slack/events/config_spec.rb +33 -0
- data/spec/slack/events/request_spec.rb +184 -0
- data/spec/slack/messages/formatting_spec.rb +25 -13
- 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 +244 -50
- data/spec/slack/real_time/concurrency/it_behaves_like_a_realtime_socket.rb +2 -0
- data/spec/slack/real_time/concurrency/with_concurrency_spec.rb +10 -0
- data/spec/slack/real_time/concurrency/without_concurrency_spec.rb +10 -0
- data/spec/slack/real_time/event_handlers/bot_spec.rb +3 -2
- data/spec/slack/real_time/event_handlers/channel_spec.rb +10 -7
- data/spec/slack/real_time/event_handlers/event_handlers_spec.rb +2 -1
- data/spec/slack/real_time/event_handlers/group_spec.rb +5 -4
- data/spec/slack/real_time/event_handlers/im_spec.rb +9 -8
- data/spec/slack/real_time/event_handlers/team_spec.rb +3 -1
- data/spec/slack/real_time/event_handlers/user_spec.rb +3 -2
- data/spec/slack/real_time/rtm_connect_spec.rb +2 -1
- data/spec/slack/real_time/rtm_start_spec.rb +2 -1
- data/spec/slack/real_time/store_spec.rb +2 -1
- data/spec/slack/slack_spec.rb +40 -6
- 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 +18 -0
- data/spec/slack/web/api/endpoints/admin_auth_policy_spec.rb +35 -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_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 +41 -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_manifest_spec.rb +36 -0
- data/spec/slack/web/api/endpoints/apps_spec.rb +16 -0
- data/spec/slack/web/api/endpoints/{apps_permissions_scopes_spec.rb → auth_teams_spec.rb} +2 -1
- 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/custom_specs/auth_spec.rb +9 -7
- data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +112 -36
- data/spec/slack/web/api/endpoints/custom_specs/conversations_spec.rb +13 -0
- data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +12 -4
- data/spec/slack/web/api/endpoints/custom_specs/users_spec.rb +8 -3
- data/spec/slack/web/api/endpoints/custom_specs/views_spec.rb +95 -0
- data/spec/slack/web/api/endpoints/dnd_spec.rb +4 -3
- 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 +5 -4
- data/spec/slack/web/api/endpoints/migration_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/oauth_spec.rb +1 -22
- data/spec/slack/web/api/endpoints/oauth_v2_spec.rb +16 -0
- data/spec/slack/web/api/endpoints/openid_connect_spec.rb +8 -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/{apps_permissions_resources_spec.rb → team_billing_spec.rb} +2 -1
- data/spec/slack/web/api/endpoints/team_preferences_spec.rb +8 -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/tooling_tokens_spec.rb +13 -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 +1 -0
- data/spec/slack/web/api/endpoints/users_prefs_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/users_profile_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/workflows_spec.rb +26 -0
- data/spec/slack/web/api/error_spec.rb +7 -7
- data/spec/slack/web/api/errors/slack_error_spec.rb +26 -7
- 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/users_spec.rb +17 -8
- data/spec/slack/web/api/pagination/cursor_spec.rb +41 -13
- data/spec/slack/web/client_spec.rb +168 -19
- data/spec/slack/web/faraday/request_spec.rb +80 -0
- data/spec/slack/web/faraday/response/raise_error_spec.rb +48 -12
- data/spec/spec_helper.rb +9 -2
- data/spec/support/queue_with_timeout.rb +5 -4
- data/spec/support/real_time/concurrency/mock.rb +1 -0
- data/spec/support/real_time/connected_client.rb +6 -6
- data/spec/support/real_time/event.rb +1 -0
- data/spec/support/token.rb +1 -0
- data/spec/support/vcr.rb +37 -1
- metadata +205 -147
- 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_celluloid/Procfile +0 -2
- data/examples/hi_real_time_async_celluloid/hi.rb +0 -35
- data/examples/hi_real_time_async_eventmachine/Gemfile +0 -6
- data/examples/hi_real_time_async_eventmachine/Procfile +0 -2
- data/examples/hi_real_time_async_eventmachine/hi.rb +0 -35
- data/lib/slack/real_time/concurrency/celluloid.rb +0 -118
- data/lib/slack/real_time/concurrency/eventmachine.rb +0 -66
- data/lib/slack/web/api/mixins/channels.id.json +0 -20
- data/lib/slack/web/api/mixins/groups.id.json +0 -20
- data/lib/slack/web/api/mixins/groups.id.rb +0 -26
- 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 -21
- data/lib/slack/web/api/patches/chat.4.postEphemeral-attachments-support.patch +0 -17
- data/lib/slack/web/api/patches/chat.5.postEphemeral-text-or-attachments.patch +0 -13
- data/screenshots/register-bot.png +0 -0
- data/spec/fixtures/slack/web/503_error.yml +0 -14
- data/spec/fixtures/slack/web/channels_info.yml +0 -46
- data/spec/fixtures/slack/web/groups_info.yml +0 -43
- data/spec/slack/real_time/concurrency/celluloid_spec.rb +0 -106
- data/spec/slack/real_time/concurrency/eventmachine_spec.rb +0 -47
- data/spec/slack/web/api/endpoints/apps_permissions_spec.rb +0 -15
- data/spec/slack/web/api/endpoints/apps_permissions_users_spec.rb +0 -18
- data/spec/slack/web/api/endpoints/conversations_spec.rb +0 -100
- data/spec/slack/web/api/endpoints/custom_specs/channels_spec.rb +0 -11
- data/spec/slack/web/api/endpoints/custom_specs/groups_spec.rb +0 -11
- data/spec/slack/web/api/endpoints/im_spec.rb +0 -38
- data/spec/slack/web/api/endpoints/mpim_spec.rb +0 -38
- data/spec/slack/web/api/errors/service_unavailable_spec.rb +0 -14
- data/spec/slack/web/api/mixins/channels_spec.rb +0 -33
- data/spec/slack/web/api/mixins/groups_spec.rb +0 -33
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
require_relative './it_behaves_like_a_realtime_socket'
|
|
3
|
-
|
|
4
|
-
begin
|
|
5
|
-
RSpec.describe Slack::RealTime::Concurrency::Celluloid::Socket do
|
|
6
|
-
it_behaves_like 'a realtime socket'
|
|
7
|
-
|
|
8
|
-
let(:url) { 'wss://echo.websocket.org/websocket/xyz' }
|
|
9
|
-
let(:logger) { ::Logger.new(STDOUT) }
|
|
10
|
-
|
|
11
|
-
let(:driver) { WebSocket::Driver::Client }
|
|
12
|
-
let(:ws) { double(driver) }
|
|
13
|
-
subject { socket }
|
|
14
|
-
|
|
15
|
-
['', nil].each do |data|
|
|
16
|
-
context "finishing run_loop with #{data ? 'empty' : 'nil'} read" do
|
|
17
|
-
let(:ssl_socket) do
|
|
18
|
-
Class.new(Celluloid::IO::SSLSocket) do
|
|
19
|
-
def initialize(data)
|
|
20
|
-
@data = data
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def connect; end
|
|
24
|
-
|
|
25
|
-
def readpartial(_size)
|
|
26
|
-
@data
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
let(:test_socket) do
|
|
32
|
-
Class.new(described_class) do
|
|
33
|
-
def build_socket
|
|
34
|
-
options[:ssl_socket].new(options[:data])
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
let(:socket) do
|
|
40
|
-
test_socket.new(url, logger: logger, data: data, ssl_socket: ssl_socket)
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
context 'with a driver' do
|
|
44
|
-
before do
|
|
45
|
-
socket.instance_variable_set('@driver', ws)
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
context 'consumes data' do
|
|
49
|
-
it 'runs' do
|
|
50
|
-
expect(ws).to receive(:emit)
|
|
51
|
-
expect(ws).to receive(:start)
|
|
52
|
-
expect(logger).to receive(:debug).with("#{test_socket}#run_loop")
|
|
53
|
-
socket.run_loop
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
[EOFError, Errno::ECONNRESET, Errno::EPIPE].each do |err|
|
|
61
|
-
context "finishing run_loop with #{err}" do
|
|
62
|
-
let(:test_socket) do
|
|
63
|
-
Class.new(described_class) do
|
|
64
|
-
def read
|
|
65
|
-
raise options[:err]
|
|
66
|
-
end
|
|
67
|
-
end
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
let(:socket) do
|
|
71
|
-
test_socket.new(url, logger: logger, err: err)
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
context 'with a driver' do
|
|
75
|
-
before do
|
|
76
|
-
socket.instance_variable_set('@driver', ws)
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
describe '#disconnect!' do
|
|
80
|
-
it 'closes and nils the websocket' do
|
|
81
|
-
expect(ws).to receive(:close)
|
|
82
|
-
socket.disconnect!
|
|
83
|
-
end
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
context 'consumes data' do
|
|
87
|
-
it 'runs' do
|
|
88
|
-
expect(ws).to receive(:emit)
|
|
89
|
-
expect(ws).to receive(:start)
|
|
90
|
-
expect(logger).to receive(:debug).with("#{test_socket}#run_loop")
|
|
91
|
-
socket.run_loop
|
|
92
|
-
end
|
|
93
|
-
end
|
|
94
|
-
end
|
|
95
|
-
end
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
describe '#connect!' do
|
|
99
|
-
pending 'connects'
|
|
100
|
-
pending 'pings every 30s'
|
|
101
|
-
end
|
|
102
|
-
|
|
103
|
-
pending 'send_data'
|
|
104
|
-
end
|
|
105
|
-
rescue LoadError
|
|
106
|
-
end
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
require_relative './it_behaves_like_a_realtime_socket'
|
|
3
|
-
|
|
4
|
-
begin
|
|
5
|
-
RSpec.describe Slack::RealTime::Concurrency::Eventmachine::Socket do
|
|
6
|
-
it_behaves_like 'a realtime socket'
|
|
7
|
-
context 'with url' do
|
|
8
|
-
let(:url) { 'wss://ms174.slack-msgs.com/websocket/xyz' }
|
|
9
|
-
let(:logger) { ::Logger.new($stdout) }
|
|
10
|
-
let(:socket) { described_class.new(url, ping: 42, logger: logger) }
|
|
11
|
-
let(:ws) { double(Faye::WebSocket::Client) }
|
|
12
|
-
describe '#connect!' do
|
|
13
|
-
before do
|
|
14
|
-
allow(ws).to receive(:on).with(:close)
|
|
15
|
-
end
|
|
16
|
-
it 'connects' do
|
|
17
|
-
allow(Faye::WebSocket::Client).to receive(:new).and_return(ws)
|
|
18
|
-
socket.connect!
|
|
19
|
-
expect(socket.instance_variable_get('@driver')).to eq ws
|
|
20
|
-
end
|
|
21
|
-
it 'pings every 30s' do
|
|
22
|
-
expect(Faye::WebSocket::Client).to receive(:new).with(url, nil, ping: 42, logger: logger).and_return(ws)
|
|
23
|
-
socket.connect!
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
describe '#disconnect!' do
|
|
27
|
-
it 'closes and nils the websocket' do
|
|
28
|
-
socket.instance_variable_set('@driver', ws)
|
|
29
|
-
expect(ws).to receive(:close)
|
|
30
|
-
socket.disconnect!
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
describe 'send_data' do
|
|
34
|
-
before do
|
|
35
|
-
allow(Faye::WebSocket::Client).to receive(:new).and_return(ws)
|
|
36
|
-
allow(ws).to receive(:on)
|
|
37
|
-
socket.connect!
|
|
38
|
-
end
|
|
39
|
-
it 'sends data' do
|
|
40
|
-
expect(ws).to receive(:send).with('data')
|
|
41
|
-
socket.send_data('data')
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
rescue LoadError
|
|
47
|
-
end
|
|
@@ -1,15 +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::AppsPermissions do
|
|
6
|
-
let(:client) { Slack::Web::Client.new }
|
|
7
|
-
context 'apps.permissions_request' do
|
|
8
|
-
it 'requires scopes' do
|
|
9
|
-
expect { client.apps_permissions_request(trigger_id: ' ') }.to raise_error ArgumentError, /Required arguments :scopes missing/
|
|
10
|
-
end
|
|
11
|
-
it 'requires trigger_id' do
|
|
12
|
-
expect { client.apps_permissions_request(scopes: ' ') }.to raise_error ArgumentError, /Required arguments :trigger_id missing/
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
end
|
|
@@ -1,18 +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::AppsPermissionsUsers do
|
|
6
|
-
let(:client) { Slack::Web::Client.new }
|
|
7
|
-
context 'apps.permissions.users_request' do
|
|
8
|
-
it 'requires scopes' do
|
|
9
|
-
expect { client.apps_permissions_users_request(trigger_id: ' ', user: ' ') }.to raise_error ArgumentError, /Required arguments :scopes missing/
|
|
10
|
-
end
|
|
11
|
-
it 'requires trigger_id' do
|
|
12
|
-
expect { client.apps_permissions_users_request(scopes: ' ', user: ' ') }.to raise_error ArgumentError, /Required arguments :trigger_id missing/
|
|
13
|
-
end
|
|
14
|
-
it 'requires user' do
|
|
15
|
-
expect { client.apps_permissions_users_request(scopes: ' ', trigger_id: ' ') }.to raise_error ArgumentError, /Required arguments :user missing/
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
end
|
|
@@ -1,100 +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::Conversations do
|
|
6
|
-
let(:client) { Slack::Web::Client.new }
|
|
7
|
-
context 'conversations_archive' do
|
|
8
|
-
it 'requires channel' do
|
|
9
|
-
expect { client.conversations_archive }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
context 'conversations_close' do
|
|
13
|
-
it 'requires channel' do
|
|
14
|
-
expect { client.conversations_close }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
context 'conversations_create' do
|
|
18
|
-
it 'requires name' do
|
|
19
|
-
expect { client.conversations_create }.to raise_error ArgumentError, /Required arguments :name missing/
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
context 'conversations_history' do
|
|
23
|
-
it 'requires channel' do
|
|
24
|
-
expect { client.conversations_history }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
context 'conversations_info' do
|
|
28
|
-
it 'requires channel' do
|
|
29
|
-
expect { client.conversations_info }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
context 'conversations_invite' do
|
|
33
|
-
it 'requires channel' do
|
|
34
|
-
expect { client.conversations_invite(users: 'W1234567890,U2345678901,U3456789012') }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
35
|
-
end
|
|
36
|
-
it 'requires users' do
|
|
37
|
-
expect { client.conversations_invite(channel: 'C1234567890') }.to raise_error ArgumentError, /Required arguments :users missing/
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
context 'conversations_join' do
|
|
41
|
-
it 'requires channel' do
|
|
42
|
-
expect { client.conversations_join }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
context 'conversations_kick' do
|
|
46
|
-
it 'requires channel' do
|
|
47
|
-
expect { client.conversations_kick(user: 'W1234567890') }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
48
|
-
end
|
|
49
|
-
it 'requires user' do
|
|
50
|
-
expect { client.conversations_kick(channel: 'C1234567890') }.to raise_error ArgumentError, /Required arguments :user missing/
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
context 'conversations_leave' do
|
|
54
|
-
it 'requires channel' do
|
|
55
|
-
expect { client.conversations_leave }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
56
|
-
end
|
|
57
|
-
end
|
|
58
|
-
context 'conversations_members' do
|
|
59
|
-
it 'requires channel' do
|
|
60
|
-
expect { client.conversations_members }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
61
|
-
end
|
|
62
|
-
end
|
|
63
|
-
context 'conversations_rename' do
|
|
64
|
-
it 'requires channel' do
|
|
65
|
-
expect { client.conversations_rename(name: ' ') }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
66
|
-
end
|
|
67
|
-
it 'requires name' do
|
|
68
|
-
expect { client.conversations_rename(channel: 'C1234567890') }.to raise_error ArgumentError, /Required arguments :name missing/
|
|
69
|
-
end
|
|
70
|
-
end
|
|
71
|
-
context 'conversations_replies' do
|
|
72
|
-
it 'requires channel' do
|
|
73
|
-
expect { client.conversations_replies(ts: '1234567890.123456') }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
74
|
-
end
|
|
75
|
-
it 'requires ts' do
|
|
76
|
-
expect { client.conversations_replies(channel: 'C1234567890') }.to raise_error ArgumentError, /Required arguments :ts missing/
|
|
77
|
-
end
|
|
78
|
-
end
|
|
79
|
-
context 'conversations_setPurpose' do
|
|
80
|
-
it 'requires channel' do
|
|
81
|
-
expect { client.conversations_setPurpose(purpose: 'My More Special Purpose') }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
82
|
-
end
|
|
83
|
-
it 'requires purpose' do
|
|
84
|
-
expect { client.conversations_setPurpose(channel: 'C1234567890') }.to raise_error ArgumentError, /Required arguments :purpose missing/
|
|
85
|
-
end
|
|
86
|
-
end
|
|
87
|
-
context 'conversations_setTopic' do
|
|
88
|
-
it 'requires channel' do
|
|
89
|
-
expect { client.conversations_setTopic(topic: 'Apply topically for best effects') }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
90
|
-
end
|
|
91
|
-
it 'requires topic' do
|
|
92
|
-
expect { client.conversations_setTopic(channel: 'C1234567890') }.to raise_error ArgumentError, /Required arguments :topic missing/
|
|
93
|
-
end
|
|
94
|
-
end
|
|
95
|
-
context 'conversations_unarchive' do
|
|
96
|
-
it 'requires channel' do
|
|
97
|
-
expect { client.conversations_unarchive }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
98
|
-
end
|
|
99
|
-
end
|
|
100
|
-
end
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
RSpec.describe Slack::Web::Api::Endpoints::Channels do
|
|
4
|
-
let(:client) { Slack::Web::Client.new }
|
|
5
|
-
context 'channels' do
|
|
6
|
-
it 'info', vcr: { cassette_name: 'web/channels_info' } do
|
|
7
|
-
json = client.channels_info(channel: '#general')
|
|
8
|
-
expect(json.channel.name).to eq 'general'
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
end
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
RSpec.describe Slack::Web::Api::Endpoints::Groups do
|
|
4
|
-
let(:client) { Slack::Web::Client.new }
|
|
5
|
-
context 'groups' do
|
|
6
|
-
it 'info', vcr: { cassette_name: 'web/groups_info' } do
|
|
7
|
-
json = client.groups_info(channel: '#mpdm-dblock--rubybot--player1-1')
|
|
8
|
-
expect(json.group.name).to eq 'mpdm-dblock--rubybot--player1-1'
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
end
|
|
@@ -1,38 +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::Im do
|
|
6
|
-
let(:client) { Slack::Web::Client.new }
|
|
7
|
-
context 'im_close' do
|
|
8
|
-
it 'requires channel' do
|
|
9
|
-
expect { client.im_close }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
context 'im_history' do
|
|
13
|
-
it 'requires channel' do
|
|
14
|
-
expect { client.im_history }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
context 'im_mark' do
|
|
18
|
-
it 'requires channel' do
|
|
19
|
-
expect { client.im_mark(ts: '1234567890.123456') }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
20
|
-
end
|
|
21
|
-
it 'requires ts' do
|
|
22
|
-
expect { client.im_mark(channel: 'D1234567890') }.to raise_error ArgumentError, /Required arguments :ts missing/
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
context 'im_open' do
|
|
26
|
-
it 'requires user' do
|
|
27
|
-
expect { client.im_open }.to raise_error ArgumentError, /Required arguments :user missing/
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
context 'im_replies' do
|
|
31
|
-
it 'requires channel' do
|
|
32
|
-
expect { client.im_replies(thread_ts: '1234567890.123456') }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
33
|
-
end
|
|
34
|
-
it 'requires thread_ts' do
|
|
35
|
-
expect { client.im_replies(channel: 'C1234567890') }.to raise_error ArgumentError, /Required arguments :thread_ts missing/
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
end
|
|
@@ -1,38 +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::Mpim do
|
|
6
|
-
let(:client) { Slack::Web::Client.new }
|
|
7
|
-
context 'mpim_close' do
|
|
8
|
-
it 'requires channel' do
|
|
9
|
-
expect { client.mpim_close }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
context 'mpim_history' do
|
|
13
|
-
it 'requires channel' do
|
|
14
|
-
expect { client.mpim_history }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
context 'mpim_mark' do
|
|
18
|
-
it 'requires channel' do
|
|
19
|
-
expect { client.mpim_mark(ts: '1234567890.123456') }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
20
|
-
end
|
|
21
|
-
it 'requires ts' do
|
|
22
|
-
expect { client.mpim_mark(channel: 'G1234567890') }.to raise_error ArgumentError, /Required arguments :ts missing/
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
context 'mpim_open' do
|
|
26
|
-
it 'requires users' do
|
|
27
|
-
expect { client.mpim_open }.to raise_error ArgumentError, /Required arguments :users missing/
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
context 'mpim_replies' do
|
|
31
|
-
it 'requires channel' do
|
|
32
|
-
expect { client.mpim_replies(thread_ts: '1234567890.123456') }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
33
|
-
end
|
|
34
|
-
it 'requires thread_ts' do
|
|
35
|
-
expect { client.mpim_replies(channel: 'C1234567890') }.to raise_error ArgumentError, /Required arguments :thread_ts missing/
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
end
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
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
|
|
6
|
-
begin
|
|
7
|
-
client.auth_test
|
|
8
|
-
raise 'Expected to receive Faraday::ClientError.'
|
|
9
|
-
rescue Faraday::ClientError => e
|
|
10
|
-
expect(e.response).to_not be_nil
|
|
11
|
-
expect(e.response[:status]).to eq 503
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
end
|
|
@@ -1,33 +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(
|
|
14
|
-
Slack::Messages::Message.new(
|
|
15
|
-
'channels' => [{
|
|
16
|
-
'id' => 'CDEADBEEF',
|
|
17
|
-
'name' => 'general'
|
|
18
|
-
}]
|
|
19
|
-
)
|
|
20
|
-
)
|
|
21
|
-
end
|
|
22
|
-
context '#channels_id' do
|
|
23
|
-
it 'leaves channels specified by ID alone' do
|
|
24
|
-
expect(subject.channels_id(channel: 'C123456')).to eq('ok' => true, 'channel' => { 'id' => 'C123456' })
|
|
25
|
-
end
|
|
26
|
-
it 'translates a channel that starts with a #' do
|
|
27
|
-
expect(subject.channels_id(channel: '#general')).to eq('ok' => true, 'channel' => { 'id' => 'CDEADBEEF' })
|
|
28
|
-
end
|
|
29
|
-
it 'fails with an exception' do
|
|
30
|
-
expect { subject.channels_id(channel: '#invalid') }.to raise_error Slack::Web::Api::Errors::SlackError, 'channel_not_found'
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
|
@@ -1,33 +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(
|
|
14
|
-
Slack::Messages::Message.new(
|
|
15
|
-
'groups' => [{
|
|
16
|
-
'id' => 'CDEADBEEF',
|
|
17
|
-
'name' => 'general'
|
|
18
|
-
}]
|
|
19
|
-
)
|
|
20
|
-
)
|
|
21
|
-
end
|
|
22
|
-
context '#groups_id' do
|
|
23
|
-
it 'leaves groups specified by ID alone' do
|
|
24
|
-
expect(subject.groups_id(channel: 'C123456')).to eq('ok' => true, 'group' => { 'id' => 'C123456' })
|
|
25
|
-
end
|
|
26
|
-
it 'translates a channel that starts with a #' do
|
|
27
|
-
expect(subject.groups_id(channel: '#general')).to eq('ok' => true, 'group' => { 'id' => 'CDEADBEEF' })
|
|
28
|
-
end
|
|
29
|
-
it 'fails with an exception' do
|
|
30
|
-
expect { subject.groups_id(channel: '#invalid') }.to raise_error Slack::Web::Api::Errors::SlackError, 'channel_not_found'
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|