slack-ruby-client 2.1.0 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (137) hide show
  1. checksums.yaml +4 -4
  2. data/.coveralls.yml +2 -0
  3. data/.github/workflows/test.yml +6 -0
  4. data/.github/workflows/update_api.yml +76 -0
  5. data/.gitignore +1 -0
  6. data/.rubocop_todo.yml +17 -29
  7. data/CHANGELOG.md +23 -1
  8. data/CONTRIBUTING.md +35 -32
  9. data/Gemfile +2 -0
  10. data/README.md +123 -14
  11. data/bin/commands/admin_apps_activities.rb +32 -0
  12. data/bin/commands/admin_apps_approved.rb +1 -0
  13. data/bin/commands/admin_apps_config.rb +31 -0
  14. data/bin/commands/admin_apps_requests.rb +1 -0
  15. data/bin/commands/admin_apps_restricted.rb +1 -0
  16. data/bin/commands/admin_functions.rb +23 -0
  17. data/bin/commands/admin_functions_permissions.rb +31 -0
  18. data/bin/commands/admin_roles.rb +1 -1
  19. data/bin/commands/admin_teams.rb +1 -1
  20. data/bin/commands/admin_users.rb +2 -2
  21. data/bin/commands/admin_workflows.rb +38 -0
  22. data/bin/commands/admin_workflows_collaborators.rb +31 -0
  23. data/bin/commands/admin_workflows_permissions.rb +21 -0
  24. data/bin/commands/apps_activities.rb +32 -0
  25. data/bin/commands/apps_auth_external.rb +32 -0
  26. data/bin/commands/apps_datastore.rb +70 -0
  27. data/bin/commands/auth_teams.rb +2 -2
  28. data/bin/commands/calls.rb +1 -1
  29. data/bin/commands/chat.rb +6 -6
  30. data/bin/commands/chat_scheduledMessages.rb +2 -2
  31. data/bin/commands/conversations.rb +3 -3
  32. data/bin/commands/dnd.rb +1 -1
  33. data/bin/commands/functions_workflows_steps.rb +2 -1
  34. data/bin/commands/functions_workflows_steps_responses.rb +2 -1
  35. data/bin/commands/reminders.rb +1 -1
  36. data/bin/commands/stars.rb +4 -4
  37. data/bin/commands/team.rb +3 -1
  38. data/bin/commands/users.rb +1 -1
  39. data/lib/slack/messages/formatting.rb +44 -0
  40. data/lib/slack/real_time/client.rb +14 -2
  41. data/lib/slack/real_time/concurrency/async.rb +4 -0
  42. data/lib/slack/real_time/config.rb +3 -0
  43. data/lib/slack/real_time/socket.rb +4 -0
  44. data/lib/slack/real_time/stores/starter.rb +2 -2
  45. data/lib/slack/real_time/stores/store.rb +2 -2
  46. data/lib/slack/version.rb +1 -1
  47. data/lib/slack/web/api/endpoints/admin_apps_activities.rb +53 -0
  48. data/lib/slack/web/api/endpoints/admin_apps_approved.rb +2 -0
  49. data/lib/slack/web/api/endpoints/admin_apps_config.rb +40 -0
  50. data/lib/slack/web/api/endpoints/admin_apps_requests.rb +2 -0
  51. data/lib/slack/web/api/endpoints/admin_apps_restricted.rb +2 -0
  52. data/lib/slack/web/api/endpoints/admin_conversations.rb +1 -0
  53. data/lib/slack/web/api/endpoints/admin_functions.rb +36 -0
  54. data/lib/slack/web/api/endpoints/admin_functions_permissions.rb +41 -0
  55. data/lib/slack/web/api/endpoints/admin_roles.rb +1 -1
  56. data/lib/slack/web/api/endpoints/admin_teams.rb +1 -1
  57. data/lib/slack/web/api/endpoints/admin_users.rb +2 -2
  58. data/lib/slack/web/api/endpoints/admin_workflows.rb +59 -0
  59. data/lib/slack/web/api/endpoints/admin_workflows_collaborators.rb +42 -0
  60. data/lib/slack/web/api/endpoints/admin_workflows_permissions.rb +26 -0
  61. data/lib/slack/web/api/endpoints/apps_activities.rb +54 -0
  62. data/lib/slack/web/api/endpoints/apps_auth_external.rb +41 -0
  63. data/lib/slack/web/api/endpoints/apps_datastore.rb +110 -0
  64. data/lib/slack/web/api/endpoints/apps_manifest.rb +2 -0
  65. data/lib/slack/web/api/endpoints/auth_teams.rb +1 -1
  66. data/lib/slack/web/api/endpoints/calls.rb +1 -1
  67. data/lib/slack/web/api/endpoints/chat.rb +14 -45
  68. data/lib/slack/web/api/endpoints/chat_scheduledMessages.rb +2 -2
  69. data/lib/slack/web/api/endpoints/conversations.rb +3 -3
  70. data/lib/slack/web/api/endpoints/dialog.rb +1 -6
  71. data/lib/slack/web/api/endpoints/dnd.rb +1 -1
  72. data/lib/slack/web/api/endpoints/functions_workflows_steps.rb +3 -1
  73. data/lib/slack/web/api/endpoints/functions_workflows_steps_responses.rb +3 -1
  74. data/lib/slack/web/api/endpoints/reminders.rb +1 -1
  75. data/lib/slack/web/api/endpoints/stars.rb +2 -2
  76. data/lib/slack/web/api/endpoints/team.rb +12 -2
  77. data/lib/slack/web/api/endpoints/users.rb +1 -1
  78. data/lib/slack/web/api/endpoints/users_profile.rb +1 -0
  79. data/lib/slack/web/api/endpoints/views.rb +7 -23
  80. data/lib/slack/web/api/endpoints/workflows.rb +2 -0
  81. data/lib/slack/web/api/endpoints.rb +20 -0
  82. data/lib/slack/web/api/errors.rb +66 -4
  83. data/lib/slack/web/api/options.rb +26 -0
  84. data/lib/slack/web/api/patches/chat.attachments-blocks.patch +7 -55
  85. data/lib/slack/web/api/templates/method.erb +12 -0
  86. data/lib/slack/web/api/templates/method_spec.erb +40 -4
  87. data/lib/slack/web/client.rb +1 -0
  88. data/lib/slack-ruby-client.rb +1 -0
  89. data/lib/tasks/web.rake +2 -4
  90. data/slack-ruby-client.gemspec +1 -0
  91. data/spec/slack/messages/formatting_spec.rb +60 -0
  92. data/spec/slack/real_time/client_spec.rb +25 -7
  93. data/spec/slack/real_time/concurrency/clients/async_spec.rb +16 -0
  94. data/spec/slack/web/api/endpoints/admin_apps_activities_spec.rb +8 -0
  95. data/spec/slack/web/api/endpoints/admin_apps_config_spec.rb +18 -0
  96. data/spec/slack/web/api/endpoints/admin_auth_policy_spec.rb +6 -6
  97. data/spec/slack/web/api/endpoints/admin_conversations_spec.rb +14 -10
  98. data/spec/slack/web/api/endpoints/admin_functions_permissions_spec.rb +21 -0
  99. data/spec/slack/web/api/endpoints/admin_functions_spec.rb +13 -0
  100. data/spec/slack/web/api/endpoints/admin_roles_spec.rb +6 -6
  101. data/spec/slack/web/api/endpoints/admin_teams_settings_spec.rb +1 -1
  102. data/spec/slack/web/api/endpoints/admin_usergroups_spec.rb +6 -6
  103. data/spec/slack/web/api/endpoints/admin_users_session_spec.rb +2 -2
  104. data/spec/slack/web/api/endpoints/admin_users_spec.rb +8 -8
  105. data/spec/slack/web/api/endpoints/admin_workflows_collaborators_spec.rb +24 -0
  106. data/spec/slack/web/api/endpoints/admin_workflows_permissions_spec.rb +13 -0
  107. data/spec/slack/web/api/endpoints/admin_workflows_spec.rb +13 -0
  108. data/spec/slack/web/api/endpoints/apps_activities_spec.rb +13 -0
  109. data/spec/slack/web/api/endpoints/apps_auth_external_spec.rb +13 -0
  110. data/spec/slack/web/api/endpoints/apps_datastore_spec.rb +45 -0
  111. data/spec/slack/web/api/endpoints/apps_manifest_spec.rb +8 -0
  112. data/spec/slack/web/api/endpoints/apps_spec.rb +2 -2
  113. data/spec/slack/web/api/endpoints/auth_spec.rb +8 -0
  114. data/spec/slack/web/api/endpoints/bookmarks_spec.rb +4 -4
  115. data/spec/slack/web/api/endpoints/calls_participants_spec.rb +4 -4
  116. data/spec/slack/web/api/endpoints/calls_spec.rb +2 -2
  117. data/spec/slack/web/api/endpoints/chat_spec.rb +62 -0
  118. data/spec/slack/web/api/endpoints/conversations_spec.rb +8 -0
  119. data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +3 -3
  120. data/spec/slack/web/api/endpoints/custom_specs/views_spec.rb +1 -1
  121. data/spec/slack/web/api/endpoints/dialog_spec.rb +14 -0
  122. data/spec/slack/web/api/endpoints/files_comments_spec.rb +2 -2
  123. data/spec/slack/web/api/endpoints/files_remote_spec.rb +3 -3
  124. data/spec/slack/web/api/endpoints/files_spec.rb +2 -2
  125. data/spec/slack/web/api/endpoints/oauth_v2_spec.rb +2 -2
  126. data/spec/slack/web/api/endpoints/reactions_spec.rb +3 -3
  127. data/spec/slack/web/api/endpoints/reminders_spec.rb +2 -2
  128. data/spec/slack/web/api/endpoints/usergroups_users_spec.rb +2 -2
  129. data/spec/slack/web/api/endpoints/users_profile_spec.rb +6 -0
  130. data/spec/slack/web/api/endpoints/users_spec.rb +8 -0
  131. data/spec/slack/web/api/endpoints/views_spec.rb +65 -0
  132. data/spec/slack/web/api/endpoints/workflows_spec.rb +8 -0
  133. data/spec/slack/web/api/options_spec.rb +69 -0
  134. data/spec/spec_helper.rb +9 -0
  135. metadata +45 -5
  136. data/lib/slack/web/api/patches/dialog.encoded-json.patch +0 -17
  137. data/lib/slack/web/api/patches/views.view-json.patch +0 -55
@@ -30,6 +30,7 @@ require_relative 'slack/web/api/errors/too_many_requests_error'
30
30
  require_relative 'slack/web/api/error'
31
31
  require_relative 'slack/web/api/errors'
32
32
  require_relative 'slack/web/api/errors/server_error'
33
+ require_relative 'slack/web/api/options'
33
34
  require_relative 'slack/web/faraday/response/raise_error'
34
35
  require_relative 'slack/web/faraday/response/wrap_error'
35
36
  require_relative 'slack/web/faraday/connection'
data/lib/tasks/web.rake CHANGED
@@ -58,10 +58,8 @@ namespace :slack do
58
58
  File.write "lib/slack/web/api/endpoints/#{snaked_group}.rb", rendered_method
59
59
  custom_spec_exists =
60
60
  File.exist?("spec/slack/web/api/endpoints/custom_specs/#{group}_spec.rb")
61
- unless custom_spec_exists
62
- rendered_method_spec = method_spec_template.result(group: group, names: names)
63
- File.write "spec/slack/web/api/endpoints/#{snaked_group}_spec.rb", rendered_method_spec
64
- end
61
+ rendered_method_spec = method_spec_template.result(group: group, names: names, custom_spec_exists: custom_spec_exists)
62
+ File.write "spec/slack/web/api/endpoints/#{snaked_group}_spec.rb", rendered_method_spec
65
63
 
66
64
  unless ENV.key?('SKIP_PATCH')
67
65
  Dir.glob("lib/slack/web/api/patches/#{group}*.patch").sort.each do |patch|
@@ -23,4 +23,5 @@ Gem::Specification.new do |s|
23
23
  s.add_dependency 'gli'
24
24
  s.add_dependency 'hashie'
25
25
  s.metadata['rubygems_mfa_required'] = 'true'
26
+ s.metadata['changelog_uri'] = 'https://github.com/slack-ruby/slack-ruby-client/blob/master/CHANGELOG.md'
26
27
  end
@@ -61,4 +61,64 @@ describe Slack::Messages::Formatting do
61
61
  expect(formatting.unescape('‘hello’')).to eq "'hello'"
62
62
  end
63
63
  end
64
+
65
+ context '#escape' do
66
+ it 'plain text' do
67
+ expect(formatting.escape('plain text')).to eq 'plain text'
68
+ end
69
+
70
+ it 'escapes a message' do
71
+ expect(formatting.escape('Hello & <world>')).to eq 'Hello &amp; &lt;world&gt;'
72
+ end
73
+ end
74
+
75
+ context '#date' do
76
+ let(:timestamp) { -2955646679 }
77
+ let(:time) { Time.at(timestamp) }
78
+ let(:custom_format) { '{date_short}' }
79
+ let(:optional_link) { 'https://www.timeanddate.com/worldclock/fixedtime.html?year=1876&month=5&day=4&hour=03&min=02&sec=01' }
80
+ let(:fallback_text) { 'a long, long time ago' }
81
+
82
+ it 'formats a timestamp' do
83
+ expect(formatting.date(time)).to eq "<!date^#{timestamp}^{date_num} {time_secs}|#{time}>"
84
+ end
85
+
86
+ it 'can use custom format' do
87
+ expect(formatting.date(time, format: custom_format)).to eq "<!date^#{timestamp}^#{custom_format}|#{time}>"
88
+ end
89
+
90
+ it 'can add a custom link' do
91
+ expect(formatting.date(time,
92
+ link: optional_link)).to eq "<!date^#{timestamp}^{date_num} {time_secs}^#{optional_link}|#{time}>"
93
+ end
94
+
95
+ it 'can add custom fallback text' do
96
+ expect(formatting.date(time, text: fallback_text)).to eq "<!date^#{timestamp}^{date_num} {time_secs}|#{fallback_text}>"
97
+ end
98
+ end
99
+
100
+ context '#channel_link' do
101
+ let(:channel_id) { 'C0000000001' }
102
+
103
+ it 'links to a channel by its ID' do
104
+ expect(formatting.channel_link(channel_id)).to eq "<##{channel_id}>"
105
+ end
106
+ end
107
+
108
+ context '#user_link' do
109
+ let(:user_id) { 'U0000000001' }
110
+
111
+ it 'links to a user by its ID' do
112
+ expect(formatting.user_link(user_id)).to eq "<@#{user_id}>"
113
+ end
114
+ end
115
+
116
+ context '#url_link' do
117
+ let(:text) { 'super cool website' }
118
+ let(:url) { 'https://theuselessweb.site/' }
119
+
120
+ it 'formats a URL with custom link text' do
121
+ expect(formatting.url_link(text, url)).to eq "<#{url}|#{text}>"
122
+ end
123
+ end
64
124
  end
@@ -159,18 +159,36 @@ RSpec.describe Slack::RealTime::Client do
159
159
  end
160
160
 
161
161
  describe '#run_handlers' do
162
- context 'when store has no event hooks' do
162
+ before do
163
+ @events = client.store.class.events.dup
164
+ @async_handlers = client.async_handlers.dup
165
+ client.store.class.events.clear
166
+ end
167
+
168
+ after do
169
+ client.store.class.events.merge!(@events)
170
+ client.async_handlers = @async_handlers
171
+ end
172
+
173
+ context 'when config#async_handlers is :all' do
163
174
  before do
164
- @events = client.store.class.events.dup
165
- client.store.class.events.clear
175
+ client.async_handlers = :all
166
176
  end
167
177
 
168
- after do
169
- client.store.class.events.merge!(@events)
178
+ it 'runs tasks async' do
179
+ expect(socket).to receive(:run_async)
180
+ client.send(:run_handlers, 'example', {})
181
+ end
182
+ end
183
+
184
+ context 'when config#async_handlers is :none' do
185
+ before do
186
+ client.async_handlers = :none
170
187
  end
171
188
 
172
- it 'returns empty array of handlers' do
173
- expect(client.send(:run_handlers, 'example', {})).to be_empty
189
+ it 'does not run tasks async' do
190
+ expect(socket).not_to receive(:run_async)
191
+ client.send(:run_handlers, 'example', {})
174
192
  end
175
193
  end
176
194
  end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+ require 'spec_helper'
3
+
4
+ RSpec.describe 'Slack::RealTime::Concurrency::Async::Socket', skip: (
5
+ ENV['CONCURRENCY'] != 'async-websocket'
6
+ ) do
7
+ context 'global config' do
8
+ let(:client) { Slack::RealTime::Concurrency::Async::Socket.new(nil) }
9
+
10
+ context 'run_async' do
11
+ it 'returns an Async::Task' do
12
+ expect(client.run_async {}).to be_a Async::Task
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,8 @@
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::AdminAppsActivities do
7
+ let(:client) { Slack::Web::Client.new }
8
+ 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::AdminAppsConfig do
7
+ let(:client) { Slack::Web::Client.new }
8
+ context 'admin.apps.config_lookup' do
9
+ it 'requires app_ids' do
10
+ expect { client.admin_apps_config_lookup }.to raise_error ArgumentError, /Required arguments :app_ids missing/
11
+ end
12
+ end
13
+ context 'admin.apps.config_set' do
14
+ it 'requires app_id' do
15
+ expect { client.admin_apps_config_set }.to raise_error ArgumentError, /Required arguments :app_id missing/
16
+ end
17
+ end
18
+ end
@@ -7,13 +7,13 @@ RSpec.describe Slack::Web::Api::Endpoints::AdminAuthPolicy do
7
7
  let(:client) { Slack::Web::Client.new }
8
8
  context 'admin.auth.policy_assignEntities' do
9
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/
10
+ expect { client.admin_auth_policy_assignEntities(entity_type: %q[], policy_name: %q[email_password]) }.to raise_error ArgumentError, /Required arguments :entity_ids missing/
11
11
  end
12
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/
13
+ expect { client.admin_auth_policy_assignEntities(entity_ids: %q[['U12345','U27345']], policy_name: %q[email_password]) }.to raise_error ArgumentError, /Required arguments :entity_type missing/
14
14
  end
15
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/
16
+ expect { client.admin_auth_policy_assignEntities(entity_ids: %q[['U12345','U27345']], entity_type: %q[]) }.to raise_error ArgumentError, /Required arguments :policy_name missing/
17
17
  end
18
18
  end
19
19
  context 'admin.auth.policy_getEntities' do
@@ -23,13 +23,13 @@ RSpec.describe Slack::Web::Api::Endpoints::AdminAuthPolicy do
23
23
  end
24
24
  context 'admin.auth.policy_removeEntities' do
25
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/
26
+ expect { client.admin_auth_policy_removeEntities(entity_type: %q[], policy_name: %q[email_password]) }.to raise_error ArgumentError, /Required arguments :entity_ids missing/
27
27
  end
28
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/
29
+ expect { client.admin_auth_policy_removeEntities(entity_ids: %q[['U1234']], policy_name: %q[email_password]) }.to raise_error ArgumentError, /Required arguments :entity_type missing/
30
30
  end
31
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/
32
+ expect { client.admin_auth_policy_removeEntities(entity_ids: %q[['U1234']], entity_type: %q[]) }.to raise_error ArgumentError, /Required arguments :policy_name missing/
33
33
  end
34
34
  end
35
35
  end
@@ -22,7 +22,7 @@ RSpec.describe Slack::Web::Api::Endpoints::AdminConversations do
22
22
  end
23
23
  context 'admin.conversations_bulkMove' do
24
24
  it 'requires channel_ids' do
25
- expect { client.admin_conversations_bulkMove(target_team_id: %q[]) }.to raise_error ArgumentError, /Required arguments :channel_ids missing/
25
+ expect { client.admin_conversations_bulkMove(target_team_id: %q[T1234567890]) }.to raise_error ArgumentError, /Required arguments :channel_ids missing/
26
26
  end
27
27
  it 'requires target_team_id' do
28
28
  expect { client.admin_conversations_bulkMove(channel_ids: %q[]) }.to raise_error ArgumentError, /Required arguments :target_team_id missing/
@@ -40,10 +40,10 @@ RSpec.describe Slack::Web::Api::Endpoints::AdminConversations do
40
40
  end
41
41
  context 'admin.conversations_create' do
42
42
  it 'requires is_private' do
43
- expect { client.admin_conversations_create(name: %q[]) }.to raise_error ArgumentError, /Required arguments :is_private missing/
43
+ expect { client.admin_conversations_create(name: %q[mychannel]) }.to raise_error ArgumentError, /Required arguments :is_private missing/
44
44
  end
45
45
  it 'requires name' do
46
- expect { client.admin_conversations_create(is_private: %q[]) }.to raise_error ArgumentError, /Required arguments :name missing/
46
+ expect { client.admin_conversations_create(is_private: %q[true]) }.to raise_error ArgumentError, /Required arguments :name missing/
47
47
  end
48
48
  end
49
49
  context 'admin.conversations_delete' do
@@ -73,10 +73,10 @@ RSpec.describe Slack::Web::Api::Endpoints::AdminConversations do
73
73
  end
74
74
  context 'admin.conversations_invite' do
75
75
  it 'requires channel_id' do
76
- expect { client.admin_conversations_invite(user_ids: %q[]) }.to raise_error ArgumentError, /Required arguments :channel_id missing/
76
+ expect { client.admin_conversations_invite(user_ids: %q[U1234,U2345,U3456]) }.to raise_error ArgumentError, /Required arguments :channel_id missing/
77
77
  end
78
78
  it 'requires user_ids' do
79
- expect { client.admin_conversations_invite(channel_id: %q[]) }.to raise_error ArgumentError, /Required arguments :user_ids missing/
79
+ expect { client.admin_conversations_invite(channel_id: %q[C12345]) }.to raise_error ArgumentError, /Required arguments :user_ids missing/
80
80
  end
81
81
  end
82
82
  context 'admin.conversations_lookup' do
@@ -97,23 +97,27 @@ RSpec.describe Slack::Web::Api::Endpoints::AdminConversations do
97
97
  expect { client.admin_conversations_rename(name: %q[]) }.to raise_error ArgumentError, /Required arguments :channel_id missing/
98
98
  end
99
99
  it 'requires name' do
100
- expect { client.admin_conversations_rename(channel_id: %q[]) }.to raise_error ArgumentError, /Required arguments :name missing/
100
+ expect { client.admin_conversations_rename(channel_id: %q[C12345]) }.to raise_error ArgumentError, /Required arguments :name missing/
101
101
  end
102
102
  end
103
103
  context 'admin.conversations_setConversationPrefs' do
104
104
  it 'requires channel_id' do
105
- expect { client.admin_conversations_setConversationPrefs(prefs: %q[]) }.to raise_error ArgumentError, /Required arguments :channel_id missing/
105
+ expect { client.admin_conversations_setConversationPrefs(prefs: %q[{'who_can_post':'type:admin,user:U1234'}]) }.to raise_error ArgumentError, /Required arguments :channel_id missing/
106
106
  end
107
107
  it 'requires prefs' do
108
- expect { client.admin_conversations_setConversationPrefs(channel_id: %q[]) }.to raise_error ArgumentError, /Required arguments :prefs missing/
108
+ expect { client.admin_conversations_setConversationPrefs(channel_id: %q[C1234]) }.to raise_error ArgumentError, /Required arguments :prefs missing/
109
+ end
110
+ it 'encodes prefs as json' do
111
+ expect(client).to receive(:post).with('admin.conversations.setConversationPrefs', {channel_id: %q[C1234], prefs: %q[{"data":["data"]}]})
112
+ client.admin_conversations_setConversationPrefs(channel_id: %q[C1234], prefs: {:data=>["data"]})
109
113
  end
110
114
  end
111
115
  context 'admin.conversations_setCustomRetention' do
112
116
  it 'requires channel_id' do
113
- expect { client.admin_conversations_setCustomRetention(duration_days: %q[]) }.to raise_error ArgumentError, /Required arguments :channel_id missing/
117
+ expect { client.admin_conversations_setCustomRetention(duration_days: %q[500]) }.to raise_error ArgumentError, /Required arguments :channel_id missing/
114
118
  end
115
119
  it 'requires duration_days' do
116
- expect { client.admin_conversations_setCustomRetention(channel_id: %q[]) }.to raise_error ArgumentError, /Required arguments :duration_days missing/
120
+ expect { client.admin_conversations_setCustomRetention(channel_id: %q[C12345678]) }.to raise_error ArgumentError, /Required arguments :duration_days missing/
117
121
  end
118
122
  end
119
123
  context 'admin.conversations_setTeams' do
@@ -0,0 +1,21 @@
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::AdminFunctionsPermissions do
7
+ let(:client) { Slack::Web::Client.new }
8
+ context 'admin.functions.permissions_lookup' do
9
+ it 'requires function_ids' do
10
+ expect { client.admin_functions_permissions_lookup }.to raise_error ArgumentError, /Required arguments :function_ids missing/
11
+ end
12
+ end
13
+ context 'admin.functions.permissions_set' do
14
+ it 'requires function_id' do
15
+ expect { client.admin_functions_permissions_set(visibility: %q[]) }.to raise_error ArgumentError, /Required arguments :function_id missing/
16
+ end
17
+ it 'requires visibility' do
18
+ expect { client.admin_functions_permissions_set(function_id: %q[]) }.to raise_error ArgumentError, /Required arguments :visibility missing/
19
+ end
20
+ end
21
+ end
@@ -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::AdminFunctions do
7
+ let(:client) { Slack::Web::Client.new }
8
+ context 'admin.functions_list' do
9
+ it 'requires app_ids' do
10
+ expect { client.admin_functions_list }.to raise_error ArgumentError, /Required arguments :app_ids missing/
11
+ end
12
+ end
13
+ end
@@ -7,24 +7,24 @@ RSpec.describe Slack::Web::Api::Endpoints::AdminRoles do
7
7
  let(:client) { Slack::Web::Client.new }
8
8
  context 'admin.roles_addAssignments' do
9
9
  it 'requires entity_ids' do
10
- expect { client.admin_roles_addAssignments(role_id: %q[], user_ids: %q[]) }.to raise_error ArgumentError, /Required arguments :entity_ids missing/
10
+ expect { client.admin_roles_addAssignments(role_id: %q[R0001], user_ids: %q[['U00000001', 'U00000002', 'U00000003']]) }.to raise_error ArgumentError, /Required arguments :entity_ids missing/
11
11
  end
12
12
  it 'requires role_id' do
13
- expect { client.admin_roles_addAssignments(entity_ids: %q[], user_ids: %q[]) }.to raise_error ArgumentError, /Required arguments :role_id missing/
13
+ expect { client.admin_roles_addAssignments(entity_ids: %q[['T00000001', 'E00000002']], user_ids: %q[['U00000001', 'U00000002', 'U00000003']]) }.to raise_error ArgumentError, /Required arguments :role_id missing/
14
14
  end
15
15
  it 'requires user_ids' do
16
- expect { client.admin_roles_addAssignments(entity_ids: %q[], role_id: %q[]) }.to raise_error ArgumentError, /Required arguments :user_ids missing/
16
+ expect { client.admin_roles_addAssignments(entity_ids: %q[['T00000001', 'E00000002']], role_id: %q[R0001]) }.to raise_error ArgumentError, /Required arguments :user_ids missing/
17
17
  end
18
18
  end
19
19
  context 'admin.roles_removeAssignments' do
20
20
  it 'requires entity_ids' do
21
- expect { client.admin_roles_removeAssignments(role_id: %q[], user_ids: %q[]) }.to raise_error ArgumentError, /Required arguments :entity_ids missing/
21
+ expect { client.admin_roles_removeAssignments(role_id: %q[R0001], user_ids: %q[['U00000001', 'U00000002', 'U00000003']]) }.to raise_error ArgumentError, /Required arguments :entity_ids missing/
22
22
  end
23
23
  it 'requires role_id' do
24
- expect { client.admin_roles_removeAssignments(entity_ids: %q[], user_ids: %q[]) }.to raise_error ArgumentError, /Required arguments :role_id missing/
24
+ expect { client.admin_roles_removeAssignments(entity_ids: %q[['T00000001', 'E00000002']], user_ids: %q[['U00000001', 'U00000002', 'U00000003']]) }.to raise_error ArgumentError, /Required arguments :role_id missing/
25
25
  end
26
26
  it 'requires user_ids' do
27
- expect { client.admin_roles_removeAssignments(entity_ids: %q[], role_id: %q[]) }.to raise_error ArgumentError, /Required arguments :user_ids missing/
27
+ expect { client.admin_roles_removeAssignments(entity_ids: %q[['T00000001', 'E00000002']], role_id: %q[R0001]) }.to raise_error ArgumentError, /Required arguments :user_ids missing/
28
28
  end
29
29
  end
30
30
  end
@@ -39,7 +39,7 @@ RSpec.describe Slack::Web::Api::Endpoints::AdminTeamsSettings do
39
39
  expect { client.admin_teams_settings_setIcon(team_id: %q[]) }.to raise_error ArgumentError, /Required arguments :image_url missing/
40
40
  end
41
41
  it 'requires team_id' do
42
- expect { client.admin_teams_settings_setIcon(image_url: %q[]) }.to raise_error ArgumentError, /Required arguments :team_id missing/
42
+ expect { client.admin_teams_settings_setIcon(image_url: %q[http://mysite.com/icon.jpeg]) }.to raise_error ArgumentError, /Required arguments :team_id missing/
43
43
  end
44
44
  end
45
45
  context 'admin.teams.settings_setName' do
@@ -7,18 +7,18 @@ RSpec.describe Slack::Web::Api::Endpoints::AdminUsergroups do
7
7
  let(:client) { Slack::Web::Client.new }
8
8
  context 'admin.usergroups_addChannels' do
9
9
  it 'requires channel_ids' do
10
- expect { client.admin_usergroups_addChannels(usergroup_id: %q[]) }.to raise_error ArgumentError, /Required arguments :channel_ids missing/
10
+ expect { client.admin_usergroups_addChannels(usergroup_id: %q[S00000000]) }.to raise_error ArgumentError, /Required arguments :channel_ids missing/
11
11
  end
12
12
  it 'requires usergroup_id' do
13
- expect { client.admin_usergroups_addChannels(channel_ids: %q[]) }.to raise_error ArgumentError, /Required arguments :usergroup_id missing/
13
+ expect { client.admin_usergroups_addChannels(channel_ids: %q[C00000000,C00000001]) }.to raise_error ArgumentError, /Required arguments :usergroup_id missing/
14
14
  end
15
15
  end
16
16
  context 'admin.usergroups_addTeams' do
17
17
  it 'requires team_ids' do
18
- expect { client.admin_usergroups_addTeams(usergroup_id: %q[]) }.to raise_error ArgumentError, /Required arguments :team_ids missing/
18
+ expect { client.admin_usergroups_addTeams(usergroup_id: %q[S12345678]) }.to raise_error ArgumentError, /Required arguments :team_ids missing/
19
19
  end
20
20
  it 'requires usergroup_id' do
21
- expect { client.admin_usergroups_addTeams(team_ids: %q[]) }.to raise_error ArgumentError, /Required arguments :usergroup_id missing/
21
+ expect { client.admin_usergroups_addTeams(team_ids: %q[T12345678,T98765432]) }.to raise_error ArgumentError, /Required arguments :usergroup_id missing/
22
22
  end
23
23
  end
24
24
  context 'admin.usergroups_listChannels' do
@@ -28,10 +28,10 @@ RSpec.describe Slack::Web::Api::Endpoints::AdminUsergroups do
28
28
  end
29
29
  context 'admin.usergroups_removeChannels' do
30
30
  it 'requires channel_ids' do
31
- expect { client.admin_usergroups_removeChannels(usergroup_id: %q[]) }.to raise_error ArgumentError, /Required arguments :channel_ids missing/
31
+ expect { client.admin_usergroups_removeChannels(usergroup_id: %q[S00000000]) }.to raise_error ArgumentError, /Required arguments :channel_ids missing/
32
32
  end
33
33
  it 'requires usergroup_id' do
34
- expect { client.admin_usergroups_removeChannels(channel_ids: %q[]) }.to raise_error ArgumentError, /Required arguments :usergroup_id missing/
34
+ expect { client.admin_usergroups_removeChannels(channel_ids: %q[C00000000,C00000001]) }.to raise_error ArgumentError, /Required arguments :usergroup_id missing/
35
35
  end
36
36
  end
37
37
  end
@@ -17,10 +17,10 @@ RSpec.describe Slack::Web::Api::Endpoints::AdminUsersSession do
17
17
  end
18
18
  context 'admin.users.session_invalidate' do
19
19
  it 'requires session_id' do
20
- expect { client.admin_users_session_invalidate(team_id: %q[]) }.to raise_error ArgumentError, /Required arguments :session_id missing/
20
+ expect { client.admin_users_session_invalidate(team_id: %q[T1234]) }.to raise_error ArgumentError, /Required arguments :session_id missing/
21
21
  end
22
22
  it 'requires team_id' do
23
- expect { client.admin_users_session_invalidate(session_id: %q[]) }.to raise_error ArgumentError, /Required arguments :team_id missing/
23
+ expect { client.admin_users_session_invalidate(session_id: %q[12345]) }.to raise_error ArgumentError, /Required arguments :team_id missing/
24
24
  end
25
25
  end
26
26
  context 'admin.users.session_reset' do
@@ -15,18 +15,18 @@ RSpec.describe Slack::Web::Api::Endpoints::AdminUsers do
15
15
  end
16
16
  context 'admin.users_invite' do
17
17
  it 'requires channel_ids' do
18
- expect { client.admin_users_invite(email: %q[], team_id: %q[]) }.to raise_error ArgumentError, /Required arguments :channel_ids missing/
18
+ expect { client.admin_users_invite(email: %q[joe@email.com], team_id: %q[]) }.to raise_error ArgumentError, /Required arguments :channel_ids missing/
19
19
  end
20
20
  it 'requires email' do
21
- expect { client.admin_users_invite(channel_ids: %q[], team_id: %q[]) }.to raise_error ArgumentError, /Required arguments :email missing/
21
+ expect { client.admin_users_invite(channel_ids: %q[C1A2B3C4D,C26Z25Y24], team_id: %q[]) }.to raise_error ArgumentError, /Required arguments :email missing/
22
22
  end
23
23
  it 'requires team_id' do
24
- expect { client.admin_users_invite(channel_ids: %q[], email: %q[]) }.to raise_error ArgumentError, /Required arguments :team_id missing/
24
+ expect { client.admin_users_invite(channel_ids: %q[C1A2B3C4D,C26Z25Y24], email: %q[joe@email.com]) }.to raise_error ArgumentError, /Required arguments :team_id missing/
25
25
  end
26
26
  end
27
27
  context 'admin.users_remove' do
28
28
  it 'requires team_id' do
29
- expect { client.admin_users_remove(user_id: %q[]) }.to raise_error ArgumentError, /Required arguments :team_id missing/
29
+ expect { client.admin_users_remove(user_id: %q[W12345678]) }.to raise_error ArgumentError, /Required arguments :team_id missing/
30
30
  end
31
31
  it 'requires user_id' do
32
32
  expect { client.admin_users_remove(team_id: %q[]) }.to raise_error ArgumentError, /Required arguments :user_id missing/
@@ -34,7 +34,7 @@ RSpec.describe Slack::Web::Api::Endpoints::AdminUsers do
34
34
  end
35
35
  context 'admin.users_setAdmin' do
36
36
  it 'requires team_id' do
37
- expect { client.admin_users_setAdmin(user_id: %q[]) }.to raise_error ArgumentError, /Required arguments :team_id missing/
37
+ expect { client.admin_users_setAdmin(user_id: %q[W12345678]) }.to raise_error ArgumentError, /Required arguments :team_id missing/
38
38
  end
39
39
  it 'requires user_id' do
40
40
  expect { client.admin_users_setAdmin(team_id: %q[]) }.to raise_error ArgumentError, /Required arguments :user_id missing/
@@ -42,10 +42,10 @@ RSpec.describe Slack::Web::Api::Endpoints::AdminUsers do
42
42
  end
43
43
  context 'admin.users_setExpiration' do
44
44
  it 'requires expiration_ts' do
45
- expect { client.admin_users_setExpiration(user_id: %q[]) }.to raise_error ArgumentError, /Required arguments :expiration_ts missing/
45
+ expect { client.admin_users_setExpiration(user_id: %q[W12345678]) }.to raise_error ArgumentError, /Required arguments :expiration_ts missing/
46
46
  end
47
47
  it 'requires user_id' do
48
- expect { client.admin_users_setExpiration(expiration_ts: %q[]) }.to raise_error ArgumentError, /Required arguments :user_id missing/
48
+ expect { client.admin_users_setExpiration(expiration_ts: %q[1234567890]) }.to raise_error ArgumentError, /Required arguments :user_id missing/
49
49
  end
50
50
  end
51
51
  context 'admin.users_setOwner' do
@@ -58,7 +58,7 @@ RSpec.describe Slack::Web::Api::Endpoints::AdminUsers do
58
58
  end
59
59
  context 'admin.users_setRegular' do
60
60
  it 'requires team_id' do
61
- expect { client.admin_users_setRegular(user_id: %q[]) }.to raise_error ArgumentError, /Required arguments :team_id missing/
61
+ expect { client.admin_users_setRegular(user_id: %q[W12345678]) }.to raise_error ArgumentError, /Required arguments :team_id missing/
62
62
  end
63
63
  it 'requires user_id' do
64
64
  expect { client.admin_users_setRegular(team_id: %q[]) }.to raise_error ArgumentError, /Required arguments :user_id missing/
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ require 'spec_helper'
5
+
6
+ RSpec.describe Slack::Web::Api::Endpoints::AdminWorkflowsCollaborators do
7
+ let(:client) { Slack::Web::Client.new }
8
+ context 'admin.workflows.collaborators_add' do
9
+ it 'requires collaborator_ids' do
10
+ expect { client.admin_workflows_collaborators_add(workflow_ids: %q[]) }.to raise_error ArgumentError, /Required arguments :collaborator_ids missing/
11
+ end
12
+ it 'requires workflow_ids' do
13
+ expect { client.admin_workflows_collaborators_add(collaborator_ids: %q[]) }.to raise_error ArgumentError, /Required arguments :workflow_ids missing/
14
+ end
15
+ end
16
+ context 'admin.workflows.collaborators_remove' do
17
+ it 'requires collaborator_ids' do
18
+ expect { client.admin_workflows_collaborators_remove(workflow_ids: %q[]) }.to raise_error ArgumentError, /Required arguments :collaborator_ids missing/
19
+ end
20
+ it 'requires workflow_ids' do
21
+ expect { client.admin_workflows_collaborators_remove(collaborator_ids: %q[]) }.to raise_error ArgumentError, /Required arguments :workflow_ids missing/
22
+ end
23
+ end
24
+ end
@@ -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::AdminWorkflowsPermissions do
7
+ let(:client) { Slack::Web::Client.new }
8
+ context 'admin.workflows.permissions_lookup' do
9
+ it 'requires workflow_ids' do
10
+ expect { client.admin_workflows_permissions_lookup }.to raise_error ArgumentError, /Required arguments :workflow_ids missing/
11
+ end
12
+ end
13
+ end
@@ -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::AdminWorkflows do
7
+ let(:client) { Slack::Web::Client.new }
8
+ context 'admin.workflows_unpublish' do
9
+ it 'requires workflow_ids' do
10
+ expect { client.admin_workflows_unpublish }.to raise_error ArgumentError, /Required arguments :workflow_ids missing/
11
+ end
12
+ end
13
+ end
@@ -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::AppsActivities do
7
+ let(:client) { Slack::Web::Client.new }
8
+ context 'apps.activities_list' do
9
+ it 'requires app_id' do
10
+ expect { client.apps_activities_list }.to raise_error ArgumentError, /Required arguments :app_id missing/
11
+ end
12
+ end
13
+ end
@@ -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::AppsAuthExternal do
7
+ let(:client) { Slack::Web::Client.new }
8
+ context 'apps.auth.external_get' do
9
+ it 'requires external_token_id' do
10
+ expect { client.apps_auth_external_get }.to raise_error ArgumentError, /Required arguments :external_token_id missing/
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,45 @@
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::AppsDatastore do
7
+ let(:client) { Slack::Web::Client.new }
8
+ context 'apps.datastore_delete' do
9
+ it 'requires datastore' do
10
+ expect { client.apps_datastore_delete(id: %q[]) }.to raise_error ArgumentError, /Required arguments :datastore missing/
11
+ end
12
+ it 'requires id' do
13
+ expect { client.apps_datastore_delete(datastore: %q[]) }.to raise_error ArgumentError, /Required arguments :id missing/
14
+ end
15
+ end
16
+ context 'apps.datastore_get' do
17
+ it 'requires datastore' do
18
+ expect { client.apps_datastore_get(id: %q[]) }.to raise_error ArgumentError, /Required arguments :datastore missing/
19
+ end
20
+ it 'requires id' do
21
+ expect { client.apps_datastore_get(datastore: %q[]) }.to raise_error ArgumentError, /Required arguments :id missing/
22
+ end
23
+ end
24
+ context 'apps.datastore_put' do
25
+ it 'requires datastore' do
26
+ expect { client.apps_datastore_put(item: %q[]) }.to raise_error ArgumentError, /Required arguments :datastore missing/
27
+ end
28
+ it 'requires item' do
29
+ expect { client.apps_datastore_put(datastore: %q[]) }.to raise_error ArgumentError, /Required arguments :item missing/
30
+ end
31
+ end
32
+ context 'apps.datastore_query' do
33
+ it 'requires datastore' do
34
+ expect { client.apps_datastore_query }.to raise_error ArgumentError, /Required arguments :datastore missing/
35
+ end
36
+ end
37
+ context 'apps.datastore_update' do
38
+ it 'requires datastore' do
39
+ expect { client.apps_datastore_update(item: %q[]) }.to raise_error ArgumentError, /Required arguments :datastore missing/
40
+ end
41
+ it 'requires item' do
42
+ expect { client.apps_datastore_update(datastore: %q[]) }.to raise_error ArgumentError, /Required arguments :item missing/
43
+ end
44
+ end
45
+ end
@@ -9,6 +9,10 @@ RSpec.describe Slack::Web::Api::Endpoints::AppsManifest do
9
9
  it 'requires manifest' do
10
10
  expect { client.apps_manifest_create }.to raise_error ArgumentError, /Required arguments :manifest missing/
11
11
  end
12
+ it 'encodes manifest as json' do
13
+ expect(client).to receive(:post).with('apps.manifest.create', {manifest: %q[{"data":["data"]}]})
14
+ client.apps_manifest_create(manifest: {:data=>["data"]})
15
+ end
12
16
  end
13
17
  context 'apps.manifest_delete' do
14
18
  it 'requires app_id' do
@@ -27,6 +31,10 @@ RSpec.describe Slack::Web::Api::Endpoints::AppsManifest do
27
31
  it 'requires manifest' do
28
32
  expect { client.apps_manifest_update(app_id: %q[]) }.to raise_error ArgumentError, /Required arguments :manifest missing/
29
33
  end
34
+ it 'encodes manifest as json' do
35
+ expect(client).to receive(:post).with('apps.manifest.update', {app_id: %q[], manifest: %q[{"data":["data"]}]})
36
+ client.apps_manifest_update(app_id: %q[], manifest: {:data=>["data"]})
37
+ end
30
38
  end
31
39
  context 'apps.manifest_validate' do
32
40
  it 'requires manifest' do