slack-ruby-client 0.7.2 → 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 +5 -5
- data/.github/FUNDING.yml +1 -0
- data/.gitignore +2 -0
- data/.gitmodules +1 -1
- data/.rubocop.yml +37 -1
- data/.rubocop_todo.yml +130 -47
- data/.travis.yml +17 -13
- data/CHANGELOG.md +254 -43
- data/CONTRIBUTING.md +26 -15
- data/Dangerfile +3 -0
- data/Gemfile +13 -2
- data/LICENSE.md +1 -1
- data/README.md +287 -63
- data/RELEASING.md +22 -14
- data/Rakefile +2 -1
- data/UPGRADING.md +129 -5
- 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 +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_manifest.rb +51 -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 +12 -2
- data/bin/commands/auth_teams.rb +16 -0
- data/bin/commands/bots.rb +15 -0
- data/bin/commands/calls.rb +52 -0
- data/bin/commands/calls_participants.rb +25 -0
- data/bin/commands/channels.rb +6 -132
- data/bin/commands/chat.rb +127 -20
- data/bin/commands/chat_scheduledMessages.rb +19 -0
- data/bin/commands/conversations.rb +253 -0
- data/bin/commands/dialog.rb +15 -0
- data/bin/commands/dnd.rb +12 -9
- data/bin/commands/emoji.rb +3 -2
- data/bin/commands/files.rb +47 -31
- data/bin/commands/files_comments.rb +3 -23
- data/bin/commands/files_remote.rb +78 -0
- data/bin/commands/groups.rb +1 -154
- data/bin/commands/im.rb +1 -48
- data/bin/commands/migration.rb +16 -0
- data/bin/commands/mpim.rb +1 -48
- data/bin/commands/oauth.rb +4 -2
- data/bin/commands/oauth_v2.rb +29 -0
- data/bin/commands/openid_connect.rb +27 -0
- data/bin/commands/pins.rb +9 -12
- data/bin/commands/reactions.rb +17 -15
- data/bin/commands/reminders.rb +17 -10
- data/bin/commands/rtm.rb +19 -4
- data/bin/commands/search.rb +17 -12
- data/bin/commands/stars.rb +12 -9
- data/bin/commands/team.rb +23 -8
- data/bin/commands/team_billing.rb +13 -0
- data/bin/commands/team_preferences.rb +13 -0
- data/bin/commands/team_profile.rb +14 -0
- data/bin/commands/tooling_tokens.rb +14 -0
- data/bin/commands/usergroups.rb +23 -17
- data/bin/commands/usergroups_users.rb +7 -4
- data/bin/commands/users.rb +83 -27
- data/bin/commands/users_admin.rb +29 -0
- data/bin/commands/users_prefs.rb +13 -0
- data/bin/commands/users_profile.rb +27 -0
- data/bin/commands/views.rb +48 -0
- data/bin/commands/workflows.rb +38 -0
- data/bin/commands.rb +47 -5
- 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_celluloid → 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 +3 -2
- 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 +4 -4
- data/lib/slack/messages/message.rb +6 -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/templates/event_handler.erb +1 -1
- data/lib/slack/real_time/api/typing.rb +3 -1
- data/lib/slack/real_time/client.rb +116 -36
- data/lib/slack/real_time/concurrency/async.rb +138 -0
- data/lib/slack/real_time/concurrency.rb +2 -2
- data/lib/slack/real_time/config.rb +17 -19
- data/lib/slack/real_time/models/base.rb +3 -3
- 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 +8 -7
- data/lib/slack/real_time/socket.rb +51 -23
- data/lib/slack/real_time/stores/base.rb +6 -9
- data/lib/slack/real_time/stores/starter.rb +143 -69
- data/lib/slack/real_time/stores/store.rb +160 -82
- data/lib/slack/real_time/stores.rb +4 -3
- 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 +4 -5
- 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 +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 +14 -2
- data/lib/slack/web/api/endpoints/auth_teams.rb +33 -0
- data/lib/slack/web/api/endpoints/bots.rb +25 -0
- 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 +8 -201
- data/lib/slack/web/api/endpoints/chat.rb +252 -42
- data/lib/slack/web/api/endpoints/chat_scheduledMessages.rb +40 -0
- data/lib/slack/web/api/endpoints/conversations.rb +422 -0
- data/lib/slack/web/api/endpoints/dialog.rb +33 -0
- data/lib/slack/web/api/endpoints/dnd.rb +17 -12
- data/lib/slack/web/api/endpoints/emoji.rb +3 -2
- data/lib/slack/web/api/endpoints/files.rb +82 -43
- data/lib/slack/web/api/endpoints/files_comments.rb +4 -36
- data/lib/slack/web/api/endpoints/files_remote.rb +127 -0
- data/lib/slack/web/api/endpoints/groups.rb +1 -235
- data/lib/slack/web/api/endpoints/im.rb +1 -73
- data/lib/slack/web/api/endpoints/migration.rb +28 -0
- data/lib/slack/web/api/endpoints/mpim.rb +1 -72
- data/lib/slack/web/api/endpoints/oauth.rb +9 -10
- 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 +14 -23
- data/lib/slack/web/api/endpoints/presence.rb +1 -1
- data/lib/slack/web/api/endpoints/reactions.rb +43 -34
- data/lib/slack/web/api/endpoints/reminders.rb +28 -15
- data/lib/slack/web/api/endpoints/rtm.rb +29 -8
- data/lib/slack/web/api/endpoints/search.rb +39 -24
- data/lib/slack/web/api/endpoints/stars.rb +30 -22
- data/lib/slack/web/api/endpoints/team.rb +34 -11
- 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 +23 -0
- data/lib/slack/web/api/endpoints/tooling_tokens.rb +24 -0
- data/lib/slack/web/api/endpoints/usergroups.rb +43 -32
- data/lib/slack/web/api/endpoints/usergroups_users.rb +14 -9
- data/lib/slack/web/api/endpoints/users.rb +104 -19
- 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 +44 -0
- 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 +111 -29
- data/lib/slack/web/api/error.rb +2 -8
- data/lib/slack/web/api/errors/server_error.rb +37 -0
- data/lib/slack/web/api/errors/slack_error.rb +29 -0
- data/lib/slack/web/api/errors/too_many_requests_error.rb +21 -0
- data/lib/slack/web/api/errors.rb +1040 -0
- data/lib/slack/web/api/mixins/conversations.id.rb +25 -0
- 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/mixins.rb +4 -4
- data/lib/slack/web/api/patches/chat.1.patch +70 -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 -5
- 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 +4 -1
- data/lib/slack/web/faraday/response/raise_error.rb +19 -1
- data/lib/slack/web/faraday/response/wrap_error.rb +24 -0
- data/lib/slack/web/pagination/cursor.rb +48 -0
- data/lib/slack-ruby-client.rb +40 -26
- data/lib/slack.rb +1 -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 +42 -10
- data/screenshots/create-app.png +0 -0
- data/slack-ruby-client.gemspec +11 -9
- data/spec/fixtures/slack/web/429_error.yml +50 -52
- 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 +613 -0
- data/spec/fixtures/slack/web/rtm_connect.yml +307 -0
- 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 +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 +184 -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 +465 -141
- data/spec/slack/real_time/concurrency/it_behaves_like_a_realtime_socket.rb +21 -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 +7 -4
- data/spec/slack/real_time/event_handlers/channel_spec.rb +10 -7
- 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 +9 -8
- data/spec/slack/real_time/event_handlers/team_spec.rb +8 -4
- data/spec/slack/real_time/event_handlers/user_spec.rb +7 -4
- data/spec/slack/real_time/rtm_connect_spec.rb +14 -0
- 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 +42 -8
- 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/auth_teams_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/bots_spec.rb +8 -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 +11 -4
- data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +140 -24
- data/spec/slack/web/api/endpoints/custom_specs/conversations_spec.rb +13 -0
- data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +36 -0
- data/spec/slack/web/api/endpoints/custom_specs/users_spec.rb +22 -7
- 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 +17 -5
- data/spec/slack/web/api/endpoints/migration_spec.rb +13 -0
- data/spec/slack/web/api/endpoints/oauth_spec.rb +1 -11
- 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/team_billing_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/team_preferences_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/team_profile_spec.rb +8 -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 +18 -0
- data/spec/slack/web/api/endpoints/users_prefs_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/users_profile_spec.rb +8 -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 +33 -0
- 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 +30 -17
- data/spec/slack/web/api/pagination/cursor_spec.rb +98 -0
- data/spec/slack/web/client_spec.rb +211 -14
- data/spec/slack/web/faraday/request_spec.rb +80 -0
- data/spec/slack/web/faraday/response/raise_error_spec.rb +86 -0
- data/spec/spec_helper.rb +9 -2
- 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 +7 -2
- data/spec/support/real_time/event.rb +1 -0
- data/spec/support/token.rb +1 -0
- data/spec/support/vcr.rb +37 -1
- metadata +250 -130
- 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/Gemfile +0 -5
- data/examples/hi_real_time_async/hi.rb +0 -29
- 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 -36
- data/lib/slack/real_time/concurrency/celluloid.rb +0 -100
- data/lib/slack/real_time/concurrency/eventmachine.rb +0 -60
- data/lib/slack/web/api/mixins/channels.id.json +0 -20
- data/lib/slack/web/api/mixins/channels.id.rb +0 -26
- 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 -20
- data/screenshots/register-bot.png +0 -0
- 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 -35
- data/spec/slack/real_time/concurrency/eventmachine_spec.rb +0 -50
- 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 -30
- data/spec/slack/web/api/endpoints/mpim_spec.rb +0 -30
- data/spec/slack/web/api/mixins/channels_spec.rb +0 -31
- data/spec/slack/web/api/mixins/groups_spec.rb +0 -31
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
RSpec.shared_examples_for 'a realtime socket' do
|
5
|
+
let(:url) { 'wss://ms174.slack-msgs.com/websocket/xyz' }
|
6
|
+
let(:logger) { ::Logger.new($stdout) }
|
7
|
+
let(:socket) { described_class.new(url, ping: 42, logger: logger) }
|
8
|
+
describe '#initialize' do
|
9
|
+
it 'sets url' do
|
10
|
+
expect(socket.url).to eq url
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
describe 'api' do
|
15
|
+
%i[start_sync start_sync disconnect! connect! connected? send_data close].each do |m|
|
16
|
+
it m do
|
17
|
+
expect(socket).to respond_to(m)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
RSpec.describe 'with CONCURRENCY', skip: ( # rubocop:disable RSpec/DescribeClass
|
5
|
+
(!ENV['CONCURRENCY']) && 'missing CONCURRENCY'
|
6
|
+
) do
|
7
|
+
it 'detects concurrency' do
|
8
|
+
expect(Slack::RealTime::Config.concurrency).to eq Slack::RealTime::Concurrency::Async
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
RSpec.describe 'without CONCURRENCY', skip: ( # rubocop:disable RSpec/DescribeClass
|
5
|
+
(ENV['CONCURRENCY']) && 'CONCURRENCY is set'
|
6
|
+
) do
|
7
|
+
it 'raises NoConcurrencyError' do
|
8
|
+
expect { Slack::RealTime::Config.concurrency }.to raise_error Slack::RealTime::Config::NoConcurrencyError
|
9
|
+
end
|
10
|
+
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
require 'spec_helper'
|
2
3
|
|
3
4
|
RSpec.describe Slack::RealTime::Client, vcr: { cassette_name: 'web/rtm_start' } do
|
@@ -5,7 +6,7 @@ RSpec.describe Slack::RealTime::Client, vcr: { cassette_name: 'web/rtm_start' }
|
|
5
6
|
|
6
7
|
context 'bot' do
|
7
8
|
it 'sets bot data on rtm.start' do
|
8
|
-
expect(client.bots.count).to eq
|
9
|
+
expect(client.bots.count).to eq 83
|
9
10
|
end
|
10
11
|
it 'bot_added' do
|
11
12
|
expect do
|
@@ -17,7 +18,8 @@ RSpec.describe Slack::RealTime::Client, vcr: { cassette_name: 'web/rtm_start' }
|
|
17
18
|
'icons' => {
|
18
19
|
'image_48' => 'https:\/\/slack.com\/path\/to\/hugbot_48.png'
|
19
20
|
}
|
20
|
-
}
|
21
|
+
}
|
22
|
+
)
|
21
23
|
client.send(:dispatch, event)
|
22
24
|
end.to change(client.bots, :count).by(1)
|
23
25
|
bot = client.bots['B024BE7LH']
|
@@ -32,9 +34,10 @@ RSpec.describe Slack::RealTime::Client, vcr: { cassette_name: 'web/rtm_start' }
|
|
32
34
|
'bot' => {
|
33
35
|
'id' => 'B0751JU2H',
|
34
36
|
'name' => 'hugbot'
|
35
|
-
}
|
37
|
+
}
|
38
|
+
)
|
36
39
|
client.send(:dispatch, event)
|
37
|
-
end.
|
40
|
+
end.not_to change(client.bots, :count)
|
38
41
|
bot = client.bots['B0751JU2H']
|
39
42
|
expect(bot['name']).to eq 'hugbot'
|
40
43
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
require 'spec_helper'
|
2
3
|
|
3
4
|
RSpec.describe Slack::RealTime::Client, vcr: { cassette_name: 'web/rtm_start' } do
|
@@ -5,7 +6,7 @@ RSpec.describe Slack::RealTime::Client, vcr: { cassette_name: 'web/rtm_start' }
|
|
5
6
|
|
6
7
|
context 'channel' do
|
7
8
|
it 'sets channel data' do
|
8
|
-
expect(client.channels.count).to eq
|
9
|
+
expect(client.channels.count).to eq 156
|
9
10
|
end
|
10
11
|
it 'channel_archive' do
|
11
12
|
channel = client.channels['C0HNTD0CW']
|
@@ -31,13 +32,13 @@ RSpec.describe Slack::RealTime::Client, vcr: { cassette_name: 'web/rtm_start' }
|
|
31
32
|
)
|
32
33
|
client.send(:dispatch, event)
|
33
34
|
channel = client.channels['C024BE91L']
|
34
|
-
expect(channel).
|
35
|
+
expect(channel).not_to be nil
|
35
36
|
expect(channel.name).to eq 'fun'
|
36
37
|
expect(channel.creator).to eq 'U04KB5WQR'
|
37
38
|
expect(channel.created).to eq 1_360_782_804
|
38
39
|
end
|
39
40
|
it 'channel_deleted' do
|
40
|
-
expect(client.channels['C0HLE0BBL']).
|
41
|
+
expect(client.channels['C0HLE0BBL']).not_to be nil
|
41
42
|
event = Slack::RealTime::Event.new(
|
42
43
|
'type' => 'channel_deleted',
|
43
44
|
'channel' => 'C0HLE0BBL'
|
@@ -57,12 +58,13 @@ RSpec.describe Slack::RealTime::Client, vcr: { cassette_name: 'web/rtm_start' }
|
|
57
58
|
)
|
58
59
|
client.send(:dispatch, event)
|
59
60
|
channel = client.channels['CDEADBEEF']
|
60
|
-
expect(channel).
|
61
|
+
expect(channel).not_to be nil
|
61
62
|
expect(channel.name).to eq 'beef'
|
62
63
|
end
|
63
64
|
it 'updates channel' do
|
64
65
|
expect(client.channels['CDEADBEEF']).to be nil
|
65
|
-
client.channels['CDEADBEEF'] =
|
66
|
+
client.channels['CDEADBEEF'] =
|
67
|
+
Slack::RealTime::Models::Channel.new('id' => 'CDEADBEEF', name: 'beef')
|
66
68
|
event = Slack::RealTime::Event.new(
|
67
69
|
'type' => 'channel_joined',
|
68
70
|
'channel' => {
|
@@ -73,10 +75,11 @@ RSpec.describe Slack::RealTime::Client, vcr: { cassette_name: 'web/rtm_start' }
|
|
73
75
|
)
|
74
76
|
client.send(:dispatch, event)
|
75
77
|
channel = client.channels['CDEADBEEF']
|
76
|
-
expect(channel).
|
78
|
+
expect(channel).not_to be nil
|
77
79
|
expect(channel.updated).to be true
|
78
80
|
end
|
79
81
|
end
|
82
|
+
|
80
83
|
it 'channel_left' do
|
81
84
|
channel = client.channels['C0JHNAB5H']
|
82
85
|
expect(channel.members).to include client.self.id
|
@@ -85,7 +88,7 @@ RSpec.describe Slack::RealTime::Client, vcr: { cassette_name: 'web/rtm_start' }
|
|
85
88
|
'channel' => 'C0JHNAB5H'
|
86
89
|
)
|
87
90
|
client.send(:dispatch, event)
|
88
|
-
expect(channel.members).
|
91
|
+
expect(channel.members).not_to include client.self.id
|
89
92
|
end
|
90
93
|
it 'channel_rename' do
|
91
94
|
channel = client.channels['C0HLE0BBL']
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
require 'spec_helper'
|
2
3
|
|
3
4
|
RSpec.describe Slack::RealTime::Client, vcr: { cassette_name: 'web/rtm_start' } do
|
@@ -9,7 +10,7 @@ RSpec.describe Slack::RealTime::Client, vcr: { cassette_name: 'web/rtm_start' }
|
|
9
10
|
'name' => 'push_sound',
|
10
11
|
'value' => 'updated.mp3'
|
11
12
|
)
|
12
|
-
expect(client.self).to receive(:prefs) {
|
13
|
-
expect { client.send(:dispatch, event) }.
|
13
|
+
expect(client.self).to receive(:prefs) { raise ArgumentError }
|
14
|
+
expect { client.send(:dispatch, event) }.not_to raise_error
|
14
15
|
end
|
15
16
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
require 'spec_helper'
|
2
3
|
|
3
4
|
RSpec.describe Slack::RealTime::Client, vcr: { cassette_name: 'web/rtm_start' } do
|
@@ -18,7 +19,7 @@ RSpec.describe Slack::RealTime::Client, vcr: { cassette_name: 'web/rtm_start' }
|
|
18
19
|
)
|
19
20
|
client.send(:dispatch, event)
|
20
21
|
group = client.groups['CDEADBEEF']
|
21
|
-
expect(group).
|
22
|
+
expect(group).not_to be nil
|
22
23
|
expect(group.name).to eq 'beef'
|
23
24
|
end
|
24
25
|
it 'group_left' do
|
@@ -29,7 +30,7 @@ RSpec.describe Slack::RealTime::Client, vcr: { cassette_name: 'web/rtm_start' }
|
|
29
30
|
'channel' => 'G0K7EV5A7'
|
30
31
|
)
|
31
32
|
client.send(:dispatch, event)
|
32
|
-
expect(group.members).
|
33
|
+
expect(group.members).not_to include client.self.id
|
33
34
|
end
|
34
35
|
it 'group_archive' do
|
35
36
|
group = client.groups['G0K7EV5A7']
|
@@ -67,7 +68,7 @@ RSpec.describe Slack::RealTime::Client, vcr: { cassette_name: 'web/rtm_start' }
|
|
67
68
|
end
|
68
69
|
it 'group_open' do
|
69
70
|
group = client.groups['G0K7EV5A7']
|
70
|
-
expect(group).
|
71
|
+
expect(group).not_to be_nil
|
71
72
|
event = Slack::RealTime::Event.new(
|
72
73
|
'type' => 'group_open',
|
73
74
|
'channel' => 'G0K7EV5A7'
|
@@ -77,7 +78,7 @@ RSpec.describe Slack::RealTime::Client, vcr: { cassette_name: 'web/rtm_start' }
|
|
77
78
|
end
|
78
79
|
it 'group_close' do
|
79
80
|
group = client.groups['G0K7EV5A7']
|
80
|
-
expect(group).
|
81
|
+
expect(group).not_to be_nil
|
81
82
|
group.is_open = true
|
82
83
|
event = Slack::RealTime::Event.new(
|
83
84
|
'type' => 'group_close',
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
require 'spec_helper'
|
2
3
|
|
3
4
|
RSpec.describe Slack::RealTime::Client, vcr: { cassette_name: 'web/rtm_start' } do
|
@@ -5,7 +6,7 @@ RSpec.describe Slack::RealTime::Client, vcr: { cassette_name: 'web/rtm_start' }
|
|
5
6
|
|
6
7
|
context 'im' do
|
7
8
|
it 'sets im data' do
|
8
|
-
expect(client.ims.count).to eq
|
9
|
+
expect(client.ims.count).to eq 10
|
9
10
|
end
|
10
11
|
it 'im_created' do
|
11
12
|
expect(client.ims['CDEADBEEF']).to be nil
|
@@ -18,27 +19,27 @@ RSpec.describe Slack::RealTime::Client, vcr: { cassette_name: 'web/rtm_start' }
|
|
18
19
|
)
|
19
20
|
client.send(:dispatch, event)
|
20
21
|
im = client.ims['CDEADBEEF']
|
21
|
-
expect(im).
|
22
|
+
expect(im).not_to be nil
|
22
23
|
expect(im.name).to eq 'beef'
|
23
24
|
end
|
24
25
|
it 'im_open' do
|
25
|
-
im = client.ims['
|
26
|
-
expect(im).
|
26
|
+
im = client.ims['D0J1H6QTV']
|
27
|
+
expect(im).not_to be_nil
|
27
28
|
im.is_open = false
|
28
29
|
event = Slack::RealTime::Event.new(
|
29
30
|
'type' => 'im_open',
|
30
|
-
'channel' => '
|
31
|
+
'channel' => 'D0J1H6QTV'
|
31
32
|
)
|
32
33
|
client.send(:dispatch, event)
|
33
34
|
expect(im.is_open).to be true
|
34
35
|
end
|
35
36
|
it 'im_close' do
|
36
|
-
im = client.ims['
|
37
|
-
expect(im).
|
37
|
+
im = client.ims['D0J1H6QTV']
|
38
|
+
expect(im).not_to be_nil
|
38
39
|
expect(im.is_open).to be true
|
39
40
|
event = Slack::RealTime::Event.new(
|
40
41
|
'type' => 'im_close',
|
41
|
-
'channel' => '
|
42
|
+
'channel' => 'D0J1H6QTV'
|
42
43
|
)
|
43
44
|
client.send(:dispatch, event)
|
44
45
|
expect(im.is_open).to be false
|
@@ -1,16 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
require 'spec_helper'
|
2
3
|
|
3
4
|
[Slack::RealTime::Stores::Store, Slack::RealTime::Stores::Starter].each do |store_class|
|
4
|
-
|
5
|
+
cassette = store_class == Slack::RealTime::Stores::Store ? 'web/rtm_start' : 'web/rtm_connect'
|
6
|
+
RSpec.describe store_class, vcr: { cassette_name: cassette } do
|
5
7
|
include_context 'connected client', store_class: store_class
|
6
8
|
|
7
9
|
context 'team' do
|
8
10
|
it 'sets team data on rtm.start' do
|
9
11
|
expect(client.team.name).to eq 'dblock'
|
10
12
|
expect(client.team.domain).to eq 'dblockdotorg'
|
11
|
-
|
12
|
-
|
13
|
-
|
13
|
+
if store_class == Slack::RealTime::Stores::Store
|
14
|
+
expect(client.team.email_domain).to eq 'dblock.org'
|
15
|
+
expect(client.team.prefs.invites_only_admins).to be true
|
16
|
+
expect(client.team.plan).to eq ''
|
17
|
+
end
|
14
18
|
end
|
15
19
|
it 'team_domain_change' do
|
16
20
|
event = Slack::RealTime::Event.new(
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
require 'spec_helper'
|
2
3
|
|
3
4
|
RSpec.describe Slack::RealTime::Client, vcr: { cassette_name: 'web/rtm_start' } do
|
@@ -5,8 +6,8 @@ RSpec.describe Slack::RealTime::Client, vcr: { cassette_name: 'web/rtm_start' }
|
|
5
6
|
|
6
7
|
context 'user' do
|
7
8
|
it 'combines user and self data on rtm.start' do
|
8
|
-
expect(client.users['
|
9
|
-
expect(client.users['
|
9
|
+
expect(client.users['U0J1GAHN1'].name).to eq 'travis-ci'
|
10
|
+
expect(client.users['U0J1GAHN1']['prefs']['push_sound']).to eq 'b2.mp3'
|
10
11
|
end
|
11
12
|
it 'user_change' do
|
12
13
|
expect(client.users['U07KECJ77'].name).to eq 'aws'
|
@@ -14,7 +15,8 @@ RSpec.describe Slack::RealTime::Client, vcr: { cassette_name: 'web/rtm_start' }
|
|
14
15
|
'type' => 'user_change',
|
15
16
|
'user' => {
|
16
17
|
'id' => 'U07KECJ77', 'name' => 'renamed'
|
17
|
-
}
|
18
|
+
}
|
19
|
+
)
|
18
20
|
client.send(:dispatch, event)
|
19
21
|
expect(client.users['U07KECJ77'].name).to eq 'renamed'
|
20
22
|
end
|
@@ -24,7 +26,8 @@ RSpec.describe Slack::RealTime::Client, vcr: { cassette_name: 'web/rtm_start' }
|
|
24
26
|
'type' => 'team_join',
|
25
27
|
'user' => {
|
26
28
|
'id' => 'DEADBEEF', 'name' => 'added'
|
27
|
-
}
|
29
|
+
}
|
30
|
+
)
|
28
31
|
client.send(:dispatch, event)
|
29
32
|
end.to change(client.users, :count).by(1)
|
30
33
|
expect(client.users['DEADBEEF'].name).to eq 'added'
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# require 'spec_helper'
|
3
|
+
|
4
|
+
#
|
5
|
+
# to re-record a rtm_connect fixture run with
|
6
|
+
# SLACK_API_TOKEN=... CONCURRENCY=async-websocket rspec spec/slack/real_time/rtm_connect_spec.rb
|
7
|
+
# edit rtm_connect.yml and remove the token, fix wss:// path (run specs, fix failures)
|
8
|
+
#
|
9
|
+
|
10
|
+
# RSpec.describe Slack::RealTime::Client, vcr: { cassette_name: 'web/rtm_connect' } do
|
11
|
+
# it 'connects' do
|
12
|
+
# Slack::Web::Client.new.rtm_connect(mpim_aware: true)
|
13
|
+
# end
|
14
|
+
# end
|
@@ -1,8 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
# require 'spec_helper'
|
2
3
|
|
3
4
|
#
|
4
5
|
# to re-record a rtm_start fixture run with
|
5
|
-
# SLACK_API_TOKEN=... CONCURRENCY=
|
6
|
+
# SLACK_API_TOKEN=... CONCURRENCY=async-websocket rspec spec/slack/real_time/rtm_start_spec.rb
|
6
7
|
# edit rtm_start.yml and remove the token, fix wss:// path (run specs, fix failures)
|
7
8
|
#
|
8
9
|
|
@@ -1,8 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
require 'spec_helper'
|
2
3
|
|
3
4
|
RSpec.describe Slack::RealTime::Store do
|
4
5
|
it 'can be initialized with an empty hash' do
|
5
|
-
store =
|
6
|
+
store = described_class.new(Hashie::Mash.new)
|
6
7
|
expect(store.self).to be nil
|
7
8
|
expect(store.groups.count).to eq 0
|
8
9
|
expect(store.team).to be nil
|
data/spec/slack/slack_spec.rb
CHANGED
@@ -1,41 +1,69 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
require 'spec_helper'
|
2
3
|
|
3
4
|
describe Slack do
|
4
5
|
let(:slack) { File.expand_path(File.join(__FILE__, '../../../bin/slack')) }
|
6
|
+
|
5
7
|
before do
|
6
8
|
@token = ENV.delete('SLACK_API_TOKEN')
|
7
9
|
end
|
10
|
+
|
8
11
|
after do
|
9
12
|
ENV['SLACK_API_TOKEN'] = @token if @token
|
10
13
|
end
|
14
|
+
|
11
15
|
describe '#help' do
|
12
16
|
it 'displays help' do
|
13
17
|
help = `"#{slack}" help`
|
14
18
|
expect(help).to include 'slack - Slack client.'
|
15
19
|
end
|
16
20
|
end
|
21
|
+
|
17
22
|
context 'globals' do
|
23
|
+
let(:command) do
|
24
|
+
"\"#{slack}\" --vcr-cassette-name=web/auth_test_success " \
|
25
|
+
'--slack-api-token=token -d auth test 2>&1'
|
26
|
+
end
|
27
|
+
|
18
28
|
it 'enables request and response logging with -d' do
|
19
|
-
output =
|
20
|
-
expect(output).to include '
|
21
|
-
expect(output).to include 'Status
|
29
|
+
output = `#{command}`
|
30
|
+
expect(output).to include 'POST https://slack.com/api/auth.test'
|
31
|
+
expect(output).to include 'Status 200'
|
22
32
|
end
|
23
33
|
it 'requires --slack-api-token' do
|
24
34
|
err = `"#{slack}" auth test 2>&1`
|
25
|
-
expect(err).to
|
35
|
+
expect(err).to(
|
36
|
+
start_with(
|
37
|
+
'error: parse error: Set Slack API token via --slack-api-token or SLACK_API_TOKEN.'
|
38
|
+
)
|
39
|
+
)
|
26
40
|
end
|
27
41
|
end
|
42
|
+
|
28
43
|
describe '#auth' do
|
29
44
|
context 'bad auth' do
|
45
|
+
let(:command) do
|
46
|
+
"\"#{slack}\" --vcr-cassette-name=web/auth_test_error " \
|
47
|
+
'--slack-api-token=token auth test 2>&1'
|
48
|
+
end
|
49
|
+
|
30
50
|
it 'fails with an exception' do
|
31
|
-
err =
|
51
|
+
err = `#{command}`
|
32
52
|
expect(err).to eq "error: not_authed\n"
|
33
53
|
end
|
34
54
|
end
|
55
|
+
|
35
56
|
context 'good auth' do
|
57
|
+
let(:command) do
|
58
|
+
"\"#{slack}\" --vcr-cassette-name=web/auth_test_success " \
|
59
|
+
'--slack-api-token=token auth test 2>&1'
|
60
|
+
end
|
61
|
+
|
36
62
|
it 'succeeds' do
|
37
|
-
json = Slack::Messages::Message.new(JSON
|
63
|
+
json = Slack::Messages::Message.new(JSON[`#{command}`])
|
38
64
|
expect(json).to eq(
|
65
|
+
'bot_id' => 'B0J1L75DY',
|
66
|
+
'is_enterprise_install' => false,
|
39
67
|
'ok' => true,
|
40
68
|
'url' => 'https://rubybot.slack.com/',
|
41
69
|
'team' => 'team_name',
|
@@ -47,11 +75,17 @@ describe Slack do
|
|
47
75
|
end
|
48
76
|
end
|
49
77
|
end
|
78
|
+
|
50
79
|
describe '#users' do
|
80
|
+
let(:command) do
|
81
|
+
"\"#{slack}\" --vcr-cassette-name=web/users_list " \
|
82
|
+
'--slack-api-token=token users list --presence=true 2>&1'
|
83
|
+
end
|
84
|
+
|
51
85
|
it 'list' do
|
52
|
-
json = Slack::Messages::Message.new(JSON
|
86
|
+
json = Slack::Messages::Message.new(JSON[`#{command}`])
|
53
87
|
expect(json.ok).to be true
|
54
|
-
expect(json.members.size).to eq
|
88
|
+
expect(json.members.size).to eq 35
|
55
89
|
expect(json.members.first['presence']).to eq 'away'
|
56
90
|
end
|
57
91
|
end
|
data/spec/slack/version_spec.rb
CHANGED
@@ -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::AdminAnalytics do
|
7
|
+
let(:client) { Slack::Web::Client.new }
|
8
|
+
context 'admin.analytics_getFile' do
|
9
|
+
it 'requires type' do
|
10
|
+
expect { client.admin_analytics_getFile }.to raise_error ArgumentError, /Required arguments :type missing/
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,18 @@
|
|
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::AdminApps do
|
7
|
+
let(:client) { Slack::Web::Client.new }
|
8
|
+
context 'admin.apps_clearResolution' do
|
9
|
+
it 'requires app_id' do
|
10
|
+
expect { client.admin_apps_clearResolution }.to raise_error ArgumentError, /Required arguments :app_id missing/
|
11
|
+
end
|
12
|
+
end
|
13
|
+
context 'admin.apps_uninstall' do
|
14
|
+
it 'requires app_id' do
|
15
|
+
expect { client.admin_apps_uninstall }.to raise_error ArgumentError, /Required arguments :app_id missing/
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# This file was auto-generated by lib/tasks/web.rake
|
3
|
+
|
4
|
+
require 'spec_helper'
|
5
|
+
|
6
|
+
RSpec.describe Slack::Web::Api::Endpoints::AdminAuthPolicy do
|
7
|
+
let(:client) { Slack::Web::Client.new }
|
8
|
+
context 'admin.auth.policy_assignEntities' do
|
9
|
+
it 'requires entity_ids' do
|
10
|
+
expect { client.admin_auth_policy_assignEntities(entity_type: %q[], policy_name: %q[]) }.to raise_error ArgumentError, /Required arguments :entity_ids missing/
|
11
|
+
end
|
12
|
+
it 'requires entity_type' do
|
13
|
+
expect { client.admin_auth_policy_assignEntities(entity_ids: %q[], policy_name: %q[]) }.to raise_error ArgumentError, /Required arguments :entity_type missing/
|
14
|
+
end
|
15
|
+
it 'requires policy_name' do
|
16
|
+
expect { client.admin_auth_policy_assignEntities(entity_ids: %q[], entity_type: %q[]) }.to raise_error ArgumentError, /Required arguments :policy_name missing/
|
17
|
+
end
|
18
|
+
end
|
19
|
+
context 'admin.auth.policy_getEntities' do
|
20
|
+
it 'requires policy_name' do
|
21
|
+
expect { client.admin_auth_policy_getEntities }.to raise_error ArgumentError, /Required arguments :policy_name missing/
|
22
|
+
end
|
23
|
+
end
|
24
|
+
context 'admin.auth.policy_removeEntities' do
|
25
|
+
it 'requires entity_ids' do
|
26
|
+
expect { client.admin_auth_policy_removeEntities(entity_type: %q[], policy_name: %q[]) }.to raise_error ArgumentError, /Required arguments :entity_ids missing/
|
27
|
+
end
|
28
|
+
it 'requires entity_type' do
|
29
|
+
expect { client.admin_auth_policy_removeEntities(entity_ids: %q[], policy_name: %q[]) }.to raise_error ArgumentError, /Required arguments :entity_type missing/
|
30
|
+
end
|
31
|
+
it 'requires policy_name' do
|
32
|
+
expect { client.admin_auth_policy_removeEntities(entity_ids: %q[], entity_type: %q[]) }.to raise_error ArgumentError, /Required arguments :policy_name missing/
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,38 @@
|
|
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::AdminBarriers do
|
7
|
+
let(:client) { Slack::Web::Client.new }
|
8
|
+
context 'admin.barriers_create' do
|
9
|
+
it 'requires barriered_from_usergroup_ids' do
|
10
|
+
expect { client.admin_barriers_create(primary_usergroup_id: %q[], restricted_subjects: %q[]) }.to raise_error ArgumentError, /Required arguments :barriered_from_usergroup_ids missing/
|
11
|
+
end
|
12
|
+
it 'requires primary_usergroup_id' do
|
13
|
+
expect { client.admin_barriers_create(barriered_from_usergroup_ids: %q[], restricted_subjects: %q[]) }.to raise_error ArgumentError, /Required arguments :primary_usergroup_id missing/
|
14
|
+
end
|
15
|
+
it 'requires restricted_subjects' do
|
16
|
+
expect { client.admin_barriers_create(barriered_from_usergroup_ids: %q[], primary_usergroup_id: %q[]) }.to raise_error ArgumentError, /Required arguments :restricted_subjects missing/
|
17
|
+
end
|
18
|
+
end
|
19
|
+
context 'admin.barriers_delete' do
|
20
|
+
it 'requires barrier_id' do
|
21
|
+
expect { client.admin_barriers_delete }.to raise_error ArgumentError, /Required arguments :barrier_id missing/
|
22
|
+
end
|
23
|
+
end
|
24
|
+
context 'admin.barriers_update' do
|
25
|
+
it 'requires barrier_id' do
|
26
|
+
expect { client.admin_barriers_update(barriered_from_usergroup_ids: %q[], primary_usergroup_id: %q[], restricted_subjects: %q[]) }.to raise_error ArgumentError, /Required arguments :barrier_id missing/
|
27
|
+
end
|
28
|
+
it 'requires barriered_from_usergroup_ids' do
|
29
|
+
expect { client.admin_barriers_update(barrier_id: %q[], primary_usergroup_id: %q[], restricted_subjects: %q[]) }.to raise_error ArgumentError, /Required arguments :barriered_from_usergroup_ids missing/
|
30
|
+
end
|
31
|
+
it 'requires primary_usergroup_id' do
|
32
|
+
expect { client.admin_barriers_update(barrier_id: %q[], barriered_from_usergroup_ids: %q[], restricted_subjects: %q[]) }.to raise_error ArgumentError, /Required arguments :primary_usergroup_id missing/
|
33
|
+
end
|
34
|
+
it 'requires restricted_subjects' do
|
35
|
+
expect { client.admin_barriers_update(barrier_id: %q[], barriered_from_usergroup_ids: %q[], primary_usergroup_id: %q[]) }.to raise_error ArgumentError, /Required arguments :restricted_subjects missing/
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,32 @@
|
|
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::AdminConversationsRestrictaccess do
|
7
|
+
let(:client) { Slack::Web::Client.new }
|
8
|
+
context 'admin.conversations.restrictAccess_addGroup' do
|
9
|
+
it 'requires channel_id' do
|
10
|
+
expect { client.admin_conversations_restrictAccess_addGroup(group_id: %q[]) }.to raise_error ArgumentError, /Required arguments :channel_id missing/
|
11
|
+
end
|
12
|
+
it 'requires group_id' do
|
13
|
+
expect { client.admin_conversations_restrictAccess_addGroup(channel_id: %q[]) }.to raise_error ArgumentError, /Required arguments :group_id missing/
|
14
|
+
end
|
15
|
+
end
|
16
|
+
context 'admin.conversations.restrictAccess_listGroups' do
|
17
|
+
it 'requires channel_id' do
|
18
|
+
expect { client.admin_conversations_restrictAccess_listGroups }.to raise_error ArgumentError, /Required arguments :channel_id missing/
|
19
|
+
end
|
20
|
+
end
|
21
|
+
context 'admin.conversations.restrictAccess_removeGroup' do
|
22
|
+
it 'requires channel_id' do
|
23
|
+
expect { client.admin_conversations_restrictAccess_removeGroup(group_id: %q[], team_id: %q[]) }.to raise_error ArgumentError, /Required arguments :channel_id missing/
|
24
|
+
end
|
25
|
+
it 'requires group_id' do
|
26
|
+
expect { client.admin_conversations_restrictAccess_removeGroup(channel_id: %q[], team_id: %q[]) }.to raise_error ArgumentError, /Required arguments :group_id missing/
|
27
|
+
end
|
28
|
+
it 'requires team_id' do
|
29
|
+
expect { client.admin_conversations_restrictAccess_removeGroup(channel_id: %q[], group_id: %q[]) }.to raise_error ArgumentError, /Required arguments :team_id missing/
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|