ruby-lokalise-api 2.9.0.1 → 4.1.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.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/.github/CODE_OF_CONDUCT.md +1 -1
  3. data/.github/CONTRIBUTING.md +9 -2
  4. data/CHANGELOG.md +1 -80
  5. data/LICENSE +9 -18
  6. data/README.md +18 -1734
  7. data/lib/ruby-lokalise-api.rb +2 -0
  8. data/lib/ruby-lokalise-api/client.rb +17 -5
  9. data/lib/ruby-lokalise-api/collections/base.rb +5 -3
  10. data/lib/ruby-lokalise-api/collections/queued_process.rb +15 -0
  11. data/lib/ruby-lokalise-api/connection.rb +1 -1
  12. data/lib/ruby-lokalise-api/data/attributes.json +30 -12
  13. data/lib/ruby-lokalise-api/request.rb +8 -1
  14. data/lib/ruby-lokalise-api/resources/base.rb +55 -25
  15. data/lib/ruby-lokalise-api/resources/branch.rb +1 -1
  16. data/lib/ruby-lokalise-api/resources/contributor.rb +1 -1
  17. data/lib/ruby-lokalise-api/resources/custom_translation_status.rb +1 -1
  18. data/lib/ruby-lokalise-api/resources/file.rb +3 -1
  19. data/lib/ruby-lokalise-api/resources/key.rb +1 -1
  20. data/lib/ruby-lokalise-api/resources/key_comment.rb +1 -1
  21. data/lib/ruby-lokalise-api/resources/order.rb +2 -0
  22. data/lib/ruby-lokalise-api/resources/payment_card.rb +1 -1
  23. data/lib/ruby-lokalise-api/resources/project.rb +2 -2
  24. data/lib/ruby-lokalise-api/resources/project_language.rb +1 -1
  25. data/lib/ruby-lokalise-api/resources/queued_process.rb +18 -0
  26. data/lib/ruby-lokalise-api/resources/screenshot.rb +1 -1
  27. data/lib/ruby-lokalise-api/resources/snapshot.rb +3 -1
  28. data/lib/ruby-lokalise-api/resources/task.rb +1 -1
  29. data/lib/ruby-lokalise-api/resources/team_user.rb +1 -1
  30. data/lib/ruby-lokalise-api/resources/team_user_group.rb +2 -1
  31. data/lib/ruby-lokalise-api/resources/translation.rb +1 -1
  32. data/lib/ruby-lokalise-api/resources/translation_provider.rb +3 -0
  33. data/lib/ruby-lokalise-api/resources/webhook.rb +11 -3
  34. data/lib/ruby-lokalise-api/rest/comments.rb +5 -5
  35. data/lib/ruby-lokalise-api/rest/contributors.rb +5 -5
  36. data/lib/ruby-lokalise-api/rest/custom_translation_statuses.rb +6 -6
  37. data/lib/ruby-lokalise-api/rest/files.rb +3 -3
  38. data/lib/ruby-lokalise-api/rest/keys.rb +7 -7
  39. data/lib/ruby-lokalise-api/rest/languages.rb +6 -6
  40. data/lib/ruby-lokalise-api/rest/payment_cards.rb +3 -3
  41. data/lib/ruby-lokalise-api/rest/projects.rb +6 -6
  42. data/lib/ruby-lokalise-api/rest/queued_processes.rb +26 -0
  43. data/lib/ruby-lokalise-api/rest/screenshots.rb +5 -5
  44. data/lib/ruby-lokalise-api/rest/snapshots.rb +4 -4
  45. data/lib/ruby-lokalise-api/rest/tasks.rb +5 -5
  46. data/lib/ruby-lokalise-api/rest/team_user_group.rb +4 -4
  47. data/lib/ruby-lokalise-api/rest/team_users.rb +4 -4
  48. data/lib/ruby-lokalise-api/rest/teams.rb +1 -1
  49. data/lib/ruby-lokalise-api/rest/translation_providers.rb +2 -2
  50. data/lib/ruby-lokalise-api/rest/translations.rb +3 -3
  51. data/lib/ruby-lokalise-api/rest/webhooks.rb +16 -5
  52. data/lib/ruby-lokalise-api/utils/attribute_helpers.rb +11 -6
  53. data/lib/ruby-lokalise-api/version.rb +1 -1
  54. data/ruby-lokalise-api.gemspec +6 -6
  55. data/spec/lib/ruby-lokalise-api/custom_json_parser_spec.rb +4 -4
  56. data/spec/lib/ruby-lokalise-api/error_spec.rb +8 -0
  57. data/spec/lib/ruby-lokalise-api/rest/branches_spec.rb +12 -0
  58. data/spec/lib/ruby-lokalise-api/rest/comments_spec.rb +12 -0
  59. data/spec/lib/ruby-lokalise-api/rest/contributors_spec.rb +12 -0
  60. data/spec/lib/ruby-lokalise-api/rest/custom_translation_statuses_spec.rb +12 -0
  61. data/spec/lib/ruby-lokalise-api/rest/files_spec.rb +17 -9
  62. data/spec/lib/ruby-lokalise-api/rest/keys_spec.rb +38 -20
  63. data/spec/lib/ruby-lokalise-api/rest/languages_spec.rb +12 -0
  64. data/spec/lib/ruby-lokalise-api/rest/orders_spec.rb +38 -2
  65. data/spec/lib/ruby-lokalise-api/rest/payment_cards_spec.rb +19 -5
  66. data/spec/lib/ruby-lokalise-api/rest/projects_spec.rb +12 -0
  67. data/spec/lib/ruby-lokalise-api/rest/queued_processes_spec.rb +57 -0
  68. data/spec/lib/ruby-lokalise-api/rest/screenshots_spec.rb +12 -0
  69. data/spec/lib/ruby-lokalise-api/rest/snapshots_spec.rb +25 -0
  70. data/spec/lib/ruby-lokalise-api/rest/tasks_spec.rb +20 -7
  71. data/spec/lib/ruby-lokalise-api/rest/team_user_groups_spec.rb +84 -0
  72. data/spec/lib/ruby-lokalise-api/rest/team_users_spec.rb +13 -0
  73. data/spec/lib/ruby-lokalise-api/rest/translation_providers_spec.rb +5 -0
  74. data/spec/lib/ruby-lokalise-api/rest/translations_spec.rb +12 -0
  75. data/spec/lib/ruby-lokalise-api/rest/webhooks_spec.rb +50 -0
  76. metadata +21 -16
@@ -51,6 +51,18 @@ RSpec.describe Lokalise::Client do
51
51
  expect(project.statistics['progress_total']).to eq(18)
52
52
  end
53
53
 
54
+ specify '#reload_data' do
55
+ project = VCR.use_cassette('project') do
56
+ test_client.project '803826145ba90b42d5d860.46800099'
57
+ end
58
+
59
+ reloaded_project = VCR.use_cassette('project') do
60
+ project.reload_data
61
+ end
62
+
63
+ expect(reloaded_project.project_id).to eq(project.project_id)
64
+ end
65
+
54
66
  specify '#create_project' do
55
67
  project = VCR.use_cassette('new_project') do
56
68
  test_client.create_project name: 'rspec proj', description: 'demo project for rspec'
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe Lokalise::Client do
4
+ let(:project_id) { '803826145ba90b42d5d860.46800099' }
5
+ let(:process_id) { '3b943469e6b3e324b5bdad639b122a623e6e7a1a' }
6
+ let(:queued_process_id) { '85c42bf5eff44648ca2f01f9db67b7d306a2f282' }
7
+
8
+ describe '#queued_processes' do
9
+ it 'returns all queued processes' do
10
+ processes = VCR.use_cassette('all_queued_processes') do
11
+ test_client.queued_processes project_id
12
+ end
13
+
14
+ expect(processes.branch).to eq('master')
15
+ processes = processes.collection
16
+ expect(processes.count).to eq(8)
17
+ expect(processes.first.process_id).to eq(process_id)
18
+ end
19
+ end
20
+
21
+ specify '#queued_process' do
22
+ process = VCR.use_cassette('queued_process') do
23
+ test_client.queued_process project_id, process_id
24
+ end
25
+
26
+ expect(process.branch).to eq('master')
27
+ expect(process.process_id).to eq(process_id)
28
+ expect(process.type).to eq('file-import')
29
+ expect(process.status).to eq('finished')
30
+ expect(process.message).to eq('')
31
+ expect(process.created_by).to eq(20_181)
32
+ expect(process.created_by_email).to eq('bodrovis@protonmail.com')
33
+ expect(process.created_at).to eq('2020-05-13 11:24:37 (Etc/UTC)')
34
+ expect(process.created_at_timestamp).to eq(1_589_369_077)
35
+ files = process.details['files']
36
+ expect(files.count).to eq(1)
37
+ expect(files[0]['status']).to eq('finished')
38
+ expect(files[0]['name_original']).to eq('test_async.json')
39
+ end
40
+
41
+ describe 'process status check' do
42
+ specify '#reload_data' do
43
+ queued_process = VCR.use_cassette('upload_file_status') do
44
+ test_client.queued_process project_id, queued_process_id
45
+ end
46
+
47
+ expect(queued_process.status).to eq('finished')
48
+
49
+ reloaded_process = VCR.use_cassette('upload_file_queued_reload') do
50
+ queued_process.reload_data
51
+ end
52
+
53
+ expect(reloaded_process.process_id).to eq(queued_process.process_id)
54
+ expect(reloaded_process.status).to eq('finished')
55
+ end
56
+ end
57
+ end
@@ -41,6 +41,18 @@ RSpec.describe Lokalise::Client do
41
41
  expect(screenshot.height).to eq(32)
42
42
  end
43
43
 
44
+ specify '#reload_data' do
45
+ screenshot = VCR.use_cassette('screenshot') do
46
+ test_client.screenshot project_id, screenshot_id
47
+ end
48
+
49
+ reloaded_screenshot = VCR.use_cassette('screenshot') do
50
+ screenshot.reload_data
51
+ end
52
+
53
+ expect(reloaded_screenshot.screenshot_id).to eq(screenshot.screenshot_id)
54
+ end
55
+
44
56
  specify '#create_screenshots' do
45
57
  screenshot_from_file do |file|
46
58
  screenshot = VCR.use_cassette('create_screenshots') do
@@ -68,6 +68,31 @@ RSpec.describe Lokalise::Client do
68
68
  end
69
69
 
70
70
  context 'when snapshot methods are chained' do
71
+ it 'allows restored project to receive chained methods' do
72
+ snapshot = VCR.use_cassette('create_snapshot_for_chained') do
73
+ test_client.create_snapshot project_id, title: 'chained rspec snap'
74
+ end
75
+
76
+ new_project = VCR.use_cassette('restore_snapshot_for_chained') do
77
+ snapshot.restore
78
+ end
79
+
80
+ updated_project = VCR.use_cassette('restored_updated_project') do
81
+ new_project.update name: 'Restored and updated'
82
+ end
83
+
84
+ expect(updated_project.client).to eq(test_client)
85
+ expect(updated_project.name).to eq('Restored and updated')
86
+ expect(updated_project.project_id).to eq(new_project.project_id)
87
+
88
+ response = VCR.use_cassette('delete_restored_project') do
89
+ updated_project.destroy
90
+ end
91
+
92
+ expect(response['project_id']).to eq(updated_project.project_id)
93
+ expect(response['project_deleted']).to eq(true)
94
+ end
95
+
71
96
  it 'supports destroy and restore' do
72
97
  snapshot = VCR.use_cassette('create_another_snapshot') do
73
98
  test_client.create_snapshot project_id, title: 'chained'
@@ -35,8 +35,8 @@ RSpec.describe Lokalise::Client do
35
35
  expect(task.task_id).to eq(11_925)
36
36
  expect(task.title).to eq('node updated')
37
37
  expect(task.description).to eq('')
38
- expect(task.status).to eq('in progress')
39
- expect(task.progress).to eq(1)
38
+ expect(task.status).to eq('completed')
39
+ expect(task.progress).to eq(0)
40
40
  expect(task.due_date).to eq(nil)
41
41
  expect(task.due_date_timestamp).to eq(nil)
42
42
  expect(task.keys_count).to eq(16)
@@ -45,21 +45,34 @@ RSpec.describe Lokalise::Client do
45
45
  expect(task.created_at_timestamp).to eq(1_557_764_126)
46
46
  expect(task.created_by).to eq(20_181)
47
47
  expect(task.created_by_email).to eq('bodrovis@protonmail.com')
48
- expect(task.can_be_parent).to eq(true)
48
+ expect(task.can_be_parent).to eq(false)
49
49
  expect(task.task_type).to eq('review')
50
50
  expect(task.parent_task_id).to eq(nil)
51
51
  expect(task.closing_tags).to eq([])
52
52
  expect(task.languages.first['language_iso']).to eq('sq')
53
53
  expect(task.auto_close_languages).to eq(true)
54
54
  expect(task.auto_close_task).to eq(true)
55
- expect(task.completed_by).to eq(nil)
56
- expect(task.completed_by_email).to eq(nil)
57
- expect(task.completed_at).to eq(nil)
58
- expect(task.completed_at_timestamp).to eq(nil)
55
+ expect(task.auto_close_items).to eq(true)
56
+ expect(task.completed_by).to eq(20_181)
57
+ expect(task.completed_by_email).to eq('bodrovis@protonmail.com')
58
+ expect(task.completed_at).to eq('2019-10-01 11:09:12 (Etc/UTC)')
59
+ expect(task.completed_at_timestamp).to eq(1_569_928_152)
59
60
  expect(task.do_lock_translations).to eq(false)
60
61
  expect(task.custom_translation_status_ids).to eq([])
61
62
  end
62
63
 
64
+ specify '#reload_data' do
65
+ task = VCR.use_cassette('task') do
66
+ test_client.task project_id, '11925'
67
+ end
68
+
69
+ reloaded_task = VCR.use_cassette('task') do
70
+ task.reload_data
71
+ end
72
+
73
+ expect(reloaded_task.task_id).to eq(task.task_id)
74
+ end
75
+
63
76
  specify '#create_task' do
64
77
  task = VCR.use_cassette('create_task') do
65
78
  test_client.create_task project_id, title: 'another rspec key',
@@ -45,6 +45,11 @@ RSpec.describe Lokalise::Client do
45
45
  expect(group.team_id).to eq(team_id)
46
46
  expect(group.projects.first).to eq('803826145ba90b42d5d860.46800099')
47
47
  expect(group.members[1]).to eq(25_753)
48
+
49
+ reloaded_group = VCR.use_cassette('team_user_group') do
50
+ group.reload_data
51
+ end
52
+ expect(reloaded_group.group_id).to eq(group.group_id)
48
53
  end
49
54
 
50
55
  specify '#create_team_user_group' do
@@ -60,6 +65,11 @@ RSpec.describe Lokalise::Client do
60
65
 
61
66
  expect(group.name).to eq('RSpec group')
62
67
  expect(group.team_id).to eq(team_id)
68
+
69
+ reloaded_group = VCR.use_cassette('created_team_user_group') do
70
+ group.reload_data
71
+ end
72
+ expect(reloaded_group.group_id).to eq(group.group_id)
63
73
  end
64
74
 
65
75
  specify '#update_team_user_group' do
@@ -91,6 +101,16 @@ RSpec.describe Lokalise::Client do
91
101
  expect(group.team_id).to eq(team_id)
92
102
  expect(group.group_id).to eq(third_group_id)
93
103
  expect(group.projects).to include(project_id)
104
+
105
+ reloaded_group = VCR.use_cassette('another_team_user_group') do
106
+ group.reload_data
107
+ end
108
+ expect(reloaded_group.group_id).to eq(group.group_id)
109
+
110
+ group = VCR.use_cassette('add_projects_to_group') do
111
+ group.add_projects projects: [project_id]
112
+ end
113
+ expect(group.group_id).to eq(third_group_id)
94
114
  end
95
115
 
96
116
  specify '#remove_projects_from_group' do
@@ -101,6 +121,16 @@ RSpec.describe Lokalise::Client do
101
121
  expect(group.group_id).to eq(third_group_id)
102
122
  expect(group.team_id).to eq(team_id)
103
123
  expect(group.projects).to be_empty
124
+
125
+ reloaded_group = VCR.use_cassette('another_team_user_group') do
126
+ group.reload_data
127
+ end
128
+ expect(reloaded_group.group_id).to eq(group.group_id)
129
+
130
+ group = VCR.use_cassette('remove_projects_from_group') do
131
+ group.remove_projects projects: [project_id]
132
+ end
133
+ expect(group.group_id).to eq(third_group_id)
104
134
  end
105
135
 
106
136
  specify '#add_users_to_group' do
@@ -111,6 +141,15 @@ RSpec.describe Lokalise::Client do
111
141
  expect(group.team_id).to eq(team_id)
112
142
  expect(group.group_id).to eq(third_group_id)
113
143
  expect(group.members).to include(user_id)
144
+
145
+ reloaded_group = VCR.use_cassette('another_team_user_group') do
146
+ group.reload_data
147
+ end
148
+ expect(reloaded_group.group_id).to eq(group.group_id)
149
+
150
+ group = VCR.use_cassette('add_users_to_group') do
151
+ group.add_users users: [user_id]
152
+ end
114
153
  end
115
154
 
116
155
  specify '#remove_users_from_group' do
@@ -121,6 +160,15 @@ RSpec.describe Lokalise::Client do
121
160
  expect(group.group_id).to eq(third_group_id)
122
161
  expect(group.team_id).to eq(team_id)
123
162
  expect(group.members).to be_empty
163
+
164
+ reloaded_group = VCR.use_cassette('another_team_user_group') do
165
+ group.reload_data
166
+ end
167
+ expect(reloaded_group.group_id).to eq(group.group_id)
168
+
169
+ group = VCR.use_cassette('remove_users_from_group') do
170
+ group.remove_users users: [user_id]
171
+ end
124
172
  end
125
173
 
126
174
  context 'when team user group methods are chained' do
@@ -160,6 +208,15 @@ RSpec.describe Lokalise::Client do
160
208
  expect(group.group_id).to eq(group_id)
161
209
  expect(group.projects).to include(another_project_id)
162
210
 
211
+ group = VCR.use_cassette('add_project_to_group_chained') do
212
+ group.add_projects(projects: [another_project_id])
213
+ end
214
+
215
+ reloaded_group = VCR.use_cassette('team_user_group') do
216
+ group.reload_data
217
+ end
218
+ expect(reloaded_group.group_id).to eq(group.group_id)
219
+
163
220
  group = VCR.use_cassette('remove_project_from_group_chained') do
164
221
  group.remove_projects(projects: [another_project_id])
165
222
  end
@@ -167,6 +224,15 @@ RSpec.describe Lokalise::Client do
167
224
  expect(group.team_id).to eq(team_id)
168
225
  expect(group.group_id).to eq(group_id)
169
226
  expect(group.projects).not_to include(another_project_id)
227
+
228
+ group = VCR.use_cassette('remove_project_from_group_chained') do
229
+ group.remove_projects(projects: [another_project_id])
230
+ end
231
+
232
+ reloaded_group = VCR.use_cassette('team_user_group') do
233
+ group.reload_data
234
+ end
235
+ expect(reloaded_group.group_id).to eq(group.group_id)
170
236
  end
171
237
 
172
238
  it 'supports users management' do
@@ -182,6 +248,15 @@ RSpec.describe Lokalise::Client do
182
248
  expect(group.group_id).to eq(group_id)
183
249
  expect(group.members).to include(user_id)
184
250
 
251
+ group = VCR.use_cassette('add_user_to_group_chained') do
252
+ group.add_users(users: [user_id])
253
+ end
254
+
255
+ reloaded_group = VCR.use_cassette('team_user_group') do
256
+ group.reload_data
257
+ end
258
+ expect(reloaded_group.group_id).to eq(group.group_id)
259
+
185
260
  group = VCR.use_cassette('remove_user_from_group_chained') do
186
261
  group.remove_users(users: [user_id])
187
262
  end
@@ -189,6 +264,15 @@ RSpec.describe Lokalise::Client do
189
264
  expect(group.team_id).to eq(team_id)
190
265
  expect(group.group_id).to eq(group_id)
191
266
  expect(group.members).not_to include(user_id)
267
+
268
+ group = VCR.use_cassette('remove_user_from_group_chained') do
269
+ group.remove_users(users: [user_id])
270
+ end
271
+
272
+ reloaded_group = VCR.use_cassette('team_user_group') do
273
+ group.reload_data
274
+ end
275
+ expect(reloaded_group.group_id).to eq(group.group_id)
192
276
  end
193
277
  end
194
278
  end
@@ -33,6 +33,7 @@ RSpec.describe Lokalise::Client do
33
33
  test_client.team_user team_id, '20181'
34
34
  end
35
35
 
36
+ expect(team_user.team_id).to eq(team_id)
36
37
  expect(team_user.user_id).to eq(20_181)
37
38
  expect(team_user.email).to eq('bodrovis@protonmail.com')
38
39
  expect(team_user.fullname).to eq('Ilya B')
@@ -41,6 +42,18 @@ RSpec.describe Lokalise::Client do
41
42
  expect(team_user.role).to eq('owner')
42
43
  end
43
44
 
45
+ specify '#reload_data' do
46
+ team_user = VCR.use_cassette('team_user') do
47
+ test_client.team_user team_id, '20181'
48
+ end
49
+
50
+ reloaded_team_user = VCR.use_cassette('team_user') do
51
+ team_user.reload_data
52
+ end
53
+
54
+ expect(reloaded_team_user.user_id).to eq(team_user.user_id)
55
+ end
56
+
44
57
  specify '#update_team_user' do
45
58
  team_user = VCR.use_cassette('update_team_user') do
46
59
  test_client.update_team_user team_id, team_user_id, role: 'admin'
@@ -39,5 +39,10 @@ RSpec.describe Lokalise::Client do
39
39
  expect(provider.description.start_with?('At')).to eq(true)
40
40
  expect(provider.tiers.first['title']).to eq('Native speaker')
41
41
  expect(provider.pairs.first['price_per_word']).to eq('0.05')
42
+
43
+ reloaded_provider = VCR.use_cassette('translation_provider') do
44
+ provider.reload_data
45
+ end
46
+ expect(reloaded_provider.provider_id).to eq(provider.provider_id)
42
47
  end
43
48
  end
@@ -76,6 +76,18 @@ RSpec.describe Lokalise::Client do
76
76
  expect(translation.custom_translation_statuses).to eq([])
77
77
  end
78
78
 
79
+ specify '#reload_data' do
80
+ translation = VCR.use_cassette('translation') do
81
+ test_client.translation project_id, translation_id
82
+ end
83
+
84
+ reloaded_translation = VCR.use_cassette('translation') do
85
+ translation.reload_data
86
+ end
87
+
88
+ expect(reloaded_translation.translation_id).to eq(translation.translation_id)
89
+ end
90
+
79
91
  specify '#update_translation' do
80
92
  translation = VCR.use_cassette('update_translation') do
81
93
  test_client.update_translation project_id, translation_id, translation: 'rspec trans',
@@ -4,6 +4,7 @@ RSpec.describe Lokalise::Client do
4
4
  let(:project_id) { '803826145ba90b42d5d860.46800099' }
5
5
  let(:webhook_id) { 'c7eb7e6e3c2fb2b26d0b64d0de083a5a71675b3d' }
6
6
  let(:new_webhook_id) { 'b345ccc6499920c490e8f4fe9487b1378dbf1dbf' }
7
+ let(:serious_webhook_id) { '795565582e5ab15a59bb68156c7e2e9eaa1e8d1a' }
7
8
 
8
9
  describe '#webhooks' do
9
10
  it 'returns all webhooks' do
@@ -40,6 +41,18 @@ RSpec.describe Lokalise::Client do
40
41
  expect(webhook.event_lang_map.first['event']).to eq('project.translation.updated')
41
42
  end
42
43
 
44
+ specify '#reload_data' do
45
+ webhook = VCR.use_cassette('webhook') do
46
+ test_client.webhook project_id, webhook_id
47
+ end
48
+
49
+ reloaded_webhook = VCR.use_cassette('webhook') do
50
+ webhook.reload_data
51
+ end
52
+
53
+ expect(reloaded_webhook.webhook_id).to eq(webhook.webhook_id)
54
+ end
55
+
43
56
  specify '#create_webhook' do
44
57
  webhook = VCR.use_cassette('create_webhook') do
45
58
  test_client.create_webhook project_id,
@@ -73,4 +86,41 @@ RSpec.describe Lokalise::Client do
73
86
  expect(response['project_id']).to eq(project_id)
74
87
  expect(response['webhook_deleted']).to eq(true)
75
88
  end
89
+
90
+ specify '#regenerate_webhook_secret' do
91
+ response = VCR.use_cassette('regenerate_webhook_secret') do
92
+ test_client.regenerate_webhook_secret project_id,
93
+ serious_webhook_id
94
+ end
95
+
96
+ expect(response['project_id']).to eq(project_id)
97
+ expect(response['secret']).not_to be_nil
98
+ end
99
+
100
+ context 'when webhook chained methods are used' do
101
+ it 'supports regenerate_webhook_secret' do
102
+ webhook = VCR.use_cassette('webhook_2') do
103
+ test_client.webhook project_id, serious_webhook_id
104
+ end
105
+
106
+ expect(webhook.branch).to eq('master')
107
+ expect(webhook.webhook_id).to eq(serious_webhook_id)
108
+
109
+ response = VCR.use_cassette('regenerate_webhook_secret_2') do
110
+ webhook.regenerate_secret
111
+ end
112
+
113
+ expect(response['project_id']).to eq(project_id)
114
+ expect(response['secret']).not_to be_nil
115
+ end
116
+
117
+ it 'supports update and destroy' do
118
+ webhook = VCR.use_cassette('webhook_2') do
119
+ test_client.webhook project_id, serious_webhook_id
120
+ end
121
+
122
+ expect(webhook).to respond_to(:update)
123
+ expect(webhook).to respond_to(:destroy)
124
+ end
125
+ end
76
126
  end