slack-ruby-client 0.14.3 → 0.15.1
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/.rubocop.yml +23 -7
- data/.rubocop_todo.yml +115 -44
- data/.travis.yml +0 -1
- data/CHANGELOG.md +38 -2
- data/CONTRIBUTING.md +24 -6
- data/Dangerfile +2 -1
- data/Gemfile +2 -2
- data/README.md +90 -29
- data/Rakefile +1 -0
- data/UPGRADING.md +6 -0
- data/bin/commands.rb +23 -0
- data/bin/commands/admin_apps.rb +27 -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_conversations.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 +3 -2
- data/bin/commands/api.rb +3 -2
- data/bin/commands/apps.rb +3 -2
- data/bin/commands/apps_permissions.rb +5 -4
- data/bin/commands/apps_permissions_resources.rb +3 -2
- data/bin/commands/apps_permissions_scopes.rb +3 -2
- data/bin/commands/apps_permissions_users.rb +5 -4
- data/bin/commands/auth.rb +5 -4
- data/bin/commands/bots.rb +3 -2
- data/bin/commands/calls.rb +52 -0
- data/bin/commands/calls_participants.rb +25 -0
- data/bin/commands/channels.rb +31 -30
- data/bin/commands/chat.rb +32 -31
- data/bin/commands/chat_scheduledMessages.rb +3 -2
- data/bin/commands/conversations.rb +36 -36
- data/bin/commands/dialog.rb +3 -2
- data/bin/commands/dnd.rb +9 -8
- data/bin/commands/emoji.rb +3 -2
- data/bin/commands/files.rb +14 -12
- data/bin/commands/files_comments.rb +3 -2
- data/bin/commands/files_remote.rb +78 -0
- data/bin/commands/groups.rb +33 -32
- data/bin/commands/im.rb +13 -12
- data/bin/commands/migration.rb +3 -2
- data/bin/commands/mpim.rb +11 -10
- data/bin/commands/oauth.rb +6 -5
- data/bin/commands/oauth_v2.rb +17 -0
- data/bin/commands/pins.rb +7 -8
- data/bin/commands/reactions.rb +10 -11
- data/bin/commands/reminders.rb +11 -10
- data/bin/commands/rtm.rb +5 -4
- data/bin/commands/search.rb +7 -6
- data/bin/commands/stars.rb +7 -6
- data/bin/commands/team.rb +9 -8
- data/bin/commands/team_profile.rb +3 -2
- data/bin/commands/usergroups.rb +11 -10
- data/bin/commands/usergroups_users.rb +5 -4
- data/bin/commands/users.rb +21 -20
- data/bin/commands/users_admin.rb +1 -0
- data/bin/commands/users_prefs.rb +1 -0
- data/bin/commands/users_profile.rb +5 -4
- data/bin/commands/views.rb +48 -0
- data/bin/slack +1 -2
- data/examples/hi_real_time/Gemfile +1 -0
- data/examples/hi_real_time/hi.rb +7 -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_real_time_async_celluloid/Gemfile +1 -0
- data/examples/hi_real_time_async_celluloid/hi.rb +7 -3
- data/examples/hi_real_time_async_eventmachine/Gemfile +1 -0
- data/examples/hi_real_time_async_eventmachine/hi.rb +7 -3
- 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-ruby-client.rb +4 -4
- data/lib/slack.rb +1 -0
- data/lib/slack/config.rb +1 -0
- data/lib/slack/events/config.rb +1 -0
- data/lib/slack/events/request.rb +3 -1
- 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 +26 -13
- data/lib/slack/real_time/concurrency.rb +1 -0
- data/lib/slack/real_time/concurrency/async.rb +13 -7
- data/lib/slack/real_time/concurrency/celluloid.rb +10 -4
- data/lib/slack/real_time/concurrency/eventmachine.rb +9 -6
- data/lib/slack/real_time/config.rb +6 -1
- data/lib/slack/real_time/models.rb +1 -0
- 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/socket.rb +16 -13
- data/lib/slack/real_time/stores.rb +1 -0
- data/lib/slack/real_time/stores/base.rb +4 -1
- data/lib/slack/real_time/stores/starter.rb +1 -0
- data/lib/slack/real_time/stores/store.rb +16 -25
- data/lib/slack/version.rb +2 -1
- data/lib/slack/web/api/endpoints.rb +46 -0
- data/lib/slack/web/api/endpoints/admin_apps.rb +42 -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_conversations.rb +30 -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 +2 -1
- data/lib/slack/web/api/endpoints/api.rb +2 -1
- data/lib/slack/web/api/endpoints/apps.rb +2 -1
- data/lib/slack/web/api/endpoints/apps_permissions.rb +3 -2
- data/lib/slack/web/api/endpoints/apps_permissions_resources.rb +2 -1
- data/lib/slack/web/api/endpoints/apps_permissions_scopes.rb +2 -1
- data/lib/slack/web/api/endpoints/apps_permissions_users.rb +3 -2
- data/lib/slack/web/api/endpoints/auth.rb +3 -2
- data/lib/slack/web/api/endpoints/bots.rb +2 -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 +44 -29
- data/lib/slack/web/api/endpoints/chat.rb +30 -29
- data/lib/slack/web/api/endpoints/chat_scheduledMessages.rb +3 -2
- data/lib/slack/web/api/endpoints/conversations.rb +34 -35
- data/lib/slack/web/api/endpoints/dialog.rb +2 -1
- data/lib/slack/web/api/endpoints/dnd.rb +5 -4
- data/lib/slack/web/api/endpoints/emoji.rb +2 -1
- data/lib/slack/web/api/endpoints/files.rb +11 -8
- data/lib/slack/web/api/endpoints/files_comments.rb +2 -1
- data/lib/slack/web/api/endpoints/files_remote.rb +127 -0
- data/lib/slack/web/api/endpoints/groups.rb +33 -22
- data/lib/slack/web/api/endpoints/im.rb +17 -12
- data/lib/slack/web/api/endpoints/migration.rb +2 -1
- data/lib/slack/web/api/endpoints/mpim.rb +16 -11
- data/lib/slack/web/api/endpoints/oauth.rb +4 -6
- data/lib/slack/web/api/endpoints/oauth_v2.rb +30 -0
- data/lib/slack/web/api/endpoints/pins.rb +8 -12
- data/lib/slack/web/api/endpoints/reactions.rb +12 -15
- data/lib/slack/web/api/endpoints/reminders.rb +6 -5
- data/lib/slack/web/api/endpoints/rtm.rb +3 -2
- data/lib/slack/web/api/endpoints/search.rb +4 -3
- data/lib/slack/web/api/endpoints/stars.rb +6 -7
- data/lib/slack/web/api/endpoints/team.rb +5 -5
- data/lib/slack/web/api/endpoints/team_profile.rb +2 -1
- data/lib/slack/web/api/endpoints/usergroups.rb +6 -5
- data/lib/slack/web/api/endpoints/usergroups_users.rb +3 -2
- data/lib/slack/web/api/endpoints/users.rb +11 -16
- 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 +3 -2
- data/lib/slack/web/api/endpoints/views.rb +97 -0
- data/lib/slack/web/api/error.rb +1 -0
- data/lib/slack/web/api/errors.rb +656 -0
- data/lib/slack/web/api/errors/slack_error.rb +14 -1
- data/lib/slack/web/api/errors/too_many_requests_error.rb +1 -0
- data/lib/slack/web/api/mixins.rb +2 -0
- data/lib/slack/web/api/mixins/channels.id.rb +2 -3
- data/lib/slack/web/api/mixins/conversations.id.rb +25 -0
- data/lib/slack/web/api/mixins/groups.id.rb +2 -3
- 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/patches/{chat.6.block-kit-support.patch → chat.1.patch} +29 -26
- 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 +1 -0
- 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 +1 -0
- 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 +1 -0
- data/lib/slack/web/faraday/response/raise_error.rb +10 -6
- data/lib/slack/web/pagination/cursor.rb +3 -2
- data/lib/slack_ruby_client.rb +1 -0
- data/lib/tasks/git.rake +1 -0
- data/lib/tasks/real_time.rake +13 -5
- data/lib/tasks/update.rake +1 -0
- data/lib/tasks/web.rake +27 -7
- data/screenshots/create-app.png +0 -0
- data/slack-ruby-client.gemspec +6 -3
- 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/views_open_error.yml +76 -0
- data/spec/integration/integration_spec.rb +26 -23
- data/spec/slack/config_spec.rb +2 -0
- data/spec/slack/events/config_spec.rb +8 -4
- data/spec/slack/events/request_spec.rb +67 -37
- 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 +174 -36
- data/spec/slack/real_time/concurrency/celluloid_spec.rb +11 -6
- data/spec/slack/real_time/concurrency/eventmachine_spec.rb +9 -1
- data/spec/slack/real_time/concurrency/it_behaves_like_a_realtime_socket.rb +2 -0
- data/spec/slack/real_time/event_handlers/bot_spec.rb +2 -1
- data/spec/slack/real_time/event_handlers/channel_spec.rb +9 -6
- 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 +4 -3
- data/spec/slack/real_time/event_handlers/team_spec.rb +3 -1
- data/spec/slack/real_time/event_handlers/user_spec.rb +1 -0
- data/spec/slack/real_time/rtm_connect_spec.rb +1 -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 +37 -5
- data/spec/slack/version_spec.rb +2 -1
- 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 +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 +13 -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 +1 -0
- data/spec/slack/web/api/endpoints/admin_users_spec.rb +75 -0
- data/spec/slack/web/api/endpoints/api_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/apps_permissions_resources_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/apps_permissions_scopes_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/apps_permissions_spec.rb +3 -2
- data/spec/slack/web/api/endpoints/apps_permissions_users_spec.rb +4 -3
- data/spec/slack/web/api/endpoints/apps_spec.rb +1 -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 +1 -0
- data/spec/slack/web/api/endpoints/conversations_spec.rb +2 -1
- data/spec/slack/web/api/endpoints/custom_specs/auth_spec.rb +5 -1
- data/spec/slack/web/api/endpoints/custom_specs/channels_spec.rb +5 -3
- data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +80 -25
- data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +12 -4
- data/spec/slack/web/api/endpoints/custom_specs/groups_spec.rb +2 -0
- data/spec/slack/web/api/endpoints/custom_specs/users_spec.rb +6 -1
- data/spec/slack/web/api/endpoints/custom_specs/views_spec.rb +95 -0
- data/spec/slack/web/api/endpoints/dnd_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/emoji_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/files_comments_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/files_remote_spec.rb +24 -0
- data/spec/slack/web/api/endpoints/files_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/im_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/migration_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/mpim_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/oauth_spec.rb +1 -11
- data/spec/slack/web/api/endpoints/oauth_v2_spec.rb +13 -0
- data/spec/slack/web/api/endpoints/pins_spec.rb +5 -1
- data/spec/slack/web/api/endpoints/reactions_spec.rb +8 -1
- data/spec/slack/web/api/endpoints/reminders_spec.rb +1 -0
- 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 +1 -0
- 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/views_spec.rb +29 -0
- data/spec/slack/web/api/error_spec.rb +4 -2
- data/spec/slack/web/api/errors/service_unavailable_spec.rb +8 -5
- data/spec/slack/web/api/errors/slack_error_spec.rb +26 -2
- data/spec/slack/web/api/mixins/channels_spec.rb +17 -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/groups_spec.rb +17 -7
- data/spec/slack/web/api/mixins/users_spec.rb +17 -8
- data/spec/slack/web/api/pagination/cursor_spec.rb +40 -10
- data/spec/slack/web/client_spec.rb +115 -18
- data/spec/slack/web/faraday/response/raise_error_spec.rb +41 -7
- data/spec/spec_helper.rb +2 -1
- data/spec/support/queue_with_timeout.rb +1 -0
- data/spec/support/real_time/concurrency/mock.rb +1 -0
- data/spec/support/real_time/connected_client.rb +9 -3
- data/spec/support/real_time/event.rb +1 -0
- data/spec/support/token.rb +1 -0
- data/spec/support/vcr.rb +5 -0
- metadata +160 -29
- 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 -15
- data/screenshots/register-bot.png +0 -0
|
@@ -1,20 +1,10 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
# This file was auto-generated by lib/tasks/web.rake
|
|
2
3
|
|
|
3
4
|
require 'spec_helper'
|
|
4
5
|
|
|
5
6
|
RSpec.describe Slack::Web::Api::Endpoints::Oauth do
|
|
6
7
|
let(:client) { Slack::Web::Client.new }
|
|
7
|
-
context 'oauth_access' do
|
|
8
|
-
it 'requires client_id' do
|
|
9
|
-
expect { client.oauth_access(client_secret: '33fea0113f5b1', code: 'ccdaa72ad') }.to raise_error ArgumentError, /Required arguments :client_id missing/
|
|
10
|
-
end
|
|
11
|
-
it 'requires client_secret' do
|
|
12
|
-
expect { client.oauth_access(client_id: '4b39e9-752c4', code: 'ccdaa72ad') }.to raise_error ArgumentError, /Required arguments :client_secret missing/
|
|
13
|
-
end
|
|
14
|
-
it 'requires code' do
|
|
15
|
-
expect { client.oauth_access(client_id: '4b39e9-752c4', client_secret: '33fea0113f5b1') }.to raise_error ArgumentError, /Required arguments :code missing/
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
8
|
context 'oauth_token' do
|
|
19
9
|
it 'requires client_id' do
|
|
20
10
|
expect { client.oauth_token(client_secret: '33fea0113f5b1', code: 'ccdaa72ad') }.to raise_error ArgumentError, /Required arguments :client_id missing/
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
# This file was auto-generated by lib/tasks/web.rake
|
|
3
|
+
|
|
4
|
+
require 'spec_helper'
|
|
5
|
+
|
|
6
|
+
RSpec.describe Slack::Web::Api::Endpoints::OauthV2 do
|
|
7
|
+
let(:client) { Slack::Web::Client.new }
|
|
8
|
+
context 'oauth.v2_access' do
|
|
9
|
+
it 'requires code' do
|
|
10
|
+
expect { client.oauth_v2_access }.to raise_error ArgumentError, /Required arguments :code missing/
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
# This file was auto-generated by lib/tasks/web.rake
|
|
2
3
|
|
|
3
4
|
require 'spec_helper'
|
|
@@ -6,7 +7,10 @@ RSpec.describe Slack::Web::Api::Endpoints::Pins do
|
|
|
6
7
|
let(:client) { Slack::Web::Client.new }
|
|
7
8
|
context 'pins_add' do
|
|
8
9
|
it 'requires channel' do
|
|
9
|
-
expect { client.pins_add }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
10
|
+
expect { client.pins_add(timestamp: '1234567890.123456') }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
11
|
+
end
|
|
12
|
+
it 'requires timestamp' do
|
|
13
|
+
expect { client.pins_add(channel: 'C1234567890') }.to raise_error ArgumentError, /Required arguments :timestamp missing/
|
|
10
14
|
end
|
|
11
15
|
end
|
|
12
16
|
context 'pins_list' do
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
# This file was auto-generated by lib/tasks/web.rake
|
|
2
3
|
|
|
3
4
|
require 'spec_helper'
|
|
@@ -5,8 +6,14 @@ require 'spec_helper'
|
|
|
5
6
|
RSpec.describe Slack::Web::Api::Endpoints::Reactions do
|
|
6
7
|
let(:client) { Slack::Web::Client.new }
|
|
7
8
|
context 'reactions_add' do
|
|
9
|
+
it 'requires channel' do
|
|
10
|
+
expect { client.reactions_add(name: 'thumbsup', timestamp: '1234567890.123456') }.to raise_error ArgumentError, /Required arguments :channel missing/
|
|
11
|
+
end
|
|
8
12
|
it 'requires name' do
|
|
9
|
-
expect { client.reactions_add }.to raise_error ArgumentError, /Required arguments :name missing/
|
|
13
|
+
expect { client.reactions_add(channel: 'C1234567890', timestamp: '1234567890.123456') }.to raise_error ArgumentError, /Required arguments :name missing/
|
|
14
|
+
end
|
|
15
|
+
it 'requires timestamp' do
|
|
16
|
+
expect { client.reactions_add(channel: 'C1234567890', name: 'thumbsup') }.to raise_error ArgumentError, /Required arguments :timestamp missing/
|
|
10
17
|
end
|
|
11
18
|
end
|
|
12
19
|
context 'reactions_remove' do
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
# This file was auto-generated by lib/tasks/web.rake
|
|
3
|
+
|
|
4
|
+
require 'spec_helper'
|
|
5
|
+
|
|
6
|
+
RSpec.describe Slack::Web::Api::Endpoints::Views do
|
|
7
|
+
let(:client) { Slack::Web::Client.new }
|
|
8
|
+
context 'views_open' do
|
|
9
|
+
it 'requires trigger_id' do
|
|
10
|
+
expect { client.views_open(view: ' ') }.to raise_error ArgumentError, /Required arguments :trigger_id missing/
|
|
11
|
+
end
|
|
12
|
+
it 'requires view' do
|
|
13
|
+
expect { client.views_open(trigger_id: '12345.98765.abcd2358fdea') }.to raise_error ArgumentError, /Required arguments :view missing/
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
context 'views_push' do
|
|
17
|
+
it 'requires trigger_id' do
|
|
18
|
+
expect { client.views_push(view: ' ') }.to raise_error ArgumentError, /Required arguments :trigger_id missing/
|
|
19
|
+
end
|
|
20
|
+
it 'requires view' do
|
|
21
|
+
expect { client.views_push(trigger_id: '12345.98765.abcd2358fdea') }.to raise_error ArgumentError, /Required arguments :view missing/
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
context 'views_update' do
|
|
25
|
+
it 'requires view' do
|
|
26
|
+
expect { client.views_update }.to raise_error ArgumentError, /Required arguments :view missing/
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
require 'spec_helper'
|
|
2
3
|
|
|
3
4
|
RSpec.describe Slack::Web::Api::Error do
|
|
4
5
|
let(:client) { Slack::Web::Client.new }
|
|
6
|
+
|
|
5
7
|
it 'provides access to the response object', vcr: { cassette_name: 'web/auth_test_error' } do
|
|
6
8
|
begin
|
|
7
9
|
client.auth_test
|
|
8
10
|
raise 'Expected to receive Slack::Web::Api::Error.'
|
|
9
|
-
rescue
|
|
10
|
-
expect(e.response).
|
|
11
|
+
rescue described_class => e
|
|
12
|
+
expect(e.response).not_to be_nil
|
|
11
13
|
expect(e.response.status).to eq 200
|
|
12
14
|
end
|
|
13
15
|
end
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
require 'spec_helper'
|
|
2
3
|
|
|
3
4
|
RSpec.describe Slack::Web::Client do
|
|
4
|
-
let(:client) {
|
|
5
|
-
|
|
5
|
+
let(:client) { described_class.new }
|
|
6
|
+
|
|
7
|
+
it 'raises a Faraday::ClientError when Slack is unavailable',
|
|
8
|
+
vcr: { cassette_name: 'web/503_error' } do
|
|
6
9
|
begin
|
|
7
10
|
client.auth_test
|
|
8
|
-
raise 'Expected to receive Faraday::
|
|
9
|
-
rescue Faraday::
|
|
10
|
-
expect(e.response).
|
|
11
|
+
raise 'Expected to receive Faraday::ServerError.'
|
|
12
|
+
rescue Faraday::ServerError => e
|
|
13
|
+
expect(e.response).not_to be_nil
|
|
11
14
|
expect(e.response[:status]).to eq 503
|
|
12
15
|
end
|
|
13
16
|
end
|
|
@@ -1,14 +1,38 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
require 'spec_helper'
|
|
2
3
|
|
|
3
4
|
RSpec.describe Slack::Web::Api::Errors::SlackError do
|
|
4
5
|
let(:client) { Slack::Web::Client.new }
|
|
6
|
+
|
|
5
7
|
it 'provides access to the response object', vcr: { cassette_name: 'web/auth_test_error' } do
|
|
6
8
|
begin
|
|
7
9
|
client.auth_test
|
|
8
10
|
raise 'Expected to receive Slack::Web::Api::Errors::SlackError.'
|
|
9
|
-
rescue
|
|
10
|
-
expect(e.response).
|
|
11
|
+
rescue described_class => e
|
|
12
|
+
expect(e.response).not_to be_nil
|
|
13
|
+
expect(e.response.status).to eq 200
|
|
14
|
+
expect(e.message).to eql 'not_authed'
|
|
15
|
+
expect(e.error).to eql 'not_authed'
|
|
16
|
+
expect(e.response_metadata).to be_nil
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it 'provides access to any response_metadata', vcr: { cassette_name: 'web/views_open_error' } do
|
|
21
|
+
begin
|
|
22
|
+
client.views_open(trigger_id: 'trigger_id', view: {})
|
|
23
|
+
raise 'Expected to receive Slack::Web::Api::Errors::SlackError.'
|
|
24
|
+
rescue described_class => e
|
|
25
|
+
expect(e.response).not_to be_nil
|
|
11
26
|
expect(e.response.status).to eq 200
|
|
27
|
+
expect(e.message).to eql 'invalid_arguments'
|
|
28
|
+
expect(e.error).to eql 'invalid_arguments'
|
|
29
|
+
expect(e.response_metadata).to eq(
|
|
30
|
+
'messages' => [
|
|
31
|
+
"[ERROR] missing required field: title [json-pointer:\/view]",
|
|
32
|
+
"[ERROR] missing required field: blocks [json-pointer:\/view]",
|
|
33
|
+
"[ERROR] missing required field: type [json-pointer:\/view]"
|
|
34
|
+
]
|
|
35
|
+
)
|
|
12
36
|
end
|
|
13
37
|
end
|
|
14
38
|
end
|
|
@@ -1,16 +1,19 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
require 'spec_helper'
|
|
2
3
|
|
|
3
4
|
RSpec.describe Slack::Web::Api::Mixins::Channels do
|
|
5
|
+
subject(:channels) do
|
|
6
|
+
klass.new
|
|
7
|
+
end
|
|
8
|
+
|
|
4
9
|
let(:klass) do
|
|
5
10
|
Class.new do
|
|
6
11
|
include Slack::Web::Api::Mixins::Channels
|
|
7
12
|
end
|
|
8
13
|
end
|
|
9
|
-
|
|
10
|
-
klass.new
|
|
11
|
-
end
|
|
14
|
+
|
|
12
15
|
before do
|
|
13
|
-
allow(
|
|
16
|
+
allow(channels).to receive(:channels_list).and_yield(
|
|
14
17
|
Slack::Messages::Message.new(
|
|
15
18
|
'channels' => [{
|
|
16
19
|
'id' => 'CDEADBEEF',
|
|
@@ -19,15 +22,22 @@ RSpec.describe Slack::Web::Api::Mixins::Channels do
|
|
|
19
22
|
)
|
|
20
23
|
)
|
|
21
24
|
end
|
|
25
|
+
|
|
22
26
|
context '#channels_id' do
|
|
23
27
|
it 'leaves channels specified by ID alone' do
|
|
24
|
-
expect(
|
|
28
|
+
expect(channels.channels_id(channel: 'C123456')).to(
|
|
29
|
+
eq('ok' => true, 'channel' => { 'id' => 'C123456' })
|
|
30
|
+
)
|
|
25
31
|
end
|
|
26
32
|
it 'translates a channel that starts with a #' do
|
|
27
|
-
expect(
|
|
33
|
+
expect(channels.channels_id(channel: '#general')).to(
|
|
34
|
+
eq('ok' => true, 'channel' => { 'id' => 'CDEADBEEF' })
|
|
35
|
+
)
|
|
28
36
|
end
|
|
29
37
|
it 'fails with an exception' do
|
|
30
|
-
expect {
|
|
38
|
+
expect { channels.channels_id(channel: '#invalid') }.to(
|
|
39
|
+
raise_error(Slack::Web::Api::Errors::SlackError, 'channel_not_found')
|
|
40
|
+
)
|
|
31
41
|
end
|
|
32
42
|
end
|
|
33
43
|
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'spec_helper'
|
|
3
|
+
|
|
4
|
+
RSpec.describe Slack::Web::Client do
|
|
5
|
+
context 'conversations_setTopic' do
|
|
6
|
+
it 'does not invoke conversations_list', vcr: { cassette_name: 'web/conversations_setTopic' } do
|
|
7
|
+
rc = subject.conversations_setTopic({ channel: 'C018Y6VH39D', topic: 'new topic' })
|
|
8
|
+
expect(rc.channel.topic.value).to eq 'new topic'
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
it 'resolves IDs via conversations_list', vcr: { cassette_name: 'web/conversations_setTopic_one_page' } do
|
|
12
|
+
rc = subject.conversations_setTopic({ channel: '#1', topic: 'new topic' })
|
|
13
|
+
expect(rc.channel.topic.value).to eq 'new topic'
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it 'paginates to resolve IDs', vcr: { cassette_name: 'web/conversations_setTopic_paginated' } do
|
|
17
|
+
rc = subject.conversations_setTopic({ channel: '#topic', topic: 'new topic' })
|
|
18
|
+
expect(rc.channel.topic.value).to eq 'new topic'
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'spec_helper'
|
|
3
|
+
|
|
4
|
+
RSpec.describe Slack::Web::Api::Mixins::Conversations do
|
|
5
|
+
subject(:conversations) do
|
|
6
|
+
klass.new
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
let(:klass) do
|
|
10
|
+
Class.new do
|
|
11
|
+
include Slack::Web::Api::Mixins::Conversations
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
before do
|
|
16
|
+
allow(conversations).to receive(:conversations_list).and_yield(
|
|
17
|
+
Slack::Messages::Message.new(
|
|
18
|
+
'channels' => [{
|
|
19
|
+
'id' => 'CDEADBEEF',
|
|
20
|
+
'name' => 'general'
|
|
21
|
+
}]
|
|
22
|
+
)
|
|
23
|
+
)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
describe '#conversations_id' do
|
|
27
|
+
it 'leaves channels specified by ID alone' do
|
|
28
|
+
expect(conversations.conversations_id(channel: 'C123456')).to(
|
|
29
|
+
eq('ok' => true, 'channel' => { 'id' => 'C123456' })
|
|
30
|
+
)
|
|
31
|
+
end
|
|
32
|
+
it 'translates a channel that starts with a #' do
|
|
33
|
+
expect(conversations.conversations_id(channel: '#general')).to(
|
|
34
|
+
eq('ok' => true, 'channel' => { 'id' => 'CDEADBEEF' })
|
|
35
|
+
)
|
|
36
|
+
end
|
|
37
|
+
it 'fails with an exception' do
|
|
38
|
+
expect { conversations.conversations_id(channel: '#invalid') }.to(
|
|
39
|
+
raise_error(Slack::Web::Api::Errors::SlackError, 'channel_not_found')
|
|
40
|
+
)
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -1,16 +1,19 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
require 'spec_helper'
|
|
2
3
|
|
|
3
4
|
RSpec.describe Slack::Web::Api::Mixins::Groups do
|
|
5
|
+
subject(:groups) do
|
|
6
|
+
klass.new
|
|
7
|
+
end
|
|
8
|
+
|
|
4
9
|
let(:klass) do
|
|
5
10
|
Class.new do
|
|
6
11
|
include Slack::Web::Api::Mixins::Groups
|
|
7
12
|
end
|
|
8
13
|
end
|
|
9
|
-
|
|
10
|
-
klass.new
|
|
11
|
-
end
|
|
14
|
+
|
|
12
15
|
before do
|
|
13
|
-
allow(
|
|
16
|
+
allow(groups).to receive(:groups_list).and_yield(
|
|
14
17
|
Slack::Messages::Message.new(
|
|
15
18
|
'groups' => [{
|
|
16
19
|
'id' => 'CDEADBEEF',
|
|
@@ -19,15 +22,22 @@ RSpec.describe Slack::Web::Api::Mixins::Groups do
|
|
|
19
22
|
)
|
|
20
23
|
)
|
|
21
24
|
end
|
|
25
|
+
|
|
22
26
|
context '#groups_id' do
|
|
23
27
|
it 'leaves groups specified by ID alone' do
|
|
24
|
-
expect(
|
|
28
|
+
expect(groups.groups_id(channel: 'C123456')).to(
|
|
29
|
+
eq('ok' => true, 'group' => { 'id' => 'C123456' })
|
|
30
|
+
)
|
|
25
31
|
end
|
|
26
32
|
it 'translates a channel that starts with a #' do
|
|
27
|
-
expect(
|
|
33
|
+
expect(groups.groups_id(channel: '#general')).to(
|
|
34
|
+
eq('ok' => true, 'group' => { 'id' => 'CDEADBEEF' })
|
|
35
|
+
)
|
|
28
36
|
end
|
|
29
37
|
it 'fails with an exception' do
|
|
30
|
-
expect {
|
|
38
|
+
expect { groups.groups_id(channel: '#invalid') }.to(
|
|
39
|
+
raise_error(Slack::Web::Api::Errors::SlackError, 'channel_not_found')
|
|
40
|
+
)
|
|
31
41
|
end
|
|
32
42
|
end
|
|
33
43
|
end
|
|
@@ -1,16 +1,19 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
require 'spec_helper'
|
|
2
3
|
|
|
3
4
|
RSpec.describe Slack::Web::Api::Mixins::Users do
|
|
5
|
+
subject(:users) do
|
|
6
|
+
klass.new
|
|
7
|
+
end
|
|
8
|
+
|
|
4
9
|
let(:klass) do
|
|
5
10
|
Class.new do
|
|
6
11
|
include Slack::Web::Api::Mixins::Users
|
|
7
12
|
end
|
|
8
13
|
end
|
|
9
|
-
|
|
10
|
-
klass.new
|
|
11
|
-
end
|
|
14
|
+
|
|
12
15
|
before do
|
|
13
|
-
allow(
|
|
16
|
+
allow(users).to receive(:users_list).and_yield(
|
|
14
17
|
Slack::Messages::Message.new(
|
|
15
18
|
'members' => [{
|
|
16
19
|
'id' => 'UDEADBEEF',
|
|
@@ -20,21 +23,27 @@ RSpec.describe Slack::Web::Api::Mixins::Users do
|
|
|
20
23
|
)
|
|
21
24
|
)
|
|
22
25
|
end
|
|
26
|
+
|
|
23
27
|
context '#users_id' do
|
|
24
28
|
it 'leaves users specified by ID alone' do
|
|
25
|
-
expect(
|
|
29
|
+
expect(users.users_id(user: 'U123456')).to eq('ok' => true, 'user' => { 'id' => 'U123456' })
|
|
26
30
|
end
|
|
27
31
|
it 'translates a user that starts with a #' do
|
|
28
|
-
expect(
|
|
32
|
+
expect(users.users_id(user: '@aws')).to eq('ok' => true, 'user' => { 'id' => 'UDEADBEEF' })
|
|
29
33
|
end
|
|
30
34
|
it 'fails with an exception' do
|
|
31
|
-
expect {
|
|
35
|
+
expect { users.users_id(user: '@foo') }.to(
|
|
36
|
+
raise_error(Slack::Web::Api::Errors::SlackError, 'user_not_found')
|
|
37
|
+
)
|
|
32
38
|
end
|
|
33
39
|
end
|
|
40
|
+
|
|
34
41
|
if defined?(Picky)
|
|
35
42
|
context '#users_search' do
|
|
36
43
|
it 'finds a user' do
|
|
37
|
-
expect(
|
|
44
|
+
expect(users.users_search(user: 'aws')).to(
|
|
45
|
+
eq('ok' => true, 'members' => [{ 'id' => 'UDEADBEEF', 'name' => 'aws', 'profile' => {} }])
|
|
46
|
+
)
|
|
38
47
|
end
|
|
39
48
|
end
|
|
40
49
|
end
|