ruby-lokalise-api 4.5.1 → 6.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 (145) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +5 -3
  3. data/lib/ruby_lokalise_api/base_request.rb +24 -0
  4. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/client.rb +25 -26
  5. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/base.rb +10 -10
  6. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/branch.rb +1 -1
  7. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/contributor.rb +1 -1
  8. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/custom_translation_status.rb +1 -1
  9. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/file.rb +1 -1
  10. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/key.rb +2 -2
  11. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/key_comment.rb +1 -1
  12. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/order.rb +1 -1
  13. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/payment_card.rb +1 -1
  14. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/project.rb +1 -1
  15. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/project_comment.rb +1 -1
  16. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/project_language.rb +1 -1
  17. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/queued_process.rb +1 -1
  18. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/screenshot.rb +1 -1
  19. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/segment.rb +1 -1
  20. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/snapshot.rb +1 -1
  21. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/system_language.rb +1 -1
  22. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/task.rb +1 -1
  23. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/team.rb +1 -1
  24. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/team_user.rb +1 -1
  25. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/team_user_group.rb +1 -1
  26. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/translation.rb +1 -1
  27. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/translation_provider.rb +1 -1
  28. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/webhook.rb +1 -1
  29. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/connection.rb +4 -3
  30. data/lib/ruby_lokalise_api/data/attributes.yml +235 -0
  31. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/error.rb +14 -14
  32. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/json_handler.rb +1 -1
  33. data/lib/ruby_lokalise_api/oauth2/auth.rb +62 -0
  34. data/lib/ruby_lokalise_api/oauth2/connection.rb +25 -0
  35. data/lib/ruby_lokalise_api/oauth2/request.rb +23 -0
  36. data/lib/{ruby-lokalise-api/oauth_client.rb → ruby_lokalise_api/oauth2_client.rb} +2 -2
  37. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/request.rb +5 -16
  38. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/base.rb +8 -8
  39. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/branch.rb +1 -1
  40. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/contributor.rb +1 -1
  41. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/custom_translation_status.rb +1 -1
  42. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/file.rb +2 -2
  43. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/key.rb +1 -1
  44. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/key_comment.rb +1 -1
  45. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/order.rb +1 -1
  46. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/payment_card.rb +1 -1
  47. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/project.rb +1 -1
  48. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/project_comment.rb +1 -1
  49. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/project_language.rb +1 -1
  50. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/queued_process.rb +1 -1
  51. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/screenshot.rb +1 -1
  52. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/segment.rb +1 -1
  53. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/snapshot.rb +2 -2
  54. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/system_language.rb +1 -1
  55. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/task.rb +1 -1
  56. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/team.rb +1 -1
  57. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/team_user.rb +1 -1
  58. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/team_user_billing_details.rb +1 -1
  59. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/team_user_group.rb +1 -1
  60. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/translation.rb +1 -1
  61. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/translation_provider.rb +1 -1
  62. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/webhook.rb +1 -1
  63. data/lib/ruby_lokalise_api/rest/branches.rb +69 -0
  64. data/lib/ruby_lokalise_api/rest/comments.rb +61 -0
  65. data/lib/ruby_lokalise_api/rest/contributors.rb +58 -0
  66. data/lib/ruby_lokalise_api/rest/custom_translation_statuses.rb +67 -0
  67. data/lib/ruby_lokalise_api/rest/files.rb +49 -0
  68. data/lib/ruby_lokalise_api/rest/keys.rb +79 -0
  69. data/lib/ruby_lokalise_api/rest/languages.rb +67 -0
  70. data/lib/ruby_lokalise_api/rest/orders.rb +37 -0
  71. data/lib/ruby_lokalise_api/rest/payment_cards.rb +43 -0
  72. data/lib/ruby_lokalise_api/rest/projects.rb +62 -0
  73. data/lib/ruby_lokalise_api/rest/queued_processes.rb +28 -0
  74. data/lib/ruby_lokalise_api/rest/screenshots.rb +58 -0
  75. data/lib/ruby_lokalise_api/rest/segments.rb +45 -0
  76. data/lib/ruby_lokalise_api/rest/snapshots.rb +47 -0
  77. data/lib/ruby_lokalise_api/rest/tasks.rb +58 -0
  78. data/lib/ruby_lokalise_api/rest/team_user_billing_details.rb +36 -0
  79. data/lib/ruby_lokalise_api/rest/team_user_groups.rb +109 -0
  80. data/lib/ruby_lokalise_api/rest/team_users.rb +48 -0
  81. data/lib/ruby_lokalise_api/rest/teams.rb +16 -0
  82. data/lib/ruby_lokalise_api/rest/translation_providers.rb +27 -0
  83. data/lib/ruby_lokalise_api/rest/translations.rb +39 -0
  84. data/lib/ruby_lokalise_api/rest/webhooks.rb +69 -0
  85. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/utils/attribute_helpers.rb +7 -7
  86. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/utils/endpoint_helpers.rb +1 -1
  87. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/utils/string_utils.rb +1 -1
  88. data/lib/ruby_lokalise_api/version.rb +5 -0
  89. data/lib/ruby_lokalise_api.rb +50 -0
  90. data/ruby-lokalise-api.gemspec +9 -8
  91. metadata +129 -155
  92. data/lib/ruby-lokalise-api/data/attributes.json +0 -259
  93. data/lib/ruby-lokalise-api/rest/branches.rb +0 -67
  94. data/lib/ruby-lokalise-api/rest/comments.rb +0 -59
  95. data/lib/ruby-lokalise-api/rest/contributors.rb +0 -56
  96. data/lib/ruby-lokalise-api/rest/custom_translation_statuses.rb +0 -65
  97. data/lib/ruby-lokalise-api/rest/files.rb +0 -36
  98. data/lib/ruby-lokalise-api/rest/keys.rb +0 -77
  99. data/lib/ruby-lokalise-api/rest/languages.rb +0 -65
  100. data/lib/ruby-lokalise-api/rest/orders.rb +0 -35
  101. data/lib/ruby-lokalise-api/rest/payment_cards.rb +0 -41
  102. data/lib/ruby-lokalise-api/rest/projects.rb +0 -60
  103. data/lib/ruby-lokalise-api/rest/queued_processes.rb +0 -26
  104. data/lib/ruby-lokalise-api/rest/screenshots.rb +0 -56
  105. data/lib/ruby-lokalise-api/rest/segments.rb +0 -43
  106. data/lib/ruby-lokalise-api/rest/snapshots.rb +0 -45
  107. data/lib/ruby-lokalise-api/rest/tasks.rb +0 -56
  108. data/lib/ruby-lokalise-api/rest/team_user_billing_details.rb +0 -34
  109. data/lib/ruby-lokalise-api/rest/team_user_group.rb +0 -107
  110. data/lib/ruby-lokalise-api/rest/team_users.rb +0 -46
  111. data/lib/ruby-lokalise-api/rest/teams.rb +0 -14
  112. data/lib/ruby-lokalise-api/rest/translation_providers.rb +0 -25
  113. data/lib/ruby-lokalise-api/rest/translations.rb +0 -37
  114. data/lib/ruby-lokalise-api/rest/webhooks.rb +0 -67
  115. data/lib/ruby-lokalise-api/version.rb +0 -5
  116. data/lib/ruby-lokalise-api.rb +0 -101
  117. data/spec/lib/ruby-lokalise-api/connection_spec.rb +0 -89
  118. data/spec/lib/ruby-lokalise-api/custom_json_parser_spec.rb +0 -81
  119. data/spec/lib/ruby-lokalise-api/error_spec.rb +0 -41
  120. data/spec/lib/ruby-lokalise-api/rest/branches_spec.rb +0 -140
  121. data/spec/lib/ruby-lokalise-api/rest/comments_spec.rb +0 -118
  122. data/spec/lib/ruby-lokalise-api/rest/contributors_spec.rb +0 -132
  123. data/spec/lib/ruby-lokalise-api/rest/custom_translation_statuses_spec.rb +0 -131
  124. data/spec/lib/ruby-lokalise-api/rest/files_spec.rb +0 -66
  125. data/spec/lib/ruby-lokalise-api/rest/keys_spec.rb +0 -199
  126. data/spec/lib/ruby-lokalise-api/rest/languages_spec.rb +0 -134
  127. data/spec/lib/ruby-lokalise-api/rest/orders_spec.rb +0 -113
  128. data/spec/lib/ruby-lokalise-api/rest/payment_cards_spec.rb +0 -92
  129. data/spec/lib/ruby-lokalise-api/rest/projects_spec.rb +0 -137
  130. data/spec/lib/ruby-lokalise-api/rest/queued_processes_spec.rb +0 -57
  131. data/spec/lib/ruby-lokalise-api/rest/screenshots_spec.rb +0 -127
  132. data/spec/lib/ruby-lokalise-api/rest/segments_spec.rb +0 -106
  133. data/spec/lib/ruby-lokalise-api/rest/snapshots_spec.rb +0 -117
  134. data/spec/lib/ruby-lokalise-api/rest/tasks_spec.rb +0 -145
  135. data/spec/lib/ruby-lokalise-api/rest/team_user_billing_details_spec.rb +0 -48
  136. data/spec/lib/ruby-lokalise-api/rest/team_user_groups_spec.rb +0 -278
  137. data/spec/lib/ruby-lokalise-api/rest/team_users_spec.rb +0 -95
  138. data/spec/lib/ruby-lokalise-api/rest/teams_spec.rb +0 -25
  139. data/spec/lib/ruby-lokalise-api/rest/translation_providers_spec.rb +0 -48
  140. data/spec/lib/ruby-lokalise-api/rest/translations_spec.rb +0 -118
  141. data/spec/lib/ruby-lokalise-api/rest/webhooks_spec.rb +0 -126
  142. data/spec/lib/ruby-lokalise-api_spec.rb +0 -54
  143. data/spec/spec_helper.rb +0 -22
  144. data/spec/support/test_client.rb +0 -11
  145. data/spec/support/vcr.rb +0 -10
@@ -1,137 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe Lokalise::Client do
4
- let(:new_project_id) { '572222075c0953fd70d492.30502628' }
5
-
6
- describe '#projects' do
7
- it 'returns all projects' do
8
- projects = VCR.use_cassette('all_projects') do
9
- test_client.projects
10
- end.collection
11
- project = projects.first
12
-
13
- expect(projects.count).to eq(5)
14
- expect(project.name).to eq('demo phoenix')
15
- end
16
-
17
- it 'supports pagination' do
18
- projects = VCR.use_cassette('all_projects_pagination') do
19
- test_client.projects limit: 1, page: 2
20
- end
21
-
22
- expect(projects.collection.count).to eq(1)
23
- expect(projects.total_results).to eq(5)
24
- expect(projects.total_pages).to eq(5)
25
- expect(projects.results_per_page).to eq(1)
26
- expect(projects.current_page).to eq(2)
27
-
28
- expect(projects.next_page?).to eq(true)
29
- expect(projects.last_page?).to eq(false)
30
- expect(projects.prev_page?).to eq(true)
31
- expect(projects.first_page?).to eq(false)
32
- end
33
- end
34
-
35
- specify '#project' do
36
- project = VCR.use_cassette('project') do
37
- test_client.project '803826145ba90b42d5d860.46800099'
38
- end
39
-
40
- expect(project.project_id).to eq('803826145ba90b42d5d860.46800099')
41
- expect(project.name).to eq('demo phoenix')
42
- expect(project.team_id).to eq(176_692)
43
- expect(project.description).to eq('')
44
- expect(project.created_at).to eq('2018-09-24 16:05:22 (Etc/UTC)')
45
- expect(project.created_by).to eq(20_181)
46
- expect(project.created_by_email).to eq('bodrovis@protonmail.com')
47
- expect(project.created_at_timestamp).to eq(1_537_805_122)
48
- expect(project.base_language_id).to eq(640)
49
- expect(project.base_language_iso).to eq('en')
50
- expect(project.settings['per_platform_key_names']).to eq(false)
51
- expect(project.statistics['progress_total']).to eq(18)
52
- end
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
-
66
- specify '#create_project' do
67
- project = VCR.use_cassette('new_project') do
68
- test_client.create_project name: 'rspec proj', description: 'demo project for rspec'
69
- end
70
-
71
- expect(project.name).to eq('rspec proj')
72
- expect(project.description).to eq('demo project for rspec')
73
- expect(project.team_id).to eq(176_692)
74
- end
75
-
76
- specify '#update_project' do
77
- project = VCR.use_cassette('update_project') do
78
- test_client.update_project new_project_id,
79
- name: 'rspec proj updated', description: 'updated project for rspec'
80
- end
81
-
82
- expect(project.name).to eq('rspec proj updated')
83
- expect(project.description).to eq('updated project for rspec')
84
- expect(project.team_id).to eq(176_692)
85
- end
86
-
87
- specify '#empty_project' do
88
- response = VCR.use_cassette('empty_project') do
89
- test_client.empty_project new_project_id
90
- end
91
-
92
- expect(response['project_id']).to eq(new_project_id)
93
- expect(response['keys_deleted']).to eq(true)
94
- end
95
-
96
- specify '#destroy_project' do
97
- response = VCR.use_cassette('delete_project') do
98
- test_client.destroy_project new_project_id
99
- end
100
- expect(response['project_id']).to eq(new_project_id)
101
- expect(response['project_deleted']).to eq(true)
102
- end
103
-
104
- context 'when project methods are chained' do
105
- it 'supports update, empty, and destroy' do
106
- project = VCR.use_cassette('create_another_project') do
107
- test_client.create_project name: 'chained proj'
108
- end
109
-
110
- expect(project.name).to eq('chained proj')
111
-
112
- path = project.path
113
-
114
- updated_project = VCR.use_cassette('update_project_chained') do
115
- project.update name: 'updated!'
116
- end
117
-
118
- expect(updated_project.client.token).to eq(test_client.token)
119
- expect(updated_project.name).to eq('updated!')
120
- expect(updated_project.path).to eq(path)
121
-
122
- empty_response = VCR.use_cassette('empty_project_chained') do
123
- updated_project.empty
124
- end
125
-
126
- expect(empty_response['project_id']).to eq(updated_project.project_id)
127
- expect(empty_response['keys_deleted']).to eq(true)
128
-
129
- delete_response = VCR.use_cassette('delete_project_chained') do
130
- updated_project.destroy
131
- end
132
-
133
- expect(delete_response['project_id']).to eq(updated_project.project_id)
134
- expect(delete_response['project_deleted']).to eq(true)
135
- end
136
- end
137
- end
@@ -1,57 +0,0 @@
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
@@ -1,127 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe Lokalise::Client do
4
- let(:project_id) { '803826145ba90b42d5d860.46800099' }
5
- let(:screenshot_id) { 115_185 }
6
-
7
- describe '#screenshots' do
8
- it 'returns all screenshots' do
9
- screenshots = VCR.use_cassette('all_screenshots') do
10
- test_client.screenshots project_id
11
- end.collection
12
-
13
- expect(screenshots.count).to eq(1)
14
- end
15
-
16
- it 'supports pagination' do
17
- screenshots = VCR.use_cassette('all_screenshots_pagination') do
18
- test_client.screenshots project_id, limit: 1, page: 1
19
- end
20
-
21
- expect(screenshots.collection.count).to eq(1)
22
- expect(screenshots.total_results).to eq(1)
23
- expect(screenshots.total_pages).to eq(1)
24
- expect(screenshots.results_per_page).to eq(1)
25
- expect(screenshots.current_page).to eq(1)
26
- end
27
- end
28
-
29
- specify '#screenshot' do
30
- screenshot = VCR.use_cassette('screenshot') do
31
- test_client.screenshot project_id, screenshot_id
32
- end
33
-
34
- expect(screenshot.screenshot_id).to eq(screenshot_id)
35
- expect(screenshot.key_ids).to eq([])
36
- expect(screenshot.url).to include('amazonaws.com')
37
- expect(screenshot.title).to eq('rspec screen')
38
- expect(screenshot.description).to eq('')
39
- expect(screenshot.screenshot_tags).to eq([])
40
- expect(screenshot.width).to eq(125)
41
- expect(screenshot.height).to eq(32)
42
- end
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
-
56
- specify '#create_screenshots' do
57
- screenshot_from_file do |file|
58
- screenshot = VCR.use_cassette('create_screenshots') do
59
- test_client.create_screenshots project_id, data: file.read, title: 'rspec screen'
60
- end.collection.first
61
-
62
- expect(screenshot.title).to eq('rspec screen')
63
- expect(screenshot.url).to include('amazonaws.com')
64
- end
65
- end
66
-
67
- specify '#update_screenshot' do
68
- screenshot = VCR.use_cassette('update_screenshot') do
69
- test_client.update_screenshot project_id, screenshot_id, tags: %w[demo rspec],
70
- description: 'demo desc'
71
- end
72
-
73
- expect(screenshot.screenshot_id).to eq(screenshot_id)
74
- expect(screenshot.screenshot_tags).to eq(%w[demo rspec])
75
- expect(screenshot.description).to eq('demo desc')
76
- end
77
-
78
- specify '#destroy_screenshot' do
79
- response = VCR.use_cassette('delete_screenshot') do
80
- test_client.destroy_screenshot project_id, screenshot_id
81
- end
82
- expect(response['project_id']).to eq(project_id)
83
- expect(response['screenshot_deleted']).to eq(true)
84
- end
85
-
86
- context 'when screenshot methods are chained' do
87
- it 'supports update and destroy' do
88
- screenshot = screenshot_from_file do |file|
89
- VCR.use_cassette('create_another_screenshot') do
90
- test_client.create_screenshots project_id, data: file.read, title: 'chained screen'
91
- end.collection.first
92
- end
93
-
94
- expect(screenshot.client.token).to eq(test_client.token)
95
- expect(screenshot.title).to eq('chained screen')
96
-
97
- path = screenshot.path
98
-
99
- updated_screenshot = VCR.use_cassette('update_screenshot_chained') do
100
- screenshot.update title: 'updated!'
101
- end
102
-
103
- expect(updated_screenshot.client.token).to eq(test_client.token)
104
- expect(updated_screenshot.title).to eq('updated!')
105
- expect(updated_screenshot.screenshot_id).to eq(screenshot.screenshot_id)
106
- expect(updated_screenshot.path).to eq(path)
107
-
108
- delete_response = VCR.use_cassette('delete_screenshot_chained') do
109
- updated_screenshot.destroy
110
- end
111
-
112
- expect(delete_response['project_id']).to eq(project_id)
113
- expect(delete_response['screenshot_deleted']).to eq(true)
114
- end
115
- end
116
- end
117
-
118
- def screenshot_from_file
119
- file = File.open File.expand_path('spec/fixtures/screenshot_base64.txt')
120
- begin
121
- yield file
122
- rescue StandardError => e
123
- puts e
124
- ensure
125
- file.close
126
- end
127
- end
@@ -1,106 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe Lokalise::Client do
4
- let(:project_id) { '39066161618d4ecb9fdc12.00274309' }
5
- let(:key_id) { 129_358_815 }
6
-
7
- describe '#segments' do
8
- it 'returns all segments for a key under lang_iso' do
9
- segments = VCR.use_cassette('all_key_segments') do
10
- test_client.segments project_id, key_id, 'en'
11
- end.collection
12
-
13
- expect(segments.count).to eq(4)
14
- expect(segments.first.value).to eq('Hello!')
15
- end
16
- end
17
-
18
- describe '#segment' do
19
- it 'returns a single segment' do
20
- lang_iso = 'en'
21
- segment_number = 2
22
-
23
- segment = VCR.use_cassette('key_segment') do
24
- test_client.segment project_id, key_id, lang_iso, segment_number
25
- end
26
-
27
- expect(segment.key_id).to eq(key_id)
28
- expect(segment.segment_number).to eq(segment_number)
29
- expect(segment.language_iso).to eq(lang_iso)
30
- expect(segment.modified_at).to eq('2021-11-22 16:46:50 (Etc/UTC)')
31
- expect(segment.modified_at_timestamp).to eq(1_637_599_610)
32
- expect(segment.modified_by).to eq(20_181)
33
- expect(segment.modified_by_email).to eq('bodrovis@protonmail.com')
34
- expect(segment.value).to eq('This is just a simple text.')
35
- expect(segment.is_fuzzy).to eq(false)
36
- expect(segment.is_reviewed).to eq(false)
37
- expect(segment.reviewed_by).to eq(0)
38
- expect(segment.words).to eq(6)
39
- expect(segment.custom_translation_statuses.first['color']).to eq('#61bd4f')
40
- end
41
-
42
- it 'allows to pass params' do
43
- lang_iso = 'en'
44
- segment_number = 2
45
-
46
- segment = VCR.use_cassette('key_segment_params') do
47
- test_client.segment project_id, key_id, lang_iso, segment_number, disable_references: '1'
48
- end
49
-
50
- expect(segment.segment_number).to eq(segment_number)
51
- expect(segment.value).to eq('This is just a simple text.')
52
- expect(segment.language_iso).to eq(lang_iso)
53
- end
54
- end
55
-
56
- specify '#update_segment' do
57
- lang_iso = 'en'
58
- segment_number = 3
59
-
60
- segment = VCR.use_cassette('update_key_segment') do
61
- test_client.update_segment project_id, key_id, lang_iso, segment_number,
62
- value: 'Updated via API',
63
- is_reviewed: true
64
- end
65
-
66
- expect(segment.segment_number).to eq(segment_number)
67
- expect(segment.value).to eq('Updated via API')
68
- expect(segment.language_iso).to eq(lang_iso)
69
- end
70
-
71
- context 'when segment methods are chained' do
72
- specify '#reload_data' do
73
- lang_iso = 'en'
74
- segment_number = 2
75
-
76
- segment = VCR.use_cassette('key_segment') do
77
- test_client.segment project_id, key_id, lang_iso, segment_number
78
- end
79
-
80
- reloaded_segment = VCR.use_cassette('reload_key_segment') do
81
- segment.reload_data
82
- end
83
-
84
- expect(reloaded_segment.segment_number).to eq(segment_number)
85
- expect(reloaded_segment.key_id).to eq(key_id)
86
- end
87
-
88
- specify '#update' do
89
- lang_iso = 'en'
90
- segment_number = 4
91
-
92
- segment = VCR.use_cassette('another_key_segment') do
93
- test_client.segment project_id, key_id, lang_iso, segment_number
94
- end
95
-
96
- updated_segment = VCR.use_cassette('update_key_segment_chained') do
97
- segment.update value: 'Chain Updated',
98
- is_fuzzy: true
99
- end
100
-
101
- expect(updated_segment.segment_number).to eq(segment_number)
102
- expect(updated_segment.is_fuzzy).to eq(true)
103
- expect(updated_segment.value).to eq('Chain Updated')
104
- end
105
- end
106
- end
@@ -1,117 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe Lokalise::Client do
4
- let(:project_id) { '803826145ba90b42d5d860.46800099' }
5
- let(:snapshot_id) { 27_881 }
6
-
7
- describe '#snapshots' do
8
- it 'returns all snapshots' do
9
- snapshots = VCR.use_cassette('all_snapshots') do
10
- test_client.snapshots project_id
11
- end.collection
12
-
13
- snapshot = snapshots.first
14
-
15
- expect(snapshots.count).to eq(1)
16
- expect(snapshot.title).to eq('test rspec')
17
- expect(snapshot.snapshot_id).to eq(27_882)
18
- expect(snapshot.created_at).to eq('2018-12-10 17:02:04 (Etc/UTC)')
19
- expect(snapshot.created_by).to eq(20_181)
20
- expect(snapshot.created_by_email).to eq('bodrovis@protonmail.com')
21
- expect(snapshot.created_at_timestamp).to eq(1_544_461_324)
22
- end
23
-
24
- it 'supports pagination' do
25
- snapshots = VCR.use_cassette('all_snapshots_pagination') do
26
- test_client.snapshots project_id, limit: 1, page: 2
27
- end
28
-
29
- expect(snapshots.collection.count).to eq(1)
30
- expect(snapshots.total_results).to eq(2)
31
- expect(snapshots.total_pages).to eq(2)
32
- expect(snapshots.results_per_page).to eq(1)
33
- expect(snapshots.current_page).to eq(2)
34
-
35
- expect(snapshots.next_page?).to eq(false)
36
- expect(snapshots.last_page?).to eq(true)
37
- expect(snapshots.prev_page?).to eq(true)
38
- expect(snapshots.first_page?).to eq(false)
39
- end
40
- end
41
-
42
- specify '#create_snapshot' do
43
- snapshot = VCR.use_cassette('create_snapshot') do
44
- test_client.create_snapshot project_id, title: 'test rspec'
45
- end
46
-
47
- expect(snapshot.title).to eq('test rspec')
48
- end
49
-
50
- specify '#restore_snapshot' do
51
- project = VCR.use_cassette('restore_snapshot') do
52
- test_client.restore_snapshot project_id, snapshot_id
53
- end
54
-
55
- expect(project.name).to eq('demo phoenix copy')
56
- expect(project.created_by_email).to eq('bodrovis@protonmail.com')
57
- # Restore creates a new copy of the project!
58
- expect(project.project_id).not_to eq(project_id)
59
- end
60
-
61
- specify '#destroy_snapshot' do
62
- response = VCR.use_cassette('delete_snapshot') do
63
- test_client.destroy_snapshot project_id, snapshot_id
64
- end
65
-
66
- expect(response['project_id']).to eq(project_id)
67
- expect(response['snapshot_deleted']).to eq(true)
68
- end
69
-
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.token).to eq(test_client.token)
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
-
96
- it 'supports destroy and restore' do
97
- snapshot = VCR.use_cassette('create_another_snapshot') do
98
- test_client.create_snapshot project_id, title: 'chained'
99
- end
100
-
101
- expect(snapshot.title).to eq('chained')
102
-
103
- restored_project = VCR.use_cassette('restore_snapshot_chained') do
104
- snapshot.restore
105
- end
106
-
107
- expect(restored_project.name).to eq('demo phoenix copy')
108
-
109
- delete_response = VCR.use_cassette('delete_snapshot_chained') do
110
- snapshot.destroy
111
- end
112
-
113
- expect(delete_response['project_id']).to eq(project_id)
114
- expect(delete_response['snapshot_deleted']).to eq(true)
115
- end
116
- end
117
- end
@@ -1,145 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe Lokalise::Client do
4
- let(:project_id) { '803826145ba90b42d5d860.46800099' }
5
- let(:key_id) { 15_571_976 }
6
- let(:task_id) { 4387 }
7
-
8
- describe '#tasks' do
9
- it 'returns all tasks' do
10
- tasks = VCR.use_cassette('all_tasks') do
11
- test_client.tasks project_id
12
- end.collection
13
-
14
- expect(tasks.count).to eq(3)
15
- end
16
-
17
- it 'supports pagination' do
18
- tasks = VCR.use_cassette('all_tasks_pagination') do
19
- test_client.tasks project_id, limit: 2, page: 2
20
- end
21
-
22
- expect(tasks.collection.count).to eq(1)
23
- expect(tasks.total_results).to eq(3)
24
- expect(tasks.total_pages).to eq(2)
25
- expect(tasks.results_per_page).to eq(2)
26
- expect(tasks.current_page).to eq(2)
27
- end
28
- end
29
-
30
- specify '#task' do
31
- task = VCR.use_cassette('task') do
32
- test_client.task project_id, '11925'
33
- end
34
-
35
- expect(task.task_id).to eq(11_925)
36
- expect(task.title).to eq('node updated')
37
- expect(task.description).to eq('')
38
- expect(task.status).to eq('completed')
39
- expect(task.progress).to eq(0)
40
- expect(task.due_date).to eq(nil)
41
- expect(task.due_date_timestamp).to eq(nil)
42
- expect(task.keys_count).to eq(16)
43
- expect(task.words_count).to eq(275)
44
- expect(task.created_at).to eq('2019-05-13 16:15:26 (Etc/UTC)')
45
- expect(task.created_at_timestamp).to eq(1_557_764_126)
46
- expect(task.created_by).to eq(20_181)
47
- expect(task.created_by_email).to eq('bodrovis@protonmail.com')
48
- expect(task.can_be_parent).to eq(false)
49
- expect(task.task_type).to eq('review')
50
- expect(task.parent_task_id).to eq(nil)
51
- expect(task.closing_tags).to eq([])
52
- expect(task.languages.first['language_iso']).to eq('sq')
53
- expect(task.auto_close_languages).to eq(true)
54
- expect(task.auto_close_task).to eq(true)
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)
60
- expect(task.do_lock_translations).to eq(false)
61
- expect(task.custom_translation_status_ids).to eq([])
62
- end
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
-
76
- specify '#create_task' do
77
- task = VCR.use_cassette('create_task') do
78
- test_client.create_task project_id, title: 'another rspec key',
79
- keys: [key_id],
80
- languages: [
81
- {
82
- language_iso: 'ru',
83
- users: ['20181']
84
- }
85
- ]
86
- end
87
-
88
- expect(task.title).to eq('another rspec key')
89
- expect(task.languages.first['language_iso']).to eq('ru')
90
- end
91
-
92
- specify '#update_task' do
93
- task = VCR.use_cassette('update_task') do
94
- test_client.update_task project_id, task_id, description: 'desc here', auto_close_task: true
95
- end
96
-
97
- expect(task.task_id).to eq(task_id)
98
- expect(task.description).to eq('desc here')
99
- expect(task.auto_close_task).to eq(true)
100
- end
101
-
102
- specify '#destroy_task' do
103
- response = VCR.use_cassette('delete_task') do
104
- test_client.destroy_task project_id, task_id
105
- end
106
- expect(response['project_id']).to eq(project_id)
107
- expect(response['task_deleted']).to eq(true)
108
- end
109
-
110
- context 'when task methods are chained' do
111
- it 'supports update and destroy' do
112
- task = VCR.use_cassette('create_another_task') do
113
- test_client.create_task project_id, title: 'chained',
114
- keys: [key_id],
115
- languages: [
116
- {
117
- language_iso: 'ru',
118
- users: ['20181']
119
- }
120
- ]
121
- end
122
-
123
- expect(task.client.token).to eq(test_client.token)
124
- expect(task.title).to eq('chained')
125
-
126
- path = task.path
127
-
128
- updated_task = VCR.use_cassette('update_task_chained') do
129
- task.update title: 'updated!'
130
- end
131
-
132
- expect(updated_task.client.token).to eq(test_client.token)
133
- expect(updated_task.title).to eq('updated!')
134
- expect(updated_task.task_id).to eq(task.task_id)
135
- expect(updated_task.path).to eq(path)
136
-
137
- delete_response = VCR.use_cassette('delete_task_chained') do
138
- updated_task.destroy
139
- end
140
-
141
- expect(delete_response['project_id']).to eq(project_id)
142
- expect(delete_response['task_deleted']).to eq(true)
143
- end
144
- end
145
- end